DVWA之Command Injection(命令注入)

前言

  • Command Injection,即命令注入攻击,是指由于Web应用程序对用户提交的数据过滤不严格,攻击者可通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。通常是在&&、&、|、||命令拼接符号再跟上自己需要执行的系统命令。
Low
  • 类似于普通SQL注入,先满足原定的命令参数。然后在后面用&&命令拼接符号跟上自己想要执行的命令。
    在这里插入图片描述
Medium
  • 后端把提交的参数做了一定过滤,过滤了”&&” 、”;”,但还可以用&、| 。
    在这里插入图片描述

  • 这里需要注意的是”&&”与” &”的区别:

  • Command 1&&Command 2
    先执行Command 1,执行成功后再执行Command 2,否则不执行Command 2

  • Command 1&Command 2
    先执行Command 1,不管是否成功,都会执行Command 2

  • Command 1 | Command 2
    “|”是管道符,表示将Command 1的输出作为Command 2的输入,并且只打印Command 2执行的结果。

  • 由于使用的是str_replace把”&&” 、”;”替换为空字符,因此可以采用以下方式绕过:

127.0.0.1&;&ifconfig
127.0.0.1;&ifconfig
127.0.0.1&;ifconfig
127.0.0.1&&&whoami
127.0.0.1&&| whoami
127.0.0.1|&&whoami

High

  • 后端把提交的参数做了多个字符的过滤,过滤了&、; 、| 、- 、$ 、) 、( 、` 、||。
  • 代码中把’| ‘替换成了空白符,’|'却没有被过滤掉,可以构造payload 127.0.0.1|cat /etc/passwd
    在这里插入图片描述

Impossible

  • 后端代码中纳入了这三个函数:stripslashes( )、explode( )、is_numeric( )
  • stripslashes( ):
    删除字符串string中的反斜杠,返回已剥离反斜杠的字符串。
  • explode( ):
    函数使用一个字符串分割另一个字符串,并返回由字符串组成的数组。
  • is_numeric( ):
    用于检测变量是否为数字或数字字符串。如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值