登录页面的渗透测试思路

cc1aaac2024-02-29文章来源:SecHub网络安全社区


登陆页面的渗透测试思路

1. 弱口令

1.1 暴力破解

用户名枚举:用户名错误和正确时,前端回显的报错信息不同,如下图所示。

社工字典:通过搜集目标的信息,通过社工字典工具加工后的字典,如:cupp

1)无验证码

​ 无验证码是最方便的情况,想必都会

2)图像验证码绕过

验证码时间性有效

​ 当输入用户名、密码、验证码后,抓取到的数据包,可能后端校验成功一次图片验证码后,有效期是一分钟,这一分钟内可以使用这个验证码进行爆破

验证码前端验证

​ 前端图形验证码验证,如下图所示,验证码并没有携带在请求包中(还有一种情况是,验证码的验证在另一个请求包中,跟登录验证是不同的接口),可以尝试爆破

验证码为空绕过

​ 当我们遇到请求包中携带验证码的时候 code=123123&tel=1588888888&varcode=hsgn,可以尝试将验证码的值删除 code=123123&tel=1588888888&varcode=

删除验证码参数绕过

​ 还可以尝试将验证码删除 code=123123&tel=1588888888

万能验证码

​ 有的时候开发为了省事,使用万能验证码,比如:0000、9999、1234等

3)图像验证码识别

​ codex…

1.2 默认密码

cms 、OA、防火墙设备、网关设备、中间件

​ 遇到通用的框架,可以进行尝试,默认密码可以从百度自行查找,重点是需要能认出站点用的什么cms,可以去搜在线指纹识别。

1.3 JS前端加密

md5 base64

​ 如果遇到一些简单加密,可以使用burp自带的功能,进行加密爆破,md5可以使用在线加密平台,批量加密,然后在使用burp进行爆破

AES DES RSA -----> 找key -------> BurpCrypto插件

​ 如果前端存在,key泄露,可以使用burpcrypto插件,选择好模式、key、IV以后点击Add processor,然后会弹出来一个对话框,输入一个名称即可,

接下来在需要加密的地方选择刚才创建好的processor你可加密成功,左下角为加密成功的示样

2. SQL注入

2.1 万能密码

​ 在实际环境中遇到的情况也不多,使用sqli-labs进行演示,通过sql语句绕过密码,实现代码中SQL语句永真的效果,可以在百度搜集一个万能密码字典,遇到站点看上去比较老旧可以尝试一下,

2.2 SQL注入

​ POST型sql注入,直接用工具,

3. XSS

​ 页面有回显输入的内容,就可以测试xss

4.端口扫描/目录扫描/JS扫描

nmap、御剑

​ 常规的端口扫描,可以发现一些敏感端口(ssh、ftp、telnet、3306、3389等等),对敏感端口进行爆破,还可能发现一些旁站的端口。

dirsearch

​ 可能会发现未授权或者意想不到的路径,后台管理页面等等

jsfinder

​ 通过对js文件进行扫描,去提取其中的路径以及敏感文件可能会发现未授权或者意想不到的路径,后台管理页面等等

5.框架漏洞

CMS漏洞

​ 各种CMS漏洞,去开源的漏洞平台,漏洞库可以查看

OA漏洞

​ 大部分常见的OA漏洞都能搜得到,工具也很多,遇到什么就去搜索什么

Nday

6. 逻辑漏洞

6.1 短信轰炸

​ 当遇到发送短信的情况都可以进行测试。发送一个短信后,在重放五次或者十次以上,如果数据包返回都是相同的,大概率存在短信轰炸


6.2 短信验证码可爆破

​ 当用自己的手机发送一个短信后,收到的验证码是四位的,就可以尝试进行爆破,

6.3 验证码在返回包中回显

​ 非常简单,直接看图

1685284456192.png

6.4 任意用户注册

​ 注册一个账号后,重放请求包,查看响应包的内容,如果提示账号重复,就换一个账号进行尝试,直到能够响应success。

​ 如果遇到注册页面有验证码的情况,需要进行验证码的绕过

​ 在下图中,站点只验证了email一个参数,所以对email参数进行爆破即可

6.5 登录绕过

1)修改返回包数据,任意用户登录

​ 登录页面抓取响应包后,可以修改false为true,0改为1,code 400 改成200 等等,总之就是修改返回包为登录成功时的返回包即可绕过

2)手机号与短信验证码未验证绑定

​ 举一个案例:输入自己的手机号去获取短信验证码,输入短信验证码后,将手机号改成别人的,仍然能够登录成功

1685284557061.png

6.6 任意密码重置

​ 对密码重置页面进行绕过,下图有三个步骤,第一步骤绕过的方法可以是手机号与短信验证码未验证绑定的情况,也可以进行短信验证码爆破,还可以替换返回包,绕过成功后,第二个步骤如果做的比较好的话,也需要进行相同的手段,进行绕过,大部分的绕过可能不是真实的,可以进行多次尝试后,进行登录实验。

6.7 未授权访问

Nday 未授权

​ 常见的swagger UI未授权、Durid未授权等等,

业务逻辑未授权

​ 假设一个登录页的路径为/login,登录成功后跳转到/home,我们可以直接访问登录后的页面/home,即可绕过登录,当然只要是登录后的页面都可以尝试,这时,就可以将jsfind中找出来的路径,放到burp中进行爆破,GET方法和POST方法都要进行尝试,有意想不到的结