Dvwa之命令注入全级别学习笔记

发布于:2022-12-15 ⋅ 阅读:(546) ⋅ 点赞:(0)

命令注入

命令注入漏洞可能是应用程序中可能发生的最危险的漏洞之一。当应用程序允许用户输入与系统命令混淆时,就会发生命令注入漏洞或操作系统命令注入漏洞。当用户输入在没有适当预防措施的情况下直接连接到系统命令中时,就会发生这种情况。

磨刀不误砍柴工:

常见符号及用法

;多语句执行符号

|:管道符,不管第一条语句是否成功都执行第二条

||:前面命令执行失败才执行第二条

&:都执行

&&:前面的执行成功才会执行第二条

其他命令可以看一下这个:常见漏洞之命令注入

low级别

进到页面直接开干

b2a75e8a566344a2b29f991f5ec404a2.png

输入127.0.0.1 &ipconfig

332b0bf71cf845869d6e23fa15269f9f.png

查看源码就会发现其实一点都没有进行防护,所以用什么语句都可以。

Medium

输入127.0.0.1 && ipconfig发现提示错误。

bb09b9e8ce6642fdb2538bb818db897c.png

看一下源码

$substitutions = array(
        '&&' => '',
        ';'  => '',
    );

    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );

就替换了&&和;将它们赋值为空。是不是不用这两就可以行得通呢?浅浅试一下

输入:127.0.0.1 & ipcongif

ec922df4de7f4d7cbe18792b7827c212.png

可以,咱就是说。

High

直接上来就给它输入127.0.0.1&& ipconfig

66bcaa1915dc491a8ac6578f1fc406b7.png

提示错误!

看一下源码

 5ebe218839ec4f609cd973b6dab3eb99.png

发现需要使用的符号都被替换成了空值了呀!但是有一个小细节,就是管道符后面多出了个小空格,这就有很大的发展空间,可以通过使用1 |ipconfig进行命令注入。但我还是好奇,我不信只有这个可以,我浅浅试一下1 || ipconfig

 b795b19ce259432ab0a5c6ad12039f4e.png

只能说可以,话说||识别的话识别不出|可以理解,但||识别不出来并替换成空值就不太明白。

Impossible

试了上一个的1|ipconfig发现不行,也试了其他的方法都不行。

 5f9087afced845f68d50deee66246f92.png

只能说impossible还是你impossible,用来学习一下它是怎么防护的吧

上源码

c7b4b1c558294d65886428dbe791c3c2.png

查看代码发现,将我们输入的数据通过“.”进行分割并赋值给数组,通过判定数组数据是否为数字来判断是否执行cmd命令,都是数字再将4个数字进行组合查询。只能说秒啊!