跟bWAPP學WEB安全(PHP程式碼)--PHP程式碼注入
阿新 • • 發佈:2019-01-09
---恢復內容開始---
背景
今天我們換一個方式來分析這個漏洞,從滲透的角度去搞。
滲透過程
測試漏洞
先來看看,觀察URL是:http://192.168.195.195/bWAPP/phpi.php
message像是有連結,點選看看
在檢視url是http://192.168.195.195/bWAPP/phpi.php?message=test,GET型引數,burp掃一下
感覺不對,怎麼可能只有Flash跨域紅紅的,目測這個地方是echo xxxx,猜測程式碼:
<?php
echo $_GET["message"];
?>
可是這樣哪裡來的程式碼注入啊,難道message有問題,測試phpinfo(),果然有問題
那就可以看程式碼了,執行message=system("cat phpi.php > phpi.txt") ,請求一下phpi.txt
我們來看程式碼:
程式碼設計
<?php if(isset($_REQUEST["message"])) { // If the security level is not MEDIUM or HIGH if($_COOKIE["security_level"] != "1" && $_COOKIE["security_level"] != "2") { ?> <p><i><?php @eval ("echo " . $_REQUEST["message"] . ";");?></i></p> <?php } // If the security level is MEDIUM or HIGH else { ?> <p><i><?php echo htmlspecialchars($_REQUEST["message"], ENT_QUOTES, "UTF-8");;?></i></p> <?php } } ?>
臥槽,什麼鬼竟然用了eval,這個可是執行程式碼內容的函式,類似的還有asset、preg_replace、call_user_func, call_user_func_array,array_map等等,這其中還包括thinkphp5-RCE的罪魁禍首函式哈哈。中級和高階過濾了,使用了htmlspecialchars函式就OK了