前言
在项目中经常会遇到只有一个登录页面的网站,没有账号密码,那应该如何下手呢?整理一下我的思路,供大家参考。
0x00 弱口令
网站登录框怎么测?当然是先来一波弱口令,admin、test、admin123、admin888、123456、111111这些都是出现率比较高的,即使是部委级单位这种安全防护超高的系统也会存在弱口令的问题,弱口令绝对是yyds。
0x01 sql注入
登录框尝试万能密码 1' or 1=1 –、"or"="a'='a 等等,运气好的话就直接登录了,也可以保存登录的包用sqlmap跑一遍,简单有效。
这也是我挖到的人生中第一个漏洞。
用户名输入1’ or 1=1 –q,密码留空
登录成功
0x02 暴力破解
暴破常用用户名密码,注意观察账号正确和错误时的返回消息。如果返回消息不同,那就是存在用户名枚举漏洞了。掏出我们的神器burpsuite先暴破一波用户名,再用拿到的正确用户名暴力破解密码就很省时间了,需要注意的是有些网站页面显示的。
暴破得到admin的密码为q1w2e3r4
0x03 验证码绕过
如果登录有验证码怎么办?一个字:绕。
1.验证码字段删除或置空;
2.删除cookie;
3.万能验证码:1111、0000、8888等等;
4.burp抓包但不放包,将包发送到Repeater重放几次看看验证码能不能重复使用,大多数时候burp不用一直抓包也是可以绕过的。
5.如果有短信验证码功能,可以尝试暴力破解短信验证码,达到登录、注册或找回密码等目的,邮件验证码同理。一般情况下4位数的验证码在5分钟内跑完是没问题的。
还有很多验证码绕过的方法,这里不一一列举,找时间专门出一篇验证码绕过方法的分享文章吧。
0x04 修改响应码
Burp拦截登录的响应包进行修改,将响应码修改后可能会越权登录被测系统。一般情况下正确的响应码有:0、1、200、true、success。也可以在有正确账号密码的情况下进行登录,直接查看正确的响应包是什么构造,再重新用错误账号进行登录修改响应码。不仅是登录功能,找回密码、注册账号等存在逻辑验证的点都有可能存在此漏洞。
0x05 目录扫描
用工具扫描目录,这里推荐使用dirsearch。可能会发现网站备份文件、后台地址等等,往往会有意外惊喜,写这篇文章前一天就用dirsearch发现了一个phpmyadmin管理界面,之后通过万能密码进到了数据库,话不多说,展示:
使用用户名’localhost'@'@”密码为空登录成功
0x06 找回密码功能
此功能点可能存在的漏洞有任意用户密码重置、短信/邮件轰炸、验证码爆破、验证码绕过、验证码回显、sql注入,逻辑漏洞较多。
分享一个edu的任意用户密码重置漏洞:
1.填写未注册的手机号获取验证码,修改密码
2.burp跑一遍常用测试手机号码,成功修改了账号13333333333的密码
3.使用新密码qwe123QWE!@#登录13333333333账号成功
0x07 注册功能
此功能点可能存在的漏洞有任意用户注册等等,和找回密码功能中可能存在的漏洞高度相似。
0x08 历史漏洞
Shiro反序列化、Struts2系列漏洞、历史爆出的cms漏洞、log4j、中间件漏洞……。
0x09 端口扫描
Nmap全端口扫描:nmap -sS -A -p 1-65535 ip,扫到ssh、ftp、telnet、数据库等等端口可以尝试进一步利用。
0x10 JS信息泄露
F12找一下JS文件,重点查看js中的测试账号、api接口,往往在js文件中可以找到未授权页面,推荐使用URLFinder工具。
总结
虽然只是一个小小的登录框,但是要测的地方还是很多的,在测试时一定要细心,不然可能错过很多漏洞哟。
本文所展示漏洞均已提交漏洞平台并修复。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)