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)

命令解析:

  1. curl -s -c 文件名 ‘目标网站’

保存目标网站的cookie到文件中

结果是回显登录的页面的html源码,其中有个隐藏的input标签是user_token,保存着此次会话用户的token(由于是隐藏的,所以即使使用浏览器也不能直接看出来,需要点开控制台查看源码,这就体现出了一个使用命令行的优势,以及启示我们要关注网页源码)。

同时保存了网站的cookie到本地。

  1. awk -F ‘value=’ ‘/user_token/ {print $2}’

对上一步的回显结果进行逐行查找,查找 “user_token“所在的行,并以”value=“为分隔符对该行进行分割,输出分割后的第二个值

  1. cut -d “’” -f2


对上一步的回显结果进行字段提取

  1. 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’文章的学习笔记相关推荐

  1. 使用burp进行暴力破解 ——合天网安实验室学习笔记

    实验链接 通过该实验掌握burp的配置方法和相关模块的使用方法,对一个虚拟网站使用burp进行暴力破解来使网站建设者从攻击者的角度去分析和避免问题,以此加强网站安全. 链接:http://www.he ...

  2. DVWA暴力破解high级别

    DVWA 简介 DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者 ...

  3. vim编辑器的简单使用(参考别人文章的学习笔记)

    vim编辑器的简单使用(参考别人文章的学习笔记) vim编辑器是linux下最常用的文本编辑器之一 vim的三种模式 命令模式:进入vim后即在命令模式下,或者在任意模式下按ESC键 输入模式:在命令 ...

  4. DVWA暴力破解LOW级别 爆破时间过长 字典

    部署DVWA已就位,开启暴力破解实验,现将dvwa等级调位low 选择暴力破解模块,打开burp,配置浏览器代理,输入账号密码,单击login 打开burp,查看抓到的包,可以看到刚才输入的账户名和密 ...

  5. DVWA暴力破解(Brute Force)——全等级(Low,Medium,High,lmpossible)精讲

    使用phpstudy搭建渗透测试靶场环境 目录 1.Low级别 2.mediun级别 3.high级别 4.impossible级别 1.Low级别 文件源代码: <?phpif( isset( ...

  6. Dvwa之SQL盲注全级别学习笔记

    SQL盲注 盲注是SQL注入的一种,相比于常规的SQL注入,盲注一般不会返回数据库的数据信息或者语句提示.只会返回管理员设定的特定信息. SQL盲注-测试流程 同样的,和之前DVWA的普通SQL In ...

  7. 到底什么是 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 ...

  8. DVWA——暴力破解

    low 1.首先打开dvwa,usename为admin,随便写一个密码123456,先不要点login. 2.然后打开bp,进行抓包拦截. 3.然后回到dvwa,点击login. 4.回到bp,将其 ...

  9. 2021年最新整理, C++ 学习资料,含C++ 11 / 14 / 17 / 20 / 23 新特性、入门教程、推荐书籍、优质文章、学习笔记、教学视频等

最新文章

  1. 台湾前十大科技公司拼不过三星(往后一点三星都不要买啦!)
  2. 大学毕业后,我将何去何从?
  3. python 1033 旧键盘打字 (20 分)
  4. 使用密钥登录CentOS系统(基于密钥的认证)
  5. 迁移性好、多用途,港中文提出特征分离的无监督人类三维姿态表征
  6. Android开发人员必备的10 个开发工具
  7. 设计模式之Flyweight模式(笔记)
  8. ReocketMq常用命令
  9. 几种常用的抽奖方案综述(草稿)
  10. verlay虚拟化技术_Overlay解决虚拟化难题 - 节点动态 - 海南师范大学信息网络与数据中心| Network Center HaiNan Normal University...
  11. NISP题库(八套模拟题)
  12. ubuntu 设置虚拟内存 解决内存不足
  13. 微信开发工具出现 [渲染层网络层错误]
  14. Android如何隐藏底部虚拟按键
  15. 手机测试相关基础知识
  16. 传统就没新意? 年货节“走马灯”刷新H5创意理念
  17. 【TypeScript】tsc : 无法加载文件 C:\Users\XXX\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。
  18. VSCode+Marp:用Markdown做幻灯片(进阶篇)-宋森安
  19. 不会PS图片怎么批量调色
  20. SQL同步主子表数据

热门文章

  1. MySQL count(1) count(*) 比较 详解
  2. [python学习] 专题九.Mysql数据库编程基础知识
  3. Swift之深入解析如何进行多重条件排序
  4. iOS之深入定制基于PLeakSniffer和MLeaksFinder的内存泄漏检测工具
  5. 2017年第八届蓝桥杯C/C++ A组国赛 —— 第一题:平方十位数
  6. 2017/National _C_C++_B/2/磁砖样式
  7. 练习2.13 不用库函数,写一个高效计算ln N的C函数
  8. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1079:计算分数加减表达式的值
  9. 《信息学奥赛一本通》 高精度加法。输入两个正整数,求它们的和。
  10. Ubuntu18.04安装ROS Melodic(亲测有效)