前言

今天是五一假期的第4天啦,昨天临时起意,出去玩了一天,今天下午刚刚回到学校。回到学校第一件事就是打开fofa,看看今天的“幸运儿”是谁。

逛了几圈,发现了某个学校系统的登录框。作为一个挖了几十个逻辑洞的逻辑狗,当然是先从逻辑开始啦!

逻辑缺陷

系统登录框如下:

选择“用手机验证码登录”,输入手机号,开启网络劫持等常规操作,查看发送的数据包:

发现数据竟然是加密的,这可不太妙,一般来说这种小系统都直接明文传输的。吓得我赶紧去翻看前端代码,看看这数据是怎么加密的。结果这不看不要紧,一看直呼内行:

不知道是哪位开发老哥,验证码的生成逻辑竟然放在前端来实现(谁教你这么写的,给爷笑抽了),甚至还很贴心的告诉了数据包怎么查看。

没啥好说的了,直接本地覆盖一下,解开注释,再次发送验证码,逻辑缺陷+1,逻辑狗的快乐谁懂!

水平越权

拿下逻辑缺陷之后,发现这个系统可以任意注册进入后台,遂注册了一个测试账号,进入后台:

目光瞬间聚焦到左侧的“修改密码”处,既然验证码逻辑能写得如此逆天,那必然权限校验也是一坨屎了,盲猜这里会有水平越权。

注册两个账号:

  • 账号1(当前账号):

    • 账号:xxxxxxxxxxx

    • 密码:Qaz123456

  • 账号2:

    • 账号:yyyyyyyyyy
    • 密码:Qaz123456

使用当前帐号进行修改密码操作,输入新密码Qaz12345678,拦截数据包:

修改数据包中的手机号为账号2的手机号,放行,提示修改成功:

退出账号1,账号2使用原来的密码无法登录:

使用修改后的密码可以登录:

好好好,又拿下个越权。

任意文件上传

继续翻看系统功能,发现在“信息填写/修改”模块有个文件上传点 ,查看之前的数据包可以知道这个系统是.Net开发的,直接传一手,抓包,改包,放行,不出意外的话,这系统果然没对上传文件做任何校验和过滤,直接asp上传成功!

再从页面获取文件上传路径:

拼接访问上传的脚本文件,解析成功!

其实到这已经能证明漏洞存在了,但脚本都如此顺利地上传了,不传个小马总觉得心痒痒。

所以顺带着生成了个小马,上传一手,冰蝎连接,轻松秒杀。

至此,算是完成了对这个系统的测试,立马提交报告,收工!