Linux命令长度突破限制
源码
<?php $param = $_REQUEST['param']; if ( strlen($param) < 8 ) { echo shell_exec($param); }
echo执行函数,$_REQUEST可以接post、get、cookie传参
源码中对参数长度做了限制,小于8位,可以利用临时函数,构造一个post传参的数据包,因为php将上传文件保存在tmp的临时目录底下,因为Linux特殊机制,可以用. 来执行没有执行权限的文件,使用t/来匹配刚才上传的临时文件,shell_exec就会直接执行系统命令
构造数据包匹配临时文件
成功执行命令