dvwa Command Injection(命令执行/注入)通关手册

Preface

前几天一直专注于SQL注入,因为明天要考试了,所以今天赶紧复习一下基础漏洞,先从相对简单的命令执行开始复习

我们下面的实验,是在windows上执行的,其实大家在Linux上实验更好。

Main Body

0x00

命令执行是通过代码层 直接调用系统执行命令

例如 调用cmd 执行ping 操作

在Web程序中,因为业务所需,需要调用系统命令执行某些
功能然后反馈其结果

一般做法是通过web前端传递参数到后台服务器上
执行,但由于开发人员没有对输入进行严格的过滤
,导致攻击者可以构造一些额外的"带有非法目的"
的命令,欺骗后台服务器执行,造成破坏。

命令执行的危害

因为命令执行可以调用系统代码

也就等于能直接通过命令 来操作服务器

如果当前用户的权限为root 则该漏洞可以导致攻击者在服务器上
执行任意命令。

例如反弹shell,一句话,内网渗透,重启服务器,关机

Low

0x01

根据题目要求,让我们输入一个IP地址,我们用本机地址127.0.0.1来尝试一下,页面会给我们返回什么

在这里插入图片描述
发现它是对我们所给的ip地址,进行了ping命令,所以我们就想到,可不可以在输入ip的框输入其他命令,我们去试试

我们输入127.0.0.1&&whoami

在这里插入图片描述
我们发现成功将我们想要执行的命令,页面成功进行了返回

下面说一下关于命令的一些符号

&&这个就是我们经常说的and,cmd1&&cmd2意思为当cmd1执行成功以后才执行cmd2,否则不执行cmd2
在这里插入图片描述
在这里插入图片描述

&这个相当于命令分隔符,cmd1&cmd2意思是不管cmd1执行成功与否,都执行cmd2
在这里插入图片描述

|这个在Linux术语叫做管道符,cmd1|cmd2意思是将cmd1的输出作为cmd2的输出,且只执行cmd2
在这里插入图片描述
所以Low级别的,我们可以用上述任何方法都实现命令执行,我也可以用命令执行写一句话木马,然后通过菜刀来进行连接,从而获得webshell

Medium

0x02

看源代码,这关只过滤了&&;,并没有对我们的&|进行过滤,所以我们可以用后两个来进行,也可以用双写来绕过,比如

我们可以构造这样一个命令连接符
&;&,它只会过滤其中的分号,然后剩余的其他字符,又连接成为了&&,同样达到了目的

127.0.0.1&;&whoami
在这里插入图片描述

High

0x03

由源代码知,它对我们的这些符号进行了过滤

在这里插入图片描述
但是细心的我们发现,它对于管道符|后面加一个空格进行过滤,却没有对一个空格后面一个管道符' |'和单独的管道符'|'进行过滤,所以我们以此为突破口,可以进行注入

127.0.0.1 |whoami
127.0.0.1|whoami
在这里插入图片描述
使用上面任意一个payload,我们都可以达到命令执行的目的。

Impossible

0x04

我们发现impossible难度对于我们的输入有了严格限制,且增加了新的token,所以我们无法进行命令注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值