前言:
最近忙着面试,发现基本每次面试都会问:“给你一个登录框,你会怎么测试?说说思路”。因此来总结一下。
1、测试准备
进入登陆页面,一般先用万能密码 admin' or 1=1 #
,测下输入框有没有注入(现在很少见了)。
如果没有,那就用 admin,123456 之类的测试下弱口令,不求运气爆棚一下猜到密码。主要是看下回显,看是否存在:账号锁定策略、不存在此用户名、密码不正确等信息,以便尝试遍历可能存在的用户名。
没验证码就上爆破工具,有验证码的话看看能不能绕过,实在不行手工测几个账号密码碰碰运气。
2、暴力破解
如果没有验证码,直接拿个好字典爆破就完事了。
2.1 密码爆破:
有时密码传输会使用 md5 或者 base64 之类的加密,这时除了自己写脚本外,可以使用 burpsuite 的 intruder 模块内容。
2.2 用户名爆破:
进行用户名爆破的依据是:页面对输入的账号密码进行的判断所回显的数据不一样,当输入错误的用户名提示账号不存在,输正确的用户名提示密码错误。我们可以通过这点来进行用户名的爆破,然后再对爆破得到的账户进行密码的爆破。
3、sql注入
用户名字段或密码字段存在sql注入,比较典型的是 万能密码 登录。
测试方式:登录数据传输多采用post,这时候我们用bp改包找寻注入点或者丢 sqlmap 进行探测即可。
3、XSS+CSRF
经测试发现用户登陆处存在XSS,但只是Self-XSS,即自己输入xss脚本,输出仅自己看到,仅xss到自己。先别灰心,再看看这个登录框是否存在CSRF即可。(偷个图)
构造CSRF POC,将XSS的payload放到用户名这里
测试后,发现成功弹窗。
4、扫描
4.1 目录扫描:
目录扫描是一个存在惊喜的地方,说不定能扫描到后台未授权访问的链接、备份文件、编辑器、敏感信息等。目录扫描工具推荐使用 dirsearch 或 御剑 。
4.2 端口扫描:
可以使用 nmap 获取网站的端口信息,这些端口信息中常常可以给予我们非常大的帮助,例如开放了3389、445端口,或者一些其它敏感端口。根据这些端口就能尝试进一步的测试。
4.3 JS文件扫描:
JS文件我们在渗透测试中也是经常用到的东西,有时候我们可以在js文件中找到我们平时看不到的东西,例如重置密码的js,发送短信的js,都是有可能未授权可访问的。这里推荐一款工具,很强大:JSFinder 下载链接
这是一款在网站的js文件中提取URL,子域名的工具,用在后台登陆界面抓取一些敏感的js文件效果也很不错。
5、框架漏洞
寻找网站的CMS漏洞如 DedeCMS(织梦)、骑士CMS、MetInfoCMS、通达OA、EmpireCMS(帝国),根据CMS版本去查找对应的漏洞进行复现。
根据网页框架如 Thinkphp、Struts2、Apache Shiro 等进行测试。
对中间件漏洞如 Apache、Tomcat、weblogic、IIS等漏洞进行测试。
6、逻辑漏洞
逻辑漏洞是由于一些程序员未考虑到或者为贪图省事,而造成的逻辑上的漏洞,一般 waf 不会拦截,因此和弱口令漏洞都是现在相对容易挖掘的一类漏洞。
6.1 任意用户注册:
如果登陆框附近存在用户注册功能时,可以进行测试。
如果注册用户不需验证码认证即可注册成功的情况下,可使用工具发包,恶意批量注册用户。
如果存在验证码,则测试是否存在下面的问题:
失效的身份认证:
有时验证码参数没有设置必须,可以直接抓包,把验证码这一项的参数给删了。
验证码可暴破:
当手机验证码无失效时间,并且为4位数,可以直接爆破手机验证码,使用任意手机号码进行注册。
禁用验证码:
有的验证码使用本地JS验证,可以在本地禁用JS。
6.2 任意密码重置:
修改密码时使用其他人的手机号,可抓包更改成自己的手机号。自己手机收到验证信息并输入,可更改他人密码成功。
或下面这种情况:
此时客户端会发一个验证码包,我们这是随意输入验证码,发包,返回包。
返回包错误的回显为 {“status”:0}
将返回包的东西换成 {“status”:1}
即可重置密码
7、短信轰炸
存在用户注册、用户找回密码等功能时,尝试是否存在短信炸弹
单个用户短信轰炸:
指定单个用户,然后重放发送短信的HTTP请求。
BurpSuite中:不修改参数,直接重放数据包,对于短信炸弹的测试非常实用。
批量用户短信轰炸:
可以遍历手机号的后几位,不过一般没啥用。
参考文献:
https://www.anquanke.com/post/id/185426
https://xz.aliyun.com/t/6282
https://juejin.cn/post/6882659105090043911
https://www.freebuf.com/articles/web/174408.html
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com