前言
今天是五一假期的第4天啦,昨天临时起意,出去玩了一天,今天下午刚刚回到学校。回到学校第一件事就是打开fofa,看看今天的“幸运儿”是谁。
逛了几圈,发现了某个学校系统的登录框。作为一个挖了几十个逻辑洞的逻辑狗,当然是先从逻辑开始啦!
逻辑缺陷
系统登录框如下:
选择“用手机验证码登录”,输入手机号,开启网络劫持等常规操作,查看发送的数据包:
发现数据竟然是加密的,这可不太妙,一般来说这种小系统都直接明文传输的。吓得我赶紧去翻看前端代码,看看这数据是怎么加密的。结果这不看不要紧,一看直呼内行:
不知道是哪位开发老哥,验证码的生成逻辑竟然放在前端来实现(谁教你这么写的,给爷笑抽了),甚至还很贴心的告诉了数据包怎么查看。
没啥好说的了,直接本地覆盖一下,解开注释,再次发送验证码,逻辑缺陷+1,逻辑狗的快乐谁懂!
水平越权
拿下逻辑缺陷之后,发现这个系统可以任意注册进入后台,遂注册了一个测试账号,进入后台:
目光瞬间聚焦到左侧的“修改密码”处,既然验证码逻辑能写得如此逆天,那必然权限校验也是一坨屎了,盲猜这里会有水平越权。
注册两个账号:
-
账号1(当前账号):
-
账号:xxxxxxxxxxx
-
密码:Qaz123456
-
-
账号2:
- 账号:yyyyyyyyyy
- 密码:Qaz123456
使用当前帐号进行修改密码操作,输入新密码Qaz12345678
,拦截数据包:
修改数据包中的手机号为账号2的手机号,放行,提示修改成功:
退出账号1,账号2使用原来的密码无法登录:
使用修改后的密码可以登录:
好好好,又拿下个越权。
任意文件上传
继续翻看系统功能,发现在“信息填写/修改”模块有个文件上传点 ,查看之前的数据包可以知道这个系统是.Net开发的,直接传一手,抓包,改包,放行,不出意外的话,这系统果然没对上传文件做任何校验和过滤,直接asp上传成功!
再从页面获取文件上传路径:
拼接访问上传的脚本文件,解析成功!
其实到这已经能证明漏洞存在了,但脚本都如此顺利地上传了,不传个小马总觉得心痒痒。
所以顺带着生成了个小马,上传一手,冰蝎连接,轻松秒杀。
至此,算是完成了对这个系统的测试,立马提交报告,收工!