记一次edu的渗透测试记录

举报
亿人安全 发表于 2024/09/30 17:30:05 2024/09/30
【摘要】 原文首发在:奇安信攻防社区https://forum.butian.net/share/3648信息收集首先我是在官网上看到了操作手册里面写了默认密码现在就简单多了,直接谷歌语法,这种姓名学号信息还是很好找的然后找一个比较稀有的名字,不然搜索的时候信息太多,身份证信息有了,直接登录系统成功,下面就是正常的漏洞测试了漏洞挖掘xss这个没啥好说的,有输入就插,很多地方都存在xss,下面的sql注...

原文首发在:奇安信攻防社区

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

信息收集

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

图片

里面写了默认密码

图片

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

图片

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

图片

漏洞挖掘

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剩下同理

图片

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。