DVWA 之命令注入(Command Injection)
DVWA 之命令注入(Command Injection)
1.解决乱码问题
在文本框中输入”ip address”后结果显示为乱码,如下图所示。 解决此问题的方法:在DVWA-masterdvwaincludes目录下找到dvwaPage.inc.php文件中所有的”charset=utf-8”,修改”charset=gb2312”
2.基础知识
&&这个就是我们经常说的and,cmd1&&cmd2意思为当cmd1执行成功以后才执行cmd2,否则不执行cmd2 &这个相当于命令分隔符,cmd1&cmd2意思是不管cmd1执行成功与否,都执行cmd2 |这个在Linux术语叫做管道符,cmd1|cmd2意思是将cmd1的输出作为cmd2的输出,且只执行cmd2
3.答题部分
low级别
查看代码,发现系统无过滤 先试一试127.0.0.1,看看会返回什么,我们发现其实就是ping命令
我们就想到,可不可以在输入ip的框输入其他命令,我们输入127.0.0.1&&whoami 页面成功进行了返回
Medium级别
查看代码,发现系统对&&和;进行了空格过滤,但是仍有其他命令未进行过滤。(比如& ||)
所以我们可以用后两个来进行,也可以用双写来绕过,比如我们可以构造这样一个命令连接符&;&,它只会过滤其中的分号,然后剩余的其他字符,又连接成为了&&,同样达到了目的
127.0.0.1&;&whoami
High级别
我们可以发现进一步对符号进行了过滤 我们发现代码对于管道符|后面加一个空格进行过滤,却没有对一个空格后面一个管道符’ |‘和单独的管道符’|进行过滤,所以我们以此为突破口,可以进行注入
127.0.0.1 |whoami 127.0.0.1|whoami
