dvwa全等级命令行注入

1、LOW等级命令行注入

在低等级的命令行注入没有任何的过滤,通过查看源码可以得知,

step1:使用ping 127.0.0.1&&dir可以得出如下结果

step2:使用 ping127.0.0.1&net user可以得到如下运行结果

step3:使用ping 127.0.0.1|dir可以得到如下结果

ps:在这里有必要说一下逻辑运算符“&”“|”都是什么意思

&&:代表首先执行命令a在执行命令b,但是前提条件是命令a执行正确才会执行命令b,在a执行失败的情况下不会执行b命令。所以又被称为短路运算符。

&:代表首先执行命令a在执行命令b,如果a执行失败,还是会继续执行命令b。也就是说命令b的执行不会受到命令a的干扰,在执行效率上来说“&&”更加高效。

||:代表首先执行a命令在执行b命令,如果a命令执行成功,就不会执行b命令,相反,如果a命令执行不成功,就会执行b命令。

|:代表首先执行a命令,在执行b命令,不管a命令成功与否,都会去执行b命令。

2、medium等级命令行注入

medium等级的命令行注入增加了一些过滤,通过查看源码可以看到,他将&&和:过滤成了空字符,但是他并没有过滤“|”,所以我们依然可以进行注入。

step1:使用命令ping 127.0.0.1|net user可以得到如下结果

step2:使用ping 127.0.0.1 &dir可以得到如下结果

step3:还有很多方法可以进行medium等级的命令行注入,比如“||”操作(使a命令执行失败),

“&;”"|;""||;"......

3、high等级命令行注入

high等级的命令行注入过滤的东西比较多,但是他在过滤的时候有bug

step1:使用命令ping 127.0.0.1|dir可以得到如下结果

原文地址:https://www.cnblogs.com/pangsong/p/12203305.html