命令执行漏洞

命令执行漏洞

命令执行漏洞:应用程序有时候会调用一些执行系统命令的函数,比如在PHP中,使用system,exec,shell_exec,passthru,popen等函数可以执行系统命令,当攻击者可以控制这些函数中的参数时,就可以将恶意的命令拼接到正常合法命令中,完成黑客想要的结果。

在这个数据包中,页面1.php提供了一个ping功能,当参数设置为127.0.0.1时会返回ping的结果,

而如果将参数ip设置为127.0.0.1  | dir,再次访问程序时,程序直接将目录结构返回到了页面上,这里利用的就是管道符号“|”,让系统执行命令dir。

 

在一些编程语言中,有一些函数是可以对操作系统进行操作的。 比如,php中以下函数可以对系统进行操作:

    system():执行一个外部的应用程序的输入并显示输出的结果
    exec():执行一个外部的应用程序,但不显示输出的结果
  passthru():执行一个系统命令并显示原始的输出
    shell_exec():执行shell命令并返回输出的结果的字符串
     `` :与shell_exec函数的功能相同

 在win和linux系统中就会存在很多的管道符

win中

  • | :直接执行后面的语句。比如 ping +某个ip  | who am i 或者ipconfig
  • ||:如果前面的语句出错,就执行后边的语句
  • &:如果前边语句为假就直接执行后面的语句,前面的语句可真可假
  • &&:如果前面语句为假就直接出错,也不执行后面的语句

在LINUX中

  • ;:执行前前边语句再执行后边
  • |:显示后面语句执行结果
  • ||:前面语句出错时,执行后面的语句

 命令执行修复

  • 尽量不使用这些函数并且过滤掉管道符的参数设置
  • 客户端提交的变量在进入函数执行前就需要经过验证审核,前端JS的验证并且加上后端的验证
  • 对PHP来说尽量不使用危险函数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值