命令执行漏洞详解

目录

一、命令执行漏洞原理

二、利用方法

1、常用函数(PHP中)

2、管道连接命令

三、防御


一、命令执行漏洞原理

命令执行漏洞是指攻击者可以执行任意系统命令,是代码执行的一种。

命令执行漏洞不仅可以存在B/S架构中,在C/S架构中也很常见。

二、利用方法

1、常用函数(PHP中)

●shell_exec():执行shell命令并返回输出结果的字符串

●eval():把字符串当作PHP代码来执行

●preg_replace():正则表达式的搜索和替换

●system():执行一个外部程序并输出,如:system($cmd)可以执行任意命令

●exec():执行一个外部程序

●passthru():执行一个UNIX系统命令并显示原始的输出

2、管道连接命令

●Windows系统下,可以使用“&&、&、|、||”等。如:用户输入“127.0.0.1&&net user”时,服务器将执行命令“ping 127.0.0.1&& net user”,即执行完ping命令后再执行net user命令。

●Linux系统下,可以使用“&&、&、|、||、;”等进行命令拼接。如:用户输入“127.0.0.1;cat /etc/passwd”时,服务器将执行完ping命令后再执行cat /etc/passwd命令,攻击者将获取服务器上所有用户的信息。输入“127.0.0.1|cat /etc/passwd”也会得到类似的结果。

三、防御

●谨慎使用eval()等可引起命令执行的函数。可以在PHP配置文件中的disabled_functions中进行禁用该类函数。

●如果无法避免使用该类函数,则要对用户提供的参数进行必要的过滤。如:使用escapeshellarg()、escapeshellcmd()函数对其进行过滤或转码。

●参数值尽量使用引号进行包裹,并在拼接前调用addslashes()函数进行转义。

●使用黑名单对特殊字符进行过滤或替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

趣多多代言人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值