DVWA-暴力破解-对‘g0tmi1k’文章的学习笔记
DVWA-暴力破解-对‘g0tmi1k’文章的学习笔记
- 概要
- 事先准备(Linux命令学习)
- 思想及相关概念
- 解题过程
- Hydra
- Patator
- Burp Suite
- 自写脚本
g0tmi1k的原文地址
博主g0tmi1k(我叫他“搞牛奶”)的这篇文章是在学习DVWA暴力破解模块时接触到的,一路看下来发现不仅仅只有关于DVWA的解题步骤,还有很多非常值得初学者学习的其他思路和方法,于是就对这篇文章深入学习一下,记下一些个人觉得非常不错的要点。该博主的其他博文也非常优秀,是一位大神!
因为我还是个小白,还有很多东西都不会,所以可能记录的内容略显繁琐。
概要
搞牛奶是站在“把DVWA里面的练习内容当作完全的黑盒子”的角度来进行学习的,即除了目标域名和一开始所必须的登入系统的管理员账号密码之外,其他地方一律当作不知道(即使可以看源码也不看),尽可能地逼近着实际的网站漏洞测试情景。
对目标网站进行分析的方式,搞牛奶倾向于尽可能地使用命令行工具(像是ucrl配合grap、sed、awk和diff等),而不是只用浏览器。
对于是使用浏览器还是命令行,个人认为各自有其优点,例如:
- 浏览器:简单直观是其最大的优点,对于数据的发送和接收也是自动的,有助于把注意力完全放在目的上而无需在意过程
- 命令行:操纵数据直接方便,输命令就行,而无需在浏览器中进行繁琐的“点点点”;过程可高度定制,可控性强,有助于更好地理解工作过程和原理
作为研究安全地小白,个人认为在学习过程中更应该把重点放在对过程和原理上,而不是单纯地为了结果而去解题。所以作为学习漏洞来说,也为了尽可能地学习搞牛奶的思路和观点,我也尽可能地使用命令行工具进行学习。
(由于用到的工具大多数都不熟,我也是事先花了一定时间去简单学习了一下,对于Linux小白的我来说也算是受益匪浅!)
事先准备(Linux命令学习)
下面涉及到的工具和Linux命令基础就不进行介绍和讲解使用教程了,网上其他人总结的也比我好(拒绝学习资料在互联网上无意义地重复,人人有责)。
由于是使用curl工具,cookie和sessionid等的保存工作都需要手动进行(搞牛奶指出,这项工作仅针对DVWA,不一定所有网站都需要这个保存sessionid的过程)。
首先是使用获取DVWA登录的token和sessionid:
CSRF=$(curl -s -c dvwa.cookie 'http://www.dvwa.com/login.php' | awk -F 'value=' '/user_token/ {print $2}' | cut -d "'" -f2)
命令解析:
- curl -s -c 文件名 ‘目标网站’
保存目标网站的cookie到文件中
结果是回显登录的页面的html源码,其中有个隐藏的input标签是user_token,保存着此次会话用户的token(由于是隐藏的,所以即使使用浏览器也不能直接看出来,需要点开控制台查看源码,这就体现出了一个使用命令行的优势,以及启示我们要关注网页源码)。
同时保存了网站的cookie到本地。
- awk -F ‘value=’ ‘/user_token/ {print $2}’
对上一步的回显结果进行逐行查找,查找 “user_token“所在的行,并以”value=“为分隔符对该行进行分割,输出分割后的第二个值
- cut -d “’” -f2
对上一步的回显结果进行字段提取
- CSRF=$(XXX)
最后对上一步的结果保存到变量CSRF中。
接着利用token登录到系统,改变该cookie在目标服务器中的登陆状态:
curl -s -L -b dvwa.cookie --data "username=admin&password=password&user_token=${CSRF}&Login=Login" "http://www.dvwa.com/login.php"
命令解析:
使用-L允许重定向,-b传递cookie,–data传递填入表单所需要的参数(用户名、密码、token以及点击登录)。
如无意外,将会回显登陆成功后系统首页的源码(包括了You have logged in as 'admin’字样),并且目标服务器中将会改变该cookie的登陆状态为成功。
最后删除本地cookie中的安全等级字段,为的是可以随时切换安全等级:
sed -i '/security/d' dvwa.cookie
命令解析:删除文件中“security“字段的所在行
经过上述步骤之后就可以使用类似下面的命令访问DVWA中的不同页面:
curl -s -L -b 'security=low' -b dvwa.cookie -i 'www.dvwa.com/vulnerabilities/brute'
其中可以修改security的参数为不同的安全等级,来便捷地访问同一练习不同难度的页面。
获取到页面源码之后,可以使用管道符配合sed或grep等工具来控制输出,从而只关注页面中我们关心的部分(推荐上浏览器查看源码来获取我们关心的标签部分)。
例如针对练习页面我们只想看到实际练习漏洞的部分:
sed -n '/<div class="body_padded/,/<\/div/p'。
总之后面想怎么操作就怎么操作。
思想及相关概念
简单来讲暴力破解和字典攻击还是有区别的,前者是遍历可用字符组合,后者是遍历事先准备好的字典文件,虽然现在一般都默认认为是后者的同一概念。
暴力破解的速度取决于整个过程中最慢的点。
从网页源码中可以获取到的信息:
普通页面、登陆失败和登录成功的回显不同,可以使用curl分别获取页面并导出到文件,然后使用diff命令比较不同之处;
可以以上一条所讲述的作为判断破解是否成功的依据,如若失败可能会有“failed”、“error”或“incorrect”等字样,成功可能会有“success”等字样;
在实际的渗透环境中,我们无法事先得知登陆成功所返回的相关参数,所以在这种情况下“黑名单“可能比”白名单“更为适用;
爆破的过程中,最好先尽可能地获取现已存在的用户名,有以下参考途径:
- 寻找公共账号
- 从“忘记密码“入手
- “邮箱已被注册?“
- 寻找“访客“用户
- 从“帮助“页面入手
- 查找网站源码,查找是否存在默认用户
- SQL注入
爆破的线程数和等待时间要设置合理,前者并非越多越好,后者并非越短越好;(网站崩溃了就是DoS了,那还破解个啥呀);
解题过程
具体过程就不重复了,下面就记录自己实操的结果和心得。
Hydra
使用Burp代理Hydra那里没能成功,原因可能与命令格式有关。
而且不使用代理,Hydra也没能完成它的破解过程,总是在结果枚举完成的时候卡住,没能给出正确结果。
(个人感觉Hydra还是用来破解常规服务的账号密码比较好,类似ssh、telnet或者是ftp之类的,破解具体的网站登陆页面还是使用别的吧)
(类似Hydra的还有一个medusa?)
Patator
使用patator倒也是可以完成任务,也能正常使用Burp代理来debug
下面是实际执行的代码(蓝色箭头是代理,可不要):
而且参数的传递也比Hydra简单(部分参数的实际名称可能会变,看帮助文档)
(新软件就是好啊)
和Hydra有区别的地方在于:
- 没有提供“尝试用户名/空白/反序密码作为密码”的选项,需要在字典文件中实际列出;
- 而且默认不会遇到正确结果就退出,而是一直遍历完整个字典文件,因此需要我们自行定义中间的退出点;
- 而且结果输出也需要我们自行定义,否则默认显示所有尝试结果,这种输出不会提示哪些是成功的/失败的,需要通过返回状态码和页面长度判断。
Burp Suite
最后是直接使用Burp的爆破工具,这里主要记下一些使用技巧:
- 从返回页面中提取特定值(判断是否登陆成功):Option->Grep – Extract;
- 如要针对用户名和密码同时爆破,则需要选择“Cluster bomb”的攻击模式,然后添加变量,在Payloads选项卡中为每个变量设置payload。
过程上有点类似于patator,也是默认遍历整个字典而不会中途停下。
自写脚本
后面搞牛奶还给出了自定义的两种脚本工具,分别用Bash和Python编写,都非常值得学习(真好,小白我一不会bash二不熟request,学吐了)(本人优先学request)。
自写脚本的好处不用多说,高度定制,针对性强。
最后是总结:针对实际情况选工具才是上上策。
DVWA-暴力破解-对‘g0tmi1k’文章的学习笔记相关推荐
- 使用burp进行暴力破解 ——合天网安实验室学习笔记
实验链接 通过该实验掌握burp的配置方法和相关模块的使用方法,对一个虚拟网站使用burp进行暴力破解来使网站建设者从攻击者的角度去分析和避免问题,以此加强网站安全. 链接:http://www.he ...
- DVWA暴力破解high级别
DVWA 简介 DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者 ...
- vim编辑器的简单使用(参考别人文章的学习笔记)
vim编辑器的简单使用(参考别人文章的学习笔记) vim编辑器是linux下最常用的文本编辑器之一 vim的三种模式 命令模式:进入vim后即在命令模式下,或者在任意模式下按ESC键 输入模式:在命令 ...
- DVWA暴力破解LOW级别 爆破时间过长 字典
部署DVWA已就位,开启暴力破解实验,现将dvwa等级调位low 选择暴力破解模块,打开burp,配置浏览器代理,输入账号密码,单击login 打开burp,查看抓到的包,可以看到刚才输入的账户名和密 ...
- DVWA暴力破解(Brute Force)——全等级(Low,Medium,High,lmpossible)精讲
使用phpstudy搭建渗透测试靶场环境 目录 1.Low级别 2.mediun级别 3.high级别 4.impossible级别 1.Low级别 文件源代码: <?phpif( isset( ...
- Dvwa之SQL盲注全级别学习笔记
SQL盲注 盲注是SQL注入的一种,相比于常规的SQL注入,盲注一般不会返回数据库的数据信息或者语句提示.只会返回管理员设定的特定信息. SQL盲注-测试流程 同样的,和之前DVWA的普通SQL In ...
- 到底什么是 localhost、127.0.0.1、0.0.0.0 和 本机IP ?(参考多篇文章的学习笔记)
到底什么是 localhost.127.0.0.1.0.0.0.0 和 本机IP ? 平时配置项目环境及运行项目的过程中,会接触到 localhost.127.0.0.1.0.0.0.0 和 本机IP ...
- DVWA——暴力破解
low 1.首先打开dvwa,usename为admin,随便写一个密码123456,先不要点login. 2.然后打开bp,进行抓包拦截. 3.然后回到dvwa,点击login. 4.回到bp,将其 ...
- 2021年最新整理, C++ 学习资料,含C++ 11 / 14 / 17 / 20 / 23 新特性、入门教程、推荐书籍、优质文章、学习笔记、教学视频等
最新文章
- 台湾前十大科技公司拼不过三星(往后一点三星都不要买啦!)
- 大学毕业后,我将何去何从?
- python 1033 旧键盘打字 (20 分)
- 使用密钥登录CentOS系统(基于密钥的认证)
- 迁移性好、多用途,港中文提出特征分离的无监督人类三维姿态表征
- Android开发人员必备的10 个开发工具
- 设计模式之Flyweight模式(笔记)
- ReocketMq常用命令
- 几种常用的抽奖方案综述(草稿)
- verlay虚拟化技术_Overlay解决虚拟化难题 - 节点动态 - 海南师范大学信息网络与数据中心| Network Center HaiNan Normal University...
- NISP题库(八套模拟题)
- ubuntu 设置虚拟内存 解决内存不足
- 微信开发工具出现 [渲染层网络层错误]
- Android如何隐藏底部虚拟按键
- 手机测试相关基础知识
- 传统就没新意? 年货节“走马灯”刷新H5创意理念
- 【TypeScript】tsc : 无法加载文件 C:\Users\XXX\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。
- VSCode+Marp:用Markdown做幻灯片(进阶篇)-宋森安
- 不会PS图片怎么批量调色
- SQL同步主子表数据
热门文章
- MySQL count(1) count(*) 比较 详解
- [python学习] 专题九.Mysql数据库编程基础知识
- Swift之深入解析如何进行多重条件排序
- iOS之深入定制基于PLeakSniffer和MLeaksFinder的内存泄漏检测工具
- 2017年第八届蓝桥杯C/C++ A组国赛 —— 第一题:平方十位数
- 2017/National _C_C++_B/2/磁砖样式
- 练习2.13 不用库函数,写一个高效计算ln N的C函数
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1079:计算分数加减表达式的值
- 《信息学奥赛一本通》 高精度加法。输入两个正整数,求它们的和。
- Ubuntu18.04安装ROS Melodic(亲测有效)