Web爆破攻击实战

简介
在很多情况下,黑客在找不到其他途径进入 Web 管理后台时,就会采用暴力破解的方式来破解后台管理员的账号和密码。所谓暴力破解,就是使用“穷举法”,对用户名和密码进行逐个猜解,直至猜出来为止。虽然暴力破解显得不是很有技术含量,但确实最有效的一种方式。理论上来说,只要时间足够,终究会把用户名和密码猜解出来。
为了提高暴力破解的效率,一般在破解时,都会使用字典。所谓字典,就是黑客会把自己认为的有可能是正确的密码,以及曾经碰到过的密码,写到一个文档里去,这个文档就是字典。在进行暴力破解时,会按照字典的顺序来进行猜解,这样会大大提高破解的效率。
暴力破解可以分别分为破解用户名和破解密码。在对攻击目标一无所知时,往往不仅要猜解出对方的密码,还需要先猜解出对方的用户名,这时破解难度和需要的时间会以大大提升。但如果已经知道了对方的用户名(极有可能是默认的用户名),只破解密码,难度就要小很多。
对于 Web 暴力破解来说,由于需要构造 HTTP 请求包,所以必须使用专门的工具,最常见的就是著名的 Burpsuite。Burpsuite 也有专门的爆破模块。
Low级别Web爆破攻击实战
暴力破解账户密码
I.设置安全级别为Low,点击Brute Force按钮,进行暴力破解模块,发现是个用户登录的页面,随意输入用户名和密码,发现提示用户名或密码错误;同时发现输入的用户名和密码携带在了URL中,所以确认该页面提交方式为GET。
II.已知DVWA存在一个默认账户,用户名和密码为admin/password,使用该账户登录,发现页面提示 Welcome to the passowrd protected area admin,来说明登录成功。
III.构建一个字典文件,其中包含正确的密码信息password。
IV.设置Burpsuite和浏览器代理,随便输入一个用户名密码,用Burpsuite抓包。
01.设置浏览器代理,如图1-1

02.启动BP,导入证书如图2-1、2-2
图2-1
图2-2
03.随便输入一个用户名密码,用Burpsuite抓包如图3-1
图3-1
III.点击 Action 按钮,选择 Send to Intruder,把数据包信息发送到暴力破解模块。
IV.点击 Intruder 模块,选择 Positions 标签,可以看到发送过来的数据包信息,
V.点击 Clear § 按钮清除掉所有变量
VI.我们这里为了节省时间,假定已经得知了用户名为 admin,只猜解密码,所以选中之前随意输入的密码,点击 Add §,把密码部分设置为要猜解的变量,
VII.切换到 Payloads 标签,在 Payload Option 处,点击 Load 按钮,选择之前构建的字典文件
VIII.点击 Start Attack 按钮,开始爆破,可以发现,当猜解到 password 时,回包长度与其他都不一致,而且打钩提示该密码是正确的
SQL 注入破解账户密码
I.尝试使用 SQL 注入的方式登录,用户名输入 admin’# ,密码留空登录,发现可以直接进入,如图 3-1,图 3-2
图3-1
图3-2
该方式的原理是,猜测后台验证用户名和密码的 SQL 语句为
select * from users where user='$_GET['username']' and password='$_GET['password']',我们提交admin'#,首先通过单引号闭合原语法中的单引号,再用 # 注释掉后面的语句,所以 SQL 注入之后的语句就变成了select * from users where user='admin'#' and password='',由于 # 后面被注释了,不会提交给服务器执行,所以只要 users 表中存在 admin 用户,无论密码是否正确,都可以通过验证。如果连用户名都不知道,还可以通过admin' or '1'='1来构造一个恒真表达式进行绕过。
Medium 级别 Web 爆破攻击实战
I.安全级别设置为 Medium,进入 Web 爆破攻击页面,查看页面源码,发现对提交的用户名和密码内容使用了 mysqli_real_escape_string 函数,对特殊字符进行转义,从而防止了以 SQL 注入的方式登录,如图 4-1。同时,通过 sleep(2),使登录失败后让页面延迟 2 秒响应,对暴力破解起到了一定的防御作用,如图 4-2
图4-1
图4-2
II.根据上述情况分析,防 SQL 注入并不能影响我们进行暴力破解,而登录失败的 2 秒延迟对暴力破解的影响也是微乎其微,所以我们这里直接使用 Low 级别的方式使用 Burpsuite 进行爆破即可。这里只展示最终结果,如图 4-3
图4-3
【转载文章】
【1】邓大佬-|在线文档库












