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

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

难度等级:low

过关思路

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

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

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

127.0.0.1

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

www.baidu.com

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

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

输入127.0.0.1 | whoami

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

命令注入成功。

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

127.0.0.1|whoami

127.0.0.1&whoami

127.0.0.1000 || whoami

127.0.0.1 && whoami

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

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

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

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

难度等级:medium

过关思路

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

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

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

难度等级:high

过关思路

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

127.0.0.1 || whoami

127.0.0.1|whoami

127.0.0.1000||whoami

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

  1. 我们直接看源代码:

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

  可以看到,这次的黑名单过滤明显的多了起来,但是也发现(可能是故意给我们漏出来的

上一篇:使用 Golang 自定义 Kubernetes Ingress Controller


下一篇:React Native知识4-Image组件