Bugku-WEB-冬至紅包


 

打開網頁

 

 

 

顯然是代碼審計了,分析代碼

當沒有用GET方法傳入flag時,會顯示Click here的鏈接。

點擊鏈接會用GET方法傳入一串字符串$exam,后面是當前時間的一串sha1哈希值。

判斷傳入的flag長度與$exam是否相同,不同則顯示  長度不允許

 

第二個判斷過濾了一大堆

第三個判斷傳入flag的值等於flag值的哈希值,正確就輸出flag。用的是嚴格的三個等號的比較,我們flag都不知道,哈希值更不可能知道了,==

但容易發現此處存在任意代碼執行漏洞, 

eval($_GET['flag'])

 

嘗試繞過過濾

echo被過濾了,用php短標簽進行輸出

flag被過濾了,用先賦其他值,再修改的方法繞過

 

當php開啟短標簽后,

能正常解析類似於這樣形式的php文件: phpinfo() ?>

並且可以使用<?=$a?>的形式輸出

 

$exam字符串長度為49

為了使payload長度與$exam長度相等,在代碼間加入無意義的語句。

構造payload:$a=blag;$a{0}=f;111111111111111111111;?><?=$$a;?>

 

成功得到flag

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM