OS命令执行漏洞

代码执行漏洞指的是可以执行PHP脚本代码,而命令执行漏洞指的是可以执行系统命令或应用指令(如cmd命令或bash命令)的漏洞

php命令执行漏洞主要是一些函数的参数过滤不严格所导致,可以执行OS命令的函数一共有7个:system(), exec(), shell_exec(), passthru(), pcntl_exec(), popen(), proc_open()

另外,反单引号(`)也可以执行命令,不过要调用shell_exec()函数

1.system(),exec(),shell_exec()和passthru()函数是可以直接传入命令并且会返回执行结果

payload: <?php system('whoami');?>  //返回当前web服务器用户

2.pcntl是php的多进程处理扩展,在处理大量任务的情况下会使用

void pcntl_exec(string $path, [,array $args [, array $envs]])

3.popen()和proc_open()函数不会直接返回执行结果,而是返回一个文件指针

payload: <?php popen('whoami >>D:/2.txt','r'); ?>  //两个参数,第二个参数是指针文件的连接模式,有r和w模式

4.反单引号(`)执行命令需要调用shell_exec()函数

payload: <?php echo `whoami`;?> //返回当前用户

命令防注入函数:

1.escapeshellcmd()函数是过滤的整条命令

payload:

<?php eche(escapeshellcmd($_GET['a']));?>

请求1.php?a=whoami', 在windows下返回whoami^',在linux下返回whoami\'

2.escapeshellarg()函数则是过滤参数

payload:

<?php echo escapeshellarg('a"');?>   //会见双引号替换成空格,输出为"a "



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值