起因
前段时间参加了一场政务hw,各种waf基本上告别目录扫描,sql注入,暴力破解这些行为,主要采取的快速打点方式有弱口令,文件上传,反序列化及各种逻辑漏洞。这次要说的是期间遇见的一个差点失之交臂的逻辑漏洞,也提醒各位师傅们细心点,不要犯同样的错误。
经过
http://xx.xx.xx.xx:8000/ 开局一个登录框
拿到登录框(除去各种cms,框架等)我的正常思路是:弱口令>sql注入>修改响应包>目录扫描>js>旁站>github,google查泄露>fofa特征批量测>社工收集...
弱口令>个人习惯先试试弱口令再搜一下js看看密码规则在选择是否爆破,毕竟"正经人"不会绕过前端设置密码对吧
搜了一下,正则匹配啥的(看不懂)反正很难是弱口令,试了几下123456,gg
爆破放弃,随后测了sql注入,修改响应包,目录扫描都gg,本来快速打点情况下这种硬骨头打算先丢一边去随手点了一下插件看看js
感觉有点东西,访问之http://xx.xx.xx.xx:8000/forgetpwd
哦豁,有的玩了。该页面的logo跟主页不一样,怀疑是开发遗留未修改的接口
输入admin直接进入到发送验证码处,这里直觉手机号会泄露,果不其然
这种问题都存在,看来这里会存在更多安全问题
直接修改了一波自己手机号测试一哈,结果gg
那算了,直接越过你吧,翻看js找验证完验证码后修改密码处
结合发送验证码的数据包,修改请求包
tenantid 固定值 31e5b201-af6b-44b9-9ab7-6d2c025e5a82
sjhm 那就管理员的手机号 15066666666
yzm 不动他 wbtk
yzhh 不动他 还是 admin
yhmm hex_md5 那我修改123456 就是 e10adc3949ba59abbe56e057f20f883e
构造好了(发现没,根本不要手机验证码,修改密码环节并没有继续校验)
自信满满啊 这个洞十拿九稳了 发送>
结果请求不了,what???这时我的心态已经要蹦了,难倒开发删了这个接口?
结果访问发现是存在的,那是哪里的问题?最后点了一下burp的显示n
发现json多了一个回车,修改成原始请求,也能看到
结果
最后删除换行,请求成功,成功修改了管理员的密码,进入系统,然后就是很简单是朴实无华的文件上传getshell,这里不做截图了。