
【Web爆破攻击实战】Web前端黑客技术解密10.1 暴力破解简介在很多情况下黑客在找不到其他途径进入 Web 管理后台时就会采用暴力破解的方式来破解后台管理员的账号和密码。所谓暴力破解就是使用“穷举法”对用户名和密码进行逐个猜解直至猜出来为止。虽然暴力破解显得不是很有技术含量但确实最有效的一种方式。理论上来说只要时间足够终究会把用户名和密码猜解出来。为了提高暴力破解的效率一般在破解时都会使用字典。所谓字典就是黑客会把自己认为的有可能是正确的密码以及曾经碰到过的密码写到一个文档里去这个文档就是字典。在进行暴力破解时会按照字典的顺序来进行猜解这样会大大提高破解的效率。暴力破解可以分别分为破解用户名和破解密码。在对攻击目标一无所知时往往不仅要猜解出对方的密码还需要先猜解出对方的用户名这时破解难度和需要的时间会以大大提升。但如果已经知道了对方的用户名极有可能是默认的用户名只破解密码难度就要小很多。对于 Web 暴力破解来说由于需要构造 HTTP 请求包所以必须使用专门的工具最常见的就是著名的 Burpsuite。Burpsuite 也有专门的爆破模块。10.2 Low 级别 Web 爆破攻击实战10.2.1 暴力破解账户密码设置安全级别为Low点击Brute Force按钮进行暴力破解模块发现是个用户登录的页面随意输入用户名和密码发现提示用户名或密码错误同时发现输入的用户名和密码携带在了 URL 中所以确认该页面提交方式为 GET如图 10-1图 10-12.我们已经得知 DVWA 存在一个默认账户用户名和密码为admin/password使用该账户登录发现页面提示Welcome to the passowrd protected area admin来说明登录成功如图 10-2图 10-23.我们先自己构建一个字典文件包含正确的密码信息password如图 10-3图 10-34.设置好 Burpsuite 和浏览器的代理先随便输入一个用户名和密码用 Burpsuite 抓包如图 10-4图 10-4*5.*点击Action按钮选择Send to Intruder把数据包信息发送到暴力破解模块如图 10-5图 10-56.点击Intruder模块选择Positions标签可以看到发送过来的数据包信息如图 10-6图 10-67.点击Clear §按钮清除掉所有变量如图 10-7图 10-78.我们这里为了节省时间假定已经得知了用户名为admin只猜解密码所以选中之前随意输入的密码点击Add §把密码部分设置为要猜解的变量如图 10-8图 10-89.切换到Payloads标签在Payload Option处点击Load按钮选择之前构建的字典文件如图 10-9图 10-910.下拉到Grep Match处点击Clear清除掉现有猜解成功匹配字符然后添加之前我们看到的 DVWA 中登录成功的提示字符Welcome to the passowrd然后点击Add。这样等到猜解成功后就会自动提示不用我们自己去比对回包长度和响应状态码来判断哪个是正确的密码如图 10-11图 10-1111.点击Start Attack按钮开始爆破可以发现当猜解到password时回包长度与其他都不一致而且打钩提示该密码是正确的如图 10-12图 10-1210.2.2 SQL 注入破解账户密码1.尝试使用 SQL 注入的方式登录用户名输入admin’#密码留空登录发现可以直接进入如图 10-13图 10-14图 10-13图 10-14该方式的原理是猜测后台验证用户名和密码的 SQL 语句为select * from users where user$_GET[username] and password$_GET[password]我们提交admin#首先通过单引号闭合原语法中的单引号再用 # 注释掉后面的语句所以 SQL 注入之后的语句就变成了select * from users where useradmin# and password由于 # 后面被注释了不会提交给服务器执行所以只要 users 表中存在 admin 用户无论密码是否正确都可以通过验证。如果连用户名都不知道还可以通过admin or 11来构造一个恒真表达式进行绕过。10.3 Medium 级别 Web 爆破攻击实战1.安全级别设置为Medium进入 Web 爆破攻击页面查看页面源码发现对提交的用户名和密码内容使用了mysqli_real_escape_string函数对特殊字符进行转义从而防止了以 SQL 注入的方式登录如图 10-15。同时通过sleep(2)使登录失败后让页面延迟 2 秒响应对暴力破解起到了一定的防御作用如图 10-16图 10-15图 10-162.根据上述情况分析防 SQL 注入并不能影响我们进行暴力破解而登录失败的 2 秒延迟对暴力破解的影响也是微乎其微所以我们这里直接使用Low级别的方式使用 Burpsuite 进行爆破即可。这里只展示最终结果如图 10-17图 10-1710.4 High 级别 Web 爆破攻击实战1.安全级别设置为High进入 Web 爆破攻击页面查看页面源码发现除了保留Medium级别的防护措施外还加入了随机 Token 检查机制如图 10-18。服务器每次返回登录页面都会给客户端产生一个随机的 Token 值客户端登录时需要携带该 Token服务器如果检查发现用户携带的 Token 和它产生的不一样就会判断为攻击行为拒绝登录。图 10-182.在这种情况下Burpsuite 就不再有效需要使用脚本来抓取服务器产生的随机 Token 值然后构造在 HTTP 请求包中才能进行暴力破解。这里我们使用 Python 脚本来实现该功能。脚本内容如下import requests from bs4 import BeautifulSoup import sys import re get_user_token re.compile(r(?value).*?(?)) def get_token(url): reload(sys) sys.setdefaultencoding(utf-8) header { # 构造 HTTP 头部 Host: 192.168.75.100, # Web 服务器地址 Accept: text/html,application/xhtmlxml,application/xml;q0.9,*/*;q0.8, Accept-Encoding: gzip, deflate, Accept-Language: en-US,en;q0.5, Connection: keep-alive, Cookie: securityhigh; PHPSESSIDjppnjuuif7gt6ss640goammjj5, # 当前浏览器的 Cookie 值 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 } rep requests.get(url, headersheader) rep.encoding utf-8 soup BeautifulSoup(rep.text, lxml) print len(rep.text) input_list soup.find(input, typehidden) user_token get_user_token.search(str(input_list)).group() return user_token if __name__ __main__: user_token get_token(http://192.168.75.100/dvwa/vulnerabilities/brute/) # 取 Token 的页面 URL with open(pass.txt) as f: # 调字典文件 i 0 for item in f.readlines(): pos item.rfind(,) username admin # 要猜解的用户名也可用字典来猜解 password item[pos 1:] requrl http://192.168.75.100/dvwa/vulnerabilities/brute/ ?username username.strip() password password.strip() LoginLoginuser_token user_token # 要爆破的 URL 完整格式 i 1 print i, username.strip(), password.strip(), user_token get_token(requrl)3.由于该脚本使用 Python2.7 版本编写所以我们使用命令python2.7 brute.py执行脚本发现其它密码返回的包长度都是 4469只有正确的密码password回包长度是4507说明成功猜解出了密码如图 10-18图 10-1810.5 Impossible 级别 Web 爆破攻击查看Impossible级别的页面源码发现加入了登录失败 3 次就锁定账户 15 分钟的机制如图 10-19使爆破基本无法进行另外还使用了 PDO 技术来防止通过 SQL 注入来登录如图 10-19。另外对于防暴力破解加入验证码机制也是常用的较为有效的方法级别 Web 爆破攻击查看Impossible级别的页面源码发现加入了登录失败 3 次就锁定账户 15 分钟的机制如图 10-19使爆破基本无法进行另外还使用了 PDO 技术来防止通过 SQL 注入来登录如图 10-19。像目前比较火热的开发岗位实属网络安全毕竟国家网络安全法也出台了网络安全等级保护2.0等合规要求也出来了。网络安全对于大部分政企单位来说已经从[可选项]变成了[必选项]。在以前很多政企单位在进行 IT 部门及岗位划分时只有研发和运维部门安全人员直接归属到基础运维部而现在越来越多单位为了满足国家安全法律法规的要求必须成立独立的网络安全部门拉拢各方安全人才、组建 SRC安全响应中心为自己的产品、应用、数据保卫护航。根据国家发布的《网络安全人才实战能力白皮书》数据显示目前中国网络安全人才供应严重匮乏每年高校安全专业培养人才仅有3万余人而网络安全岗位缺口在2027年将达327万缺口高达95%。了解网络安全首先要搞清楚下面这些前提网络安全到底包含哪些技术是否需要会编程网络安全行业有哪些职业方向“我”该如何选择网络安全的职业发展和成长路线是什么如果你是准备学习网络安全黑客或者正在学习下面这些你应该能用得上①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】