DVWA中等级通关指南-超详细版

欢迎大家光临我的博客一起交流学习呀~
chenjingjiu.cn

1.Brute Force

上篇文章截的图太多了,这回就不给大家截题目了,重点的图还是会有的哦~

DVWA中等级通关指南-超详细版_第1张图片


从源码可以看到,只有红框框出来的地方发生了变化。这个mysql_real_escape_string()是干什么的呢?
简单来说就是对一些特殊字符进行了转义,那低等级时候用到的注入就失效了吧,这回就只能老老实实爆破了,而且可以看到中等级的代码依然没有限制尝试次数,所以就存在爆破漏洞。
具体操作与第一篇没有区别,可以参见上一篇文章。

2.命令执行

DVWA中等级通关指南-超详细版_第2张图片


从源码可以看出,比低等级多了红框和黑框中的代码。其中红框的代码是定义了一个黑名单数组,只要在黑名单中的字符都会被替换为空值,也就是被删除。
而黑框中多了一个php函数str_replace()【w3school.com.cn/php/fun】,简单来说就是从第3个参数找到第一个参数中的值,然后替换为第2个参数。这样就把target里面的黑名单字符全部删去了。不过这个黑名单写的也太敷衍了,就屏蔽了&&和:,那这个就和低等级的还是没啥区别,直接用低等级代码无脑过。

3.CSRF(跨站请求伪造)

DVWA中等级通关指南-超详细版_第3张图片


从源码可以看出,比低等级的多了红框中的内容。主要是多了一个HTTP_REFERER变量,利用eregi()函数【php.net/manual/en/funct】进行匹配,简单说就是如果HTTP请求头存在referer字段且包含”127.0.0.1”,即可绕过验证。我们来抓包看一看访问恶意网址时的请求包。

DVWA中等级通关指南-超详细版_第4张图片


可以看到这里的referer是当前访问网页的地址,然后返回一个重定向响应

DVWA中等级通关指南-超详细版_第5张图片


DVWA中等级通关指南-超详细版_第6张图片


这个数据包可以看到,host是DVWA服务器的地址,referer还是本地服务器的地址,照现在的情况是肯定无法成功的,访问一下试试

DVWA中等级通关指南-超详细版_第7张图片


上图中可以看出密码修改并没有成功,不然会返回一个 Password Changed的标志的。
那么如何绕过限制呢?什么东西是我们可以控制的?
目前是我自己访问,所以我可以对流量进行抓包,然后修改referer,可是远程用户访问,怎么进行抓包?流量监听也是TCP层的,理论上来说是可以进行修改的,只是太难操作了。
不知道大家注意到文件名没有,这个referer中是存在文件名的,那么直接把文件名改了不就行了,反正服务器只是看referer中有没有目标字串而已。把html文件改成127.0.0.1.html试试,同时需要把钓鱼界面的链接地址改成127.0.0.1.html。
这回再抓包试试(先把浏览器缓存清一下,不然会缓存刚才的钓鱼界面,导致无法重定向)

DVWA中等级通关指南-超详细版_第8张图片


可以看到referer中有了想要的字符串,那么是否能绕过限制呢?

DVWA中等级通关指南-超详细版_第9张图片


事实证明可以,这时密码已经被修改了,可以登录试一下

DVWA中等级通关指南-超详细版_第10张图片


确实登录不进去了,所以证明成功绕过

4.文件包含

DVWA中等级通关指南-超详细版_第11张图片


可以看到这次对字符串进行了一定的过滤,把http和https给过滤掉了,但是咱们的本地文件包含还是没有受到影响呀~
不过也不能就此满足,因为这个还是没有防住远程文件包含。可以看到该程序并没有写循环,只是对于字符串做了一次过滤而已,那么我们构造请求为这样

v2-ccbe35bf95e8d370541924ae2a5b2755_b.png


发现确实把http://给过滤掉了,剩下了ip地址没有什么用了。但是想想刚才提到的,我们构造如下请求

DVWA中等级通关指南-超详细版_第12张图片


可以看到我们双写了http://,页面执行了远程文件包含。原理就是当http://中间的http://被去掉后,就剩下了一个http://,就可以进行远程文件包含了。

DVWA中等级通关指南-超详细版_第13张图片


PHP的str_replace()函数是区分大小写的,所以利用大小写也可以绕过。本地文件包含参考低等级通关指南。

5.SQL注入

DVWA中等级通关指南-超详细版_第14张图片


从源码可以看出,这跟爆破题中的代码一样,都是对id进行了字符串的转义,那么现在咱们来看一看这个转义到底转义了哪些字符?利用bp的intruder模块进行sql fuzz试试。

DVWA中等级通关指南-超详细版_第15张图片


结果如下

DVWA中等级通关指南-超详细版_第16张图片


可以看出,除了@,#剩下的符号基本都被过滤了,那这样还注入啥?
不要心急,sql注入除了字符型,还有一种叫数字型。刚才没有在图片中标注出来,现在再来仔细看一下

DVWA中等级通关指南-超详细版_第17张图片


看出差别了吗?这个id前面没有单引号,所以就不需要对单引号进行闭合,也就不需要单引号了。而且#注释符还在,那么看看数字型注入怎么用呢?
A.首先看看有查询字段有几列:1 order by 2#

DVWA中等级通关指南-超详细版_第18张图片


1 order by 3#

v2-62a59294054628c309e99690d6535dd2_b.png


说明查询字段有两列。
B.查看当前数据库:1 union select 1,database() #

DVWA中等级通关指南-超详细版_第19张图片


C.爆表名:1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database())#

DVWA中等级通关指南-超详细版_第20张图片


D.爆列名:1 union select 1,(select group_concat(column_name) from information_schema.columns where table_name=0x7573657273) #

DVWA中等级通关指南-超详细版_第21张图片


这里要特别注意一下,因为单引号被过滤,所以这里的表名就不能用”users”,需要将users转换为16进制字符,然后就不需要单引号了。这种方法也适用于低等级sql注入。
E.爆字段值:1 union select 1,(select group_concat(user,password) from users) #

DVWA中等级通关指南-超详细版_第22张图片


获得了密码的md5值,解密一下就好了

6.SQL盲注

DVWA中等级通关指南-超详细版_第23张图片


这个跟上一个没有任何区别,就是没有错误回显了,只要跟着上面的做就没有任何问题,也是过滤了大部分字符,但是是一个数字型注入。就不再赘述了

7.文件上传

DVWA中等级通关指南-超详细版_第24张图片


看源码,发现多了红框中的判断,看看uploaded_type和uploaded_size是什么东西?
百度了一下,发现好像没啥具体的介绍,大概是看的文件的后缀?抓包看看

DVWA中等级通关指南-超详细版_第25张图片


这是我上传一张正常图片时产生的请求包,看到其中有Content-Type这个字段了没?好像跟uploaded_type是一样的啊。意思就是上传图片形式就行了
我们把上次写的trojan.php改个后缀变成trojan.jpg,然后上传试试

DVWA中等级通关指南-超详细版_第26张图片


上传成功,但现在这种情况没有意义啊,其实可以利用文件包含对这个图片进行执行,然后再用菜刀连接。连接地址为:192.168.150.131/dvwa/vu,连接字段为hack,脚本类型为php,点击连接

DVWA中等级通关指南-超详细版_第27张图片


DVWA中等级通关指南-超详细版_第28张图片


成功连接
这道题的正统做法应该是用bp改包,将上传的文件名改成trojan.php

DVWA中等级通关指南-超详细版_第29张图片


这样也可以,然后用菜刀连接即可。

8.反射型XSS

DVWA中等级通关指南-超详细版_第30张图片


可以看到这个没有任何的防御效果啊,str_replace可以利用双写绕过,也可以大小写绕过,实在没有什么难度,就不写了

9.存储型XSS

DVWA中等级通关指南-超详细版_第31张图片


这个在message和name上都做了相应的处理,试试低等级的方法

DVWA中等级通关指南-超详细版_第32张图片


失败了,直接将信息储存起来了。
这次对message的防御比较强啊,这回可以对name字段做一些文章
首先可以用bp改包,然后改name的字段以绕过长度限制。另一种方法是修改页面中标签的值。

DVWA中等级通关指南-超详细版_第33张图片


对输入长度进行限制的地方其实是前端的html代码限制的,而不是服务器进行的限制,从源码中也看到并没有对name的长度做限制。所以把刚才的maxlength改成1000,然后输入xss注入语句

DVWA中等级通关指南-超详细版_第34张图片


Sign guestbook

DVWA中等级通关指南-超详细版_第35张图片


可以看到已经成功了
这次的就做到这里,下次再写一写高级的。
路漫漫其修远兮,吾将上下而求索

你可能感兴趣的:(DVWA中等级通关指南-超详细版)