前言
当初日学校内网的时候有很多后台,就想着能不能批量检测一下弱口令
但是学校的后台系统种类很多,asp aspx php jsp 等等
因为单个网站的爆破比较好整,直接上burp或者py脚本或者hydra
好像还没有听说过批量工具
想着找一找有没有现成的工具能测一测。
还真发现github上有一个
https://github.com/TideSec/web_pwd_common_crack
好像很厉害的样子
下载下来试了一下,然而结果并不如人意
误报率有百分之六十吧,可以说是非常不理想。
其实目前市面上各种爆破工具并不少
但是要么只能爆破某个指定的管理系统,要么就是不支持批量
所以自己就想着写一个万能网站批量爆破的脚本,并且在一周内进行了简单的实现。
现在博客建立起来了,想着是时候来记录一下。
工具简介
webcrack是一款web后台弱口令批量爆破、检测工具。
支持当前各大主流cms管理系统,如dz论坛,织梦,ecshop等。
在url.txt中放入后台地址即可进行自动化检测。
思路及过程
思路其实挺简单
提取表单 -> 放入数据 -> 发送数据 -> 判断返回内容
但是实现起来的难点主要有两个
1.如何从表单各种奇奇怪怪的参数跟token中准确提取用户名和密码这一栏
2.如何判断是否登录成功
在测试过程中发现原来世界上有那么多叼毛网站。。。
写的非常不规范。。。
想要兼容所有的情况实在很难。
只能采取多种判断策略以及一些折中的办法
尽可能考虑所有可能出现的情况。
问题一:如何准确提取账号密码
问题1的解决是靠大量测试后总结出来的关键字
从id或者class中提取键名与字典相对比,如果存在关键字即为要爆破的用户名或密码
问题二:如何判断是否登录成功
主要精力都放在解决这个问题上,因为不同后台的登录的情况实在是五花八门。
举个例子,有些是登录后给你重定向302到后台
有些是给你重定向到登录失败页面
有些是给你返回个登录成功,然后你要手动去点跳转后台
有些直接返回空数据包。。。
本菜鸡也不会什么机器学习什么深度学习模型。。。
想要通过一个办法是不可能一劳永逸的解决这个问题的。
经过大量的测试,最后使用以下三个办法大大减少了误报率
1. 判断用户名跟密码的键名是否存在在跳转后的页面中
2. error_length 动态检测
3. 关键字黑名单检测
这三个办法是我经过无数次测试才总结出来的经验。。。
经过测试,准确率已经达到了百分之八十。
更新日志
1.0版本
-
写出demo
-
减小误报率
-
增加随机UA头 随机X-Forwarded-For和 随机Client-IP
1.5 版本
-
可以通过域名生成动态字典
-
可以探测系统是否存在因为设计缺陷而造成的万能密码漏洞
-
代码结构优化,提高性能
2.0 版本
-
启动多进程,放弃辣鸡多线程
-
增加special_case,可以识别部分cms,并针对结果采用指定的识别方式
-
修复reset按钮带来的bug
TO DO
-
增加简单的验证码识别模块
-
考虑采用协程的方式优化性能
-
完善special_case
工具截图
截几张图证明一下我不是在瞎BB
image image image最后
这个项目真的是倾注了我很多的心血。
文章中写的简单,然而实际在测试脚本中由于世界上的各种傻屌网站实在是太多了。。。
各种小问题小bug。。。
每个版本自己都会手工调试成百上千次,直到达到稳定。
因为担心公开后网上的hc大佬跟脚本小子用脚本瞎鸡儿乱跑
所以暂时不准备向任何人公开源代码。
网友评论