问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
一次edu的渗透测试记录
渗透测试
一次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函数是可以用的 ```php substring(user from 1 for 1)代表从第一位开始,截取长度为1 ```  不过还是异常,跑了很多截取函数都不能用,之前以为是orcale数据库,现在怀疑是PostgreSQL数据库,他俩比较像,PostgreSQL有个函数很少会禁: position函数,这个函数不需要逗号,有两个参数,就是判断第一个字符串在后面字符串中出现的首个位置,从1开始 ```php position('sql' in 'postgresql')返回的是8 position('sq' in 'postgresql')返回的也是8 position('p' in 'postgresql')返回的则是1 ``` 测试发现没问题  不过也不需要ascii函数了,返回的直接就是数字 这里说明a第一次出现不是在第一位,所以返回的是exp(720),然后异常  直接a为变量开始爆破,这说明c出现在第一位,等于1,所以返回了数据  第二位为m剩下同理 
发表于 2024-08-09 09:00:01
阅读 ( 4277 )
分类:
渗透测试
4 推荐
收藏
0 条评论
请先
登录
后评论
红猪
2 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!