DVWA靶场Medium难度部分解析

前言

好久没做题,不想吹牛逼了,消停做点题QAQ

Vulnerability: Command Injection

这题不咋难,老Ping题了

DVWA靶场Medium难度部分解析_第1张图片

 输个分号ls试试,没回显即被Ban了,试试别的,例如|或者&&

DVWA靶场Medium难度部分解析_第2张图片

出了,看看源代码

DVWA靶场Medium难度部分解析_第3张图片

 把分号和和号Ban了

Vulnerability: File Inclusion

DVWA靶场Medium难度部分解析_第4张图片

文件包含

看看几个文件

DVWA靶场Medium难度部分解析_第5张图片

DVWA靶场Medium难度部分解析_第6张图片 

DVWA靶场Medium难度部分解析_第7张图片

只有file2要密码。没啥想法,直接Hackbar自带Payload梭了

DVWA靶场Medium难度部分解析_第8张图片

DVWA靶场Medium难度部分解析_第9张图片

出了

DVWA靶场Medium难度部分解析_第10张图片

解个码

DVWA靶场Medium难度部分解析_第11张图片

Vulnerability: File Upload

DVWA靶场Medium难度部分解析_第12张图片

文件上传,限制只能传图片

一句话改成图片后缀,抓包改成php

DVWA靶场Medium难度部分解析_第13张图片

保险点后面加个空格。此处原理请参照:https://www.cnblogs.com/cainiao-chuanqi/articles/14198190.html

DVWA靶场Medium难度部分解析_第14张图片

Vulnerability: SQL Injection

DVWA靶场Medium难度部分解析_第15张图片

抓个包看看

DVWA靶场Medium难度部分解析_第16张图片

在包里看到id=1,判断闭合方式:

输入1'时:

DVWA靶场Medium难度部分解析_第17张图片

输入1"时:

DVWA靶场Medium难度部分解析_第18张图片

 输入1和输入2-1时:

DVWA靶场Medium难度部分解析_第19张图片

DVWA靶场Medium难度部分解析_第20张图片

 数字型,判断字段数:

1 order by 1#        正常

1 order by 2#        正常

1 order by 3#        报错

两个字段,注库名:

id=-1 union select 1,database()

逐句解释:

首先判断字段数,是为了确定后台数据库中存储数据的方式

id 姓名 密码
1 hh 123456
2 ss 12345
3 aa 123

如上的表格中字段数为3,即id姓名密码

union select 为联合注入语句,要求左右两侧字段数相同,即:

左侧的-1代表的是网站后台数据库,攻击者要确保union select后面的位数要和前面,也就是系统后台数据库相同,这也是攻击者为什么要先判断字段数的原因。

在本题中,下列语句即不合规则的语句:

id=-1 union select 1,2,3

因为左侧的后台数据库中有两字段数,但右侧1,2,3有三个字段数。

那在正常的语句中就可以将正常显示位中的字符替换成想了解的信息,例如想注出数据库的名字

在本题中就可以

id=-1 union select 1,database()

 前面的-1作用是避免占据显示位,使攻击者无法看到想要的消息。

举例说明:

假设在选择数字进行查询时,网站只会给攻击者一条查询记录。如果以如下语句传输:

id=1 union select 1,database()

则会导致唯一提供给攻击者的记录被id=1这条查询结果所占据,而后面的数据库名就无法看到。 

所以要使用一个网站后台数据库中压根不可能存在的一个ID去查询,例如负数或者一个极大数。

结果如下: 

DVWA靶场Medium难度部分解析_第21张图片

此处我使用的是

id=1 union select 1,database()

可以看到第一个显示位返回值为id=1的查询结果,第二个显示位则是数据库名:DVWA

后续怎么注不想说了。不过本题有一个坑:

查看源代码,发现有设置函数过滤攻击语句

DVWA靶场Medium难度部分解析_第22张图片

结果就是攻击者在进行下一步攻击时部分字符被Ban

DVWA靶场Medium难度部分解析_第23张图片

绕过方式就是16进制编码一下:

DVWA靶场Medium难度部分解析_第24张图片

DVWA靶场Medium难度部分解析_第25张图片

别忘了用0x声明字符为16进制。

Vulnerability: Reflected Cross Site Scripting (XSS)

反射型XSS直接模板梭就行了

DVWA靶场Medium难度部分解析_第26张图片

Vulnerability: Stored Cross Site Scripting (XSS)

前端限制输入字符数量,直接改一下或者抓包就好了:

DVWA靶场Medium难度部分解析_第27张图片

 存储型的话模板梭一下

DVWA靶场Medium难度部分解析_第28张图片

没过去,看看源代码:

DVWA靶场Medium难度部分解析_第29张图片

解释一下:

strip_tags()

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签。

addslashes()

addslashes()函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。
可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了

双写绕呗:

DVWA靶场Medium难度部分解析_第30张图片

 DVWA靶场Medium难度部分解析_第31张图片

下机

你可能感兴趣的:(今年十八系列,web狗如何从0到1,安全,php,web安全,DVWA)