DVWA通关之命令注入(command injection)

本文详细介绍了DVWA中的命令注入漏洞,从低到高四个难度等级的过关思路,并分析了不同等级下的源代码,揭示了过滤机制的不足。文章强调了命令执行漏洞的类型和相关系统函数,提醒开发者注意命令注入的安全风险。
摘要由CSDN通过智能技术生成

DVWA通关之命令注入(command injection)

原文链接请点击:https://www.cnblogs.com/ruoli-s/p/14340551.html

难度等级:low

过关思路

  1. 我们先将其难度设置为low,看到其界面如下:

image-20210128141119846

  1. 通过分析得知,该功能是输入一个IP地址,然后通过ping进行测试,先输入127.0.0.1www.baidu.com测试如下:

127.0.0.1

image-20210128141414768

www.baidu.com

image-20210128141609752

  1. 可以看到,IP地址和域名都是能够ping通的,接下来就是使用命令拼接测试了,

输入127.0.0.1 | whoami

image-20210128142225176

命令注入成功。

  1. 命令汇总,经过测试,以下命令均可注入成功。

127.0.0.1|whoami

127.0.0.1&whoami

127.0.0.1000 || whoami

127.0.0.1 && whoami

  1. 注意:有空格和无空格有时会有意想不到的效果

  2. 做完了当然得看一下源码:

image-20210128143009680

  可以看到,该代码没有对用户的输入做任何的过滤,直接使用shell_exec函数执行用户输入,这是非常危险的。

难度等级:medium

过关思路

  1. 这里过关思路和low一致,也没啥可说的,我们主要看一下源码就行。
  2. 源代码如下:

image-20210128143630947

  通过分析,可以看出,medium关卡比low关卡多了一个黑名单。其通过数组的方式将&&;进行了过滤,即将其替换为。但是,这种过滤基本上还是跟没有过滤差不多,因为黑名单里的过滤太少了,黑名单也不安全。

难度等级:high

过关思路

  1. 上手先测试几个前面的payload,发下好多都被过滤了,但是还有几个可以用:

127.0.0.1 || whoami

127.0.0.1|whoami

127.0.0.1000||whoami

image-20210128154801468

  1. 我们直接看源代码:

image-20210128154709468

  可以看到,这次的黑名单过滤明显的多了起来,但是也发现(可能是故意给我们漏出来的😂),其在过滤的时候,没有过滤|而是过滤了|+空格,所以,该代码只是遇到单单一个|,不会进行过滤。

难度等级:impossible

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值