ctf.show 萌新模塊 web15關, 這一關是代碼執行漏洞, 需要靈活的運用PHP的命令執行函式, 在上一關的基礎上又過濾了 = ? > 關鍵字, 看起來已經沒啥思路了, 但仔細一看, 它居然取消了對分號;的過濾, 這樣一來就好辦了, 繼續上一關的曲線救國思路, 先GET請求傳遞一句話木馬, 再用POST請求傳遞系統命令, 即可拿到 flag

進入頁面后, 可以看到部分原始碼, 原始碼中提示 flag 就藏在 config.php 檔案中

原始碼中通過GET請求獲取引數, 并過濾了引數中的 system * ? < > = exec highlight cat ( . file php config 等關鍵字, 過濾之后就可以使用 eval()函式執行PHP代碼了
1.由于過濾了左括號(, 函式不能使用, 需要使用反引號``來執行系統命令
2.過濾了 . php config 等關鍵字, 這就導致查看 config.php 檔案會更加困難, 但這些過濾只針對GET請求的引數, 而POST請求并未限制, 我們可以通過POST請求提交系統命令
首先在url地址欄輸入以下payload, 通過GET請求傳遞一句話木馬
/?c=echo `$_POST[a]`;

使用代理工具( Burp Suite)攔截請求, 修改請求內容, 利用POST請求的引數傳遞系統命令

請求頭
Content-Type: application/x-www-form-urlencoded
請求體
a=cat config.php
提交請求后, 頁面啥也不顯示, 但也沒報錯, 不用擔心, 這很正常

右鍵查看網頁原始碼即可獲取 falg
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299612.html
標籤:其他
