常见的验证功能
账号密码验证、验证码验证、JavaScript数据验证、服务端数据验证等。
登录验证码和手机验证码
《利用漏洞中验证码绕过的小技巧-Freebuf》,2017-12
文章地址https://www.freebuf.com/column/156519.html
《【渗透技巧】手机验证码常见漏洞总结-腾讯云》,2019-07
文章地址https://cloud.tencent.com/developer/article/1459233
JS不完全验证导致的未授权访问
可能存在问题的系统:
登陆页面特征:用户可枚举-提示“无效用户名!”
今天聚焦JS文件追踪,面对登陆框常见的思路是:
1.暴力破解
2.抓登陆的POST包尝试注入
作者提供了一种思路:跟踪JS敏感文件。
查看前端源码,看到 /js/custom/login.js
对于JS源码中的Unicode编码,使用站长工具解码查看
验证三个变量,
a -> loginId (用户名)
b -> password (密码)
c -> verifycode (验证码)
两个接口,
/frameword/login_login.do
/frameword/login_toManage.do
访问第二处接口,闪了一下后台框架,才跳转到空白。为何能看到后台?
查看JS代码,发现只对loginId进行了验证:
测试过程
用户名admin,密码任意,点击登陆提示“密码错误”。但此时直接去访问第二处接口,直接得到了admin用户的所有权限。
后续普遍流程
文件上传 -> Getshell
疑问
后台闪了一下才跳转到空白页面,是哪些原因导致的?
参考
《Js文件追踪到未授权访问》, 2021年01月
文章地址 https://cnhack.cn/Security/122.html