命令执行绕过

一、分隔符

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文件中

posted @ 2021-12-12 16:33  lnterpreter  阅读(286)  评论(0编辑  收藏  举报