浅谈PHP命令注入攻击

 

PHP中可以使用5种命令来执行外部应用程序或函数

system执行外部应用程序并显示输出结果

exec执行一个外部应用程序

passthru执行UNIX系统命令并显示原始的输出

shell_exec实行shell命令并返回输出的字符串

``与shell_exec命令函数功能相同

一、system函数

示例:

 

 

二、exec函数

 

三、passthru函数

void passthru(string cmd[,int &return_var])

cmd为要执行的UNIX命令

return_var存储系统命令返回值

注意:当UNIX系统命令输出是二进制的数据时候,需要用这个命令

四、shell_exec命令

string shell_exec(string cmd)

五、``运算符

此运算符与shell_exec有相同功能

$output=`dir c:`;

#1漏洞程序实例:

 

攻击手法:

使用URL:ex.php?dir=;cat /etc/passwd这个命令会显示/tec/passwd文件的内容

命令注入的方式:

`command`执行command

$(command)执行command

;command执行command并显示执行结果

|command执行command并显示执行结果

&&command执行command并显示执行结果

||command执行command并显示执行结果

/home/user/.bashrc覆盖.bashrc文件

< /home/user/.bashrc会将.bashrc文件当做输入

防范方法:

1、$dir=escapeshellarg($_GET["dir"]);//此函数作用:'被替换为/',"替换为/",;被替换为/;

2、将safe_mode设为On,使用safe_mode_exec_dir指定执行文件的路径

php.in

safe_mode=On

safe_mode_exec_dir=/user/excutable/php

#2漏洞程序实例:

使用eval函数(eval函数将字符串作为PHP源代码来执行)

 

攻击URL:ex.php?arg=system("dir c:")//显示c盘内容

#3漏洞程序实例:

可变变量攻击

 

攻击URL:ex.php?x=123

#4程序漏洞实例

 

攻击URL:ex.php?func=phpinfo//显示服务器信息

此类攻击防范方法:

1、检测使用者输入的字符串

2、将使用者输入的字符串进行编码处理

3、将web应用程序的输出字符串进行编码处理

4、预先指定可以提供给eval等函数的参数

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值