文章介绍了作者如何利用WebCrack工具进行弱口令检测,并对比了web_pwd_common_crack工具的效果。文章还详细描述了作者自用小脚本的设计思路和实现方法,包括匹配form表单、提取参数名、组合数据包发送、判断登录是否成功等步骤,并提到了误报情况的处理。最后,文章介绍了信安之路的三个内部工具。
作者使用WebCrack工具进行弱口令检测,该工具能检测弱口令漏洞和万能密码漏洞。检测思路是通过匹配页面中的form表单,提取登录所需参数名,组合数据包发送至登录接口,根据返回内容判断是否存在漏洞。
文章提到了与web_pwd_common_crack工具的对比结果,webcrack相比web_pwd_common_crack多探测出一些漏洞,但也有误报情况。
作者基于两款工具的设计思路,完成了一个自用小脚本,用于检测弱口令和SQL注入。该脚本通过匹配form表单、提取参数名、组合数据包发送、判断登录是否成功等步骤实现,但存在误报情况。
文章最后介绍了信安之路的三个内部工具:成长平台、攻防技术知识库和历史漏洞扫描器,分别用于学习信息安全攻防技术、汇聚安全攻防体系实战文档和快速发现已知威胁。
为了实现登录口的自动弱口令尝试,在 github 找了一圈发现已经有小伙伴做了一些研究,项目地址:
https://github.com/yzddmr6/WebCrack
为此,作者还专门写了一个博客来介绍他的实现思路,地址:
https://yzddmr6.com/posts/webcrack-release/
整个检测思路如图:
该工具不仅能检测弱口令漏洞,还能检测万能密码,也就是登录口存在 SQL 注入的漏洞,整体效果,作者的测试结果与 TideSec 团队开发的 web_pwd_common_crac 工具做了对比:
https://github.com/TideSec/web_pwd_common_crac
1、web_pwd_common_crack 跑出来 11 个,其中7个可以登录。4个是逻辑上的误报,跟waf拦截后的误报。
2、webcrack 跑出来 19 个,其中 16 个可以登录。2 个是 ecshop 的误报,1 个是小众 cms 逻辑的误报。
webcrack 比 web_pwd_common_crack 多探测出来的 9 个中,有 5 个是万能密码漏洞,2 个是发现的web_pwd_common_crack 的漏报,2 个是动态字典探测出来的弱口令。
不过这个工具,主要用来测试大量登录系统,属于通用类型的检测,核心思路就是通过匹配页面中的 from 表单,提取登录所需参数名,然后组合数据包发送到登录接口,根据返回内容来判断是否存在漏洞。
对我而言,主要目标是检测是否存在 admin、123456 这类弱口令,SQL 注入部分,可以使用专业的扫描器来实现,为此,基于以上两款工具的设计的思路,完成了一个自用小脚本,效果还不错,但误报不可避免,程序员的设计思路并非统一的,会有各种各样的情况存在。
核心就以下几点:
1、从页面中匹配 form 表单中的 action 地址,也就是验证账号密码的接口地址,这块直接使用正则表达式来完成,也很简单:
action_path = re.findall("action\s*=\s*\"([^\"]*)\"", form_content, re.I)[0]
2、接下来从 form 表单中提取输入的参数名,也就是 input 部分的 name,同样使用正则
key = re.findall("name=\"([^\"]+)\"", input_element, re.I)[0]
其中如果 type 为 password 那么说明该字段是需要提供的密码部分
3、接下来是组合数据包发送,然后判断登录是否成功,通过使用一个基准账号密码来做第一次尝试,获取响应的 header 和 body 内容,然后再使用我们想要测试的账号密码来获取 header 和 body 内容,最后跟基准请求做比对,从而判断是否登录成功,我的判断方式主要有以下步骤:
比较两次的响应的状态码是否一致,第一次是失败的尝试,如果后面的尝试有不同,则认为后面尝试的账号密码是正确的
比较两次返回的响应内容长度是否一致,如果一致,则认为后面尝试的密码是无效的
比较两次请求是否有跳转,判断跳转后的地址是否一致
比较两次请求响应内容中的关键词,比如成功的关键词,失败的关键词,如果判断验证码则跳过
经过以上操作之后,对于发现的弱口令结果,还是有一半的误报,不过还可以接受啦,找一个案例测试如图:
测试登录如图:
脚本我就放到信安之路知识星球了,给大家做个参考,后续可以基于此,借助 ddddocr 的能力,自动识别验证码,让弱口令检测更加智能。
信安之路三大内部工具介绍(成为VIP即可):
1、信安之路成长平台,通过将信息安全攻防技术分解成开放性任务,由浅入深学习安全攻防,同时锻炼自学能力,还有大量资料供学习参考,低成本入门信息安全必要之选。
2、信安之路攻防技术知识库,汇聚安全攻防技术体系、大量实战技术文档,海量历史漏洞细节,让知识武装头脑的同时,提高学习工作效率。
3、信安之路历史漏洞扫描器,随时随地,通过云端下载 POC,就算小白也能一键检测历史漏洞,快速发现已知威胁。