攻破 DVWA Command Injection 模块(Low-Medium-High)
DVWA(Damn Vulnerable Web Application)是一个用于安全测试和学习的 Web 应用程序,包含多个漏洞模块。其中 Command Injection 模块常用于测试命令注入攻击。本篇记录在 Low、Medium、High 三个等级下测试。
一、Low
Command Injection模块可输入一个IP地址,拼接到ping指令之后,后台执行并返回结果,Linux可以通过命令连接符一次执行多个命令。
;:顺序执行:不管前一个命令是否成功,都会依次执行后续命令。&&:逻辑与:只有前一个命令成功,才会执行后续命令。||:逻辑或:只有前一个命令失败,才会执行后续命令。|:管道符:将前一个命令的输出作为后一个命令的输入。&:后台执行:在后台运行命令,不阻塞当前 shell。
因此可以输入 127.0.0.1 & whoami 来获取whoami命令返回的当前用户信息。
输入 127.0.0.1 & ls 来获取ls命令返回的当前目录内容。
二、Medium
Medium难度相较于Low难度增加了黑名单,禁用“&&”与“;”,但仍能使用其它连接符,如“&”
因此可以输入 127.0.0.1 & ip addr 来获取ip addr命令返回的网络配置信息。
三、High
High难度增加了更多的黑名单字符:'&'、';'、'| '、'-'、'$'、'('、')'、'`'、'||'
观察源码可得到一个“粗心的程序员”漏洞,代码将‘|’后跟一个空格设为黑名单,对单独的‘|’不设防
因此可以输入 127.0.0.1|ip addr 来获取ip addr命令返回的网络配置信息。