小伙伴们,我们一起学习一下DVWA这个如何进行安全攻击吧。
学习下DVWA(Damn Vulnerable Web Application),那么这玩意是个啥呢?DVWA是一款渗透测试的练习系统,也就是我们的测试靶机,很适合入门,要为以后的挖洞致富之路打好基础
DVWA简介
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
DVWA共有十个模块,分别是
Brute Force(暴力(破解))
Command Injection(命令行注入)
CSRF(跨站请求伪造)
File Inclusion(文件包含)
File Upload(文件上传)
Insecure CAPTCHA (不安全的验证码)
SQL Injection(SQL注入)
SQL Injection(Blind)(SQL盲注)XSS(Reflected)(反射型跨站脚本)
XSS(Stored)(存储型跨站脚本)
需要注意的是,DVWA 1.9的代码分为四种安全级别:Low,Medium,High,Impossible。初学者可以通过比较四种级别的代码,接触到一些PHP代码审计的内容。
环境搭建
安装phpstudy
官方网站https://www.xp.cn/,下载最新版本即可
安装过程也十分简单,直接下一步到底就好,随后会出现初始化提示,选择“是”安装后如上图
执行COM目录下phpstudy_pro.exe 看到下面界面,启动相应的套件即可。
安装DVWA
DVWA 官网
http://www.dvwa.co.uk/
或者GitHub上下载源码
https://github.com/ethicalhack3r/DVWA
把下载好的DWVA的压缩包,解压在C:\phpStudy_pro\WWW中(因为我将phpStudy安装在C盘,所以是C:\phpStudy)接下来需要配置DVWA链接数据库,请打开config文件夹,打开config.inc.php。
因为是本地渗透测试环境,本地直接访问就好了,浏览器访问 http://127.0.0.1/DVWA,单击最下面按钮,创建数据库即可。提示创建数据库的密码,提供不小于6位的密码即可。创建成功,直接跳转到登陆界面。账号 admin 密码 password
蛮力介绍
蛮力,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户密码,是现在最广泛使用的攻击手法之一。通俗地讲,就是尝试每一种答案的可能,如以前轰动国民的12306“撞库”事件,实质上就是暴力破解攻击。
暴力破解模型(开箱子模型)
为(密码= 000;密码<= 999;密码=密码+1)
{
输入密码;
按下开锁按钮;
如果箱子关闭;
破解失败;
继续;
if箱子打开;
破解成功;
打破;
}
上述代码通过一个循环,从000号密码开始尝试打开箱子,打开即停止,打不开便尝试下一个钥匙。就这样,我们尝试了每一种可能,总会有打开箱子的时候(当然只是时间问题)
这里选择low
1、Brute Force
Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一,如2014年轰动全国的12306“撞库”事件,实质就是暴力破解攻击。
分析:
服务器只验证了参数登录是否已设置,没有任何的防爆机制,并且对参数用户名没有做任何过滤,而对密码做了MD5校验,杜绝了通过参数密码进行sql注入,因此利用的思路如下:
1,直接进行爆破
2,对没做过滤的用户名做sql注入
使用工具爆破
使用Bursuite进行爆破
设置抓取报文代理,这里设置与浏览器中的代理设置要一致。
在浏览器中访问网站,则会抓取到请求和返回报文。
在请求报文窗口,按ctrl+i,则把请求报文插入到Intruder。在Intruder中则会多处一个tab页面,里面的参数都已经被设置为变量。
破解时,把下面这个按钮设置为off状态。
使用右侧的按钮,把需要改变的字符串设置为变量。在这里把密码和token设置为变量。
密码使用下面方法参数化。
Pyload type选择Simple list,在Payload Options中添加字符串值。
经过调试,会发现请求报文中token的值是上次请求成功服务器返回的token。那么如何取上一次返回报文token呢?
在Payloads页面设置,Payload set选择2,Payload type选择Recurisive grep类型。
勾选 下面的复选框
单击【Add】按钮,在响应包的HTML内容里找到user_token,鼠标拖动选定user_token的值,并Ctrl+C复制其值,点击OK。
回到Options窗口,可以看到:
进入payloads栏目,选择payload set为2,在payload option下找到initial payload for first request,将上步复制的user_token的值粘贴到后方输入框内,为首次请求赋值初始数值:
点击右上角的start attack,结果如下
分析这两个不同于其它长度值的返回报文,看看那个成功了。这里就完成了暴力破解过程。
欢迎等待下一期XSS攻击。
关注安全,关注作者
(完)