文章目錄
- WEB21
- WEB22
- WEB23
- WEB24
- WEB25
- WEB26
- WEB27
- WEB28
WEB21
先隨意使用一個密碼抓包嘗試一下

base64解密后發現賬號密碼的形式為 賬號:密碼
根據提示我們使用題目所給字典爆破
構造payload,猜測賬戶名為admin,前半部分不用變,為后半部分迭代即可

匯入所給字典

進行base64編碼,切記不可為符號再編碼,base64可能存在=

attack
拿到flag

或者采用方式二



同樣拿下
WEB22
子域名爆破,但是這題爆不出來,直接查看view hint得到flag
WEB23
根據代碼撰寫爆破腳本
一種方法是嘗試每一個token值的回傳頁面,另一種方法爆出token值
方法一
import requests
a = "abcdefghijklmnopqrstuvwxyz0123456789"
for i in a:
for j in a:
url ="http://5aad3711-167d-4268-94b4-3bb1a93ae1f0.chall.ctf.show:8080?token="+str(i)+str(j)
req = requests.get(url=url).text
if "ctf" in req:
print(req)
exit()
else:
print(url)
#此方法爆破較慢

方法二
import hashlib
a = '0123456789abcdefghijklmnopqrstuvwxyz'
for i in a:
for j in a:
t = (str(i)+str(j)).encode('utf-8')
md5 = hashlib.md5(t).hexdigest()
if md5[1:2] == md5[14:15] == md5[17:18]:
if (int(md5[1:2])+int(md5[14:15])+int(md5[17:18]))/int(md5[1:2]) == int(md5[31:32]):
print(t)
爆出3j
url后加?token=3j即可
WEB24
看到mt_srand()函式即可知道是偽亂數,每次生成的亂數是一樣的
運行腳本
<?php
mt_srand(372619038);
echo mt_rand();
?>
得到1155388967
題目所給代碼得知傳參為r=
所以在url后加?r=1155388967即可
WEB25
r=0,先出一個隨機值

用php_mt_seed反解可能存在的seed值

通過如下代碼,我們知道要將兩個亂數相加得token值
if($_COOKIE[‘token’]==(mt_rand()+mt_rand()))
腳本挨個嘗試seed(在網頁頭檔案中發現是PHP7.3,所以只嘗試高版本即可)
<?php
mt_srand(種子值);
echo mt_rand()."\n";
echo mt_rand()+mt_rand();

第一個數即為引數r的值,第二個數是token,要用cookie提交

WEB26
在install.php頁面源代碼處發現js代碼、check函式

訪問checkdb.php,以post方式提交引數a、p、d、u、pass
這里有一些默認資訊

提示登陸失敗,猜測是賬號或密碼錯誤,這里對密碼進行爆破,使用之前web21提供的字典成功爆出密碼為7758521,獲取flag


WEB27
一個學生資訊系統,可以下載到一個錄取名單,還有一個學籍查詢系統,猜測通過系統可以查到學號錄取名單里有姓名和隱去了生日的身份證號,爆破即可
隨意提交,查看包
這里有個小問題,火狐抓包檔案頭顯示不完全,用Chrome查看

發現姓名是URL編碼,且為post提交
爆破程序中出現大量503頁面時需要設定延遲爆破或者降低并發

解Unicode后得到恭喜您,您已被我校錄取,你的學號為02015237 初始密碼為身份證號碼
登陸后獲取到flag
WEB28
提示通過暴力破解目錄/0-100/0-100

payload1,2相同

報錯大量頁面503時,降低并發或者設定延時

28
提示通過暴力破解目錄/0-100/0-100
[外鏈圖片轉存中…(img-fL5urd8M-1634289397156)]
payload1,2相同
[外鏈圖片轉存中…(img-gzTTpLId-1634289397157)]
報錯大量頁面503時,降低并發或者設定延時
[外鏈圖片轉存中…(img-Dhk67QEw-1634289397157)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/319627.html
標籤:其他
上一篇:《攻防世界》學習筆記——web篇
