一次edu的渗透测试记录

华盟原创文章投稿奖励计划

信息收集

首先我是在官网上看到了操作手册

自动草稿

里面写了默认密码

自动草稿

现在就简单多了,直接谷歌语法,这种姓名学号信息还是很好找的

自动草稿

然后找一个比较稀有的名字,不然搜索的时候信息太多,身份证信息有了,直接登录系统成功,下面就是正常的漏洞测试了

自动草稿

漏洞挖掘

xss

这个没啥好说的,有输入就插,很多地方都存在xss,下面的sql注入比较有意思

自动草稿

自动草稿

sql注入

直接一个查询的数据包,statusCode字段单引号报错

自动草稿

再加个单引号正常

自动草稿

经过各种测试,exp(709)正常

自动草稿

exp(710)异常,这里感觉是orcale数据

自动草稿

只能进行盲注了,测试各种语句

自动草稿

decode也被拦截

自动草稿

case when也是异常

自动草稿

这里注意到只有decode显示的是特殊字符,这说明if和case when并没有被拦截,只是它可能有个规则,在你逗号等于号传进去之后会再给你加一些别的字符让你语句执行失败,这种比较好绕
直接改成'||case 1 when 1 then 1 else 1 end||'测试,成功返回数据

自动草稿

先测下uesr函数,没问题可以用,把else后面改成exp(710)就好,这样只有user的长度正确的时候才会返回数据

自动草稿

跑出来为8位

自动草稿

因为逗号也不能用,这里换个写法,还是异常了,不过测试过ascii函数是可以用的

substring(user from 1 for 1)代表从第一位开始,截取长度为1

自动草稿

不过还是异常,跑了很多截取函数都不能用,之前以为是orcale数据库,现在怀疑是PostgreSQL数据库,他俩比较像,PostgreSQL有个函数很少会禁: position函数,这个函数不需要逗号,有两个参数,就是判断第一个字符串在后面字符串中出现的首个位置,从1开始

position('sql' in 'postgresql')返回的是8
position('sq' in 'postgresql')返回的也是8
position('p' in 'postgresql')返回的则是1

测试发现没问题

自动草稿

不过也不需要ascii函数了,返回的直接就是数字
这里说明a第一次出现不是在第一位,所以返回的是exp(720),然后异常

自动草稿

直接a为变量开始爆破,这说明c出现在第一位,等于1,所以返回了数据

自动草稿

第二位为m剩下同理

自动草稿

文章来源:奇安信攻防社区

链接:https://forum.butian.net/share/3648

作者:红猪

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文


END

本文来源奇安信攻防社区,经授权后由华盟君发布,观点不代表华盟网的立场,转载请联系原作者。

发表评论