DVWA 之命令注入(Command Injection)

DVWA 之命令注入(Command Injection)

1.解决乱码问题

在文本框中输入”ip address”后结果显示为乱码,如下图所示。
DVWA 之命令注入(Command Injection)_第1张图片
解决此问题的方法:在DVWA-master\dvwa\includes目录下找到dvwaPage.inc.php文件中所有的”charset=utf-8”,修改”charset=gb2312”
DVWA 之命令注入(Command Injection)_第2张图片

2.基础知识

&&这个就是我们经常说的and,cmd1&&cmd2意思为当cmd1执行成功以后才执行cmd2,否则不执行cmd2
&这个相当于命令分隔符,cmd1&cmd2意思是不管cmd1执行成功与否,都执行cmd2
|这个在Linux术语叫做管道符,cmd1|cmd2意思是将cmd1的输出作为cmd2的输出,且只执行cmd2

3.答题部分

low级别

查看代码,发现系统无过滤
DVWA 之命令注入(Command Injection)_第3张图片先试一试127.0.0.1,看看会返回什么,我们发现其实就是ping命令
DVWA 之命令注入(Command Injection)_第4张图片

我们就想到,可不可以在输入ip的框输入其他命令,我们输入127.0.0.1&&whoami
DVWA 之命令注入(Command Injection)_第5张图片
页面成功进行了返回

Medium级别

查看代码,发现系统对&&和;进行了空格过滤,但是仍有其他命令未进行过滤。(比如& ||)

DVWA 之命令注入(Command Injection)_第6张图片所以我们可以用后两个来进行,也可以用双写来绕过,比如我们可以构造这样一个命令连接符&;&,它只会过滤其中的分号,然后剩余的其他字符,又连接成为了&&,同样达到了目的

127.0.0.1&;&whoami
DVWA 之命令注入(Command Injection)_第7张图片

High级别

我们可以发现进一步对符号进行了过滤
DVWA 之命令注入(Command Injection)_第8张图片我们发现代码对于管道符|后面加一个空格进行过滤,却没有对一个空格后面一个管道符’ |‘和单独的管道符’|'进行过滤,所以我们以此为突破口,可以进行注入

127.0.0.1 |whoami
127.0.0.1|whoami
DVWA 之命令注入(Command Injection)_第9张图片

你可能感兴趣的:(DVWA 之命令注入(Command Injection))