服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

记一次真实渗透排序处发现的SQL注入学习

日期: 来源:菜鸟学信安收集编辑:clearyy
为啥叫真实渗透的sql注入“学习”呢,嘿嘿,自然不是本人挖到的,是同事大佬挖到的,本着学习的态度,去复现了下,结果遇到些问题,才有了这篇文章。

复现失败


大佬发现的这个sql注入非常快,另一个同事刚把站的后台管理系统弱口令给发出来几分钟,大佬就发sql注入得到数据库名的截图了。


我人麻了,太强了。我寻思那么多接口,那么多参数,是怎么那么迅速的发现问题的?带着这个疑问我去试了一下。

大佬的图是这样的。


我按着接口找到漏洞点。


我直接点击查询,然后抓包,并利用上大佬的payload,可是数据库第一个字母不是i吗,我a怎么也返回200?(试了其他的,全都返回200)


换个判断长度的语句,根据大佬跑出来的数据库名长度为7,我填8还是返回200,说明有问题。


后来发现order参数的值undefined有些奇怪,就随意更改了一下,发现返回500,但是不管是啥都返回500,看样子确实是参数的问题,猜想应该是order为某个特殊的值,才会触发SQL注入(大佬的截图刚好没有截到order参数的值),FUZZ了半天也不知道是啥,就跑去请教大佬,大佬说确实是这样,是需要让其值为asc或者desc才能触发。


asc在sql语句中起到升序作用,desc为降序。具体原理后面再总结。


重新复现

得到大佬的指示,开始重新复现,更换order值为asc,column参数加单引号果真报错。

输入payload,数据库名第一位a,返回500(i的话就会返回200)

这里忘截图了,借用一下大佬的图,数据库长度为7。返回200(其余的都会返回500)

发送数据包到intruder模块爆破一下

攻击类型选择第四个cluster bomb

把数据库名的位数和数据名的字母给添加一下

设置payload1为1-8的数字

设置payload为a-z的字母。

开始爆破,成功得到数据库名。


总结

后来又测试了其他参数后,发现并不存在注入,仅仅只有column参数在order为asc和desc时存在注入。又去找大佬交流了一下。大佬说这个是一个小技巧,像这种java站的,这种排序的地方都可以测一下,可能就有order by注入。


大佬解释了下大概原理:参数化会将参数值加上引号,但是order by字段不能带引号,所以很多排序功能常存在注入问题,如mybatis中预编译使用 #{} 而order by 字段使用参数化后有问题,所以开发者可能直接就使用 ${ }从而存在注入问题。本次遇到的也正是mybatis。

对于本次使用的payload我也解释一下:IF(substr(database (),1,1)='i',1,(select+1+union+select+2))


因为此处是order by注入,这句payload翻译过来就是:如果数据库名字的第一个字母是i,就执行1,如果不是i,就执行select 1 union select 2,又因为这个语句返回的是两行数据,在语法规范上是错误的,导致整条语句都不执行,所以报错。


这样就可根据返回码来区分,并进行快速爆破来判断出数据库名,类似于布尔盲注。

作者:clearyy原文地址:https://www.freebuf.com/articles/web/338744.html如有侵权,请联系删除

相关阅读

  • 超100亿次安装 | curl诞生25周年

  • 出品 | OSC开源社区(ID:oschina2013)昨天是 curl 诞生 25 周年的纪念日,创始人 Daniel 回顾了项目经历的二十五年。Daniel 表示,他发布 curl 的首个版本时只有 27 岁,当时在 Fron
  • 微软开源 Visual ChatGPT,7天斩获2.2万stars

  • ↓推荐关注↓来源:OSC开源社区(ID:oschina2013)除了大力投资 Open AI ,微软还亲自下场大搞 AI 。7 天前,微软开源了 Visual ChatGPT ,这个软件可以连接 ChatGPT 和一系列视觉模型,
  • Python 爬虫 requests 库教程(附案例)

  • ↓推荐关注↓来源:AI算法科研paper1.requests 库简介Requests 是一个为人类设计的简单而优雅的 HTTP 库。requests 库是一个原生的 HTTP 库,比 urllib3 库更为容易使用。reque
  • 干货|网络安全资料情报库

  • 这是一个网安人的聚集地~为解决大多粉丝的提问,以及资源需求,特此联合几位师傅创办了知识星球;知识星球已经运营一年多,内容大致为:(1)每日分享资料与工具,并进行了分类(2)创办了作业模
  • Spring Boot 应用的新命令行界面:Just

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。作者 | Johan Janssen、译者 | 马可薇、策划 | 丁晓昀命令行工具 Just,无需任何配置即可自动加载有变动的源码、构建文
  • 重庆这条河,入选全国“最美家乡河”

  • 第二届寻找“最美家乡河”活动揭晓仪式现场 见习记者 于鹏程 摄/视觉重庆3月22日上午,由水利部和重庆市人民政府联合主办的第二届寻找“最美家乡河”活动揭晓仪式在渝举行。

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 记一次真实渗透排序处发现的SQL注入学习

  • 为啥叫真实渗透的sql注入“学习”呢,嘿嘿,自然不是本人挖到的,是同事大佬挖到的,本着学习的态度,去复现了下,结果遇到些问题,才有了这篇文章。复现失败大佬发现的这个sql注入非常快
  • 推荐 5 个好玩的 ChatGPT 开源应用

  • 推荐 5 个基于 ChatGPT 的开源应用:基于强大的 GPT 大模型能力,看能开出什么好玩有趣实用的应用。本期推荐开源项目目录:1. 基于 OpenAI 的翻译应用2. 让 ChatGPT 支持图片3.
  • 谷歌版 ChatGPT Bard 开放内测申请了!

  • 公众号关注 “GitHubDaily”设为 “星标”,每天带你逛 GitHub!上个月初,Google 在巴黎开了一场技术发布会,对外展示一款可用于对抗 ChatGPT 的聊天机器人:Bard。只可惜,出师未捷身
  • PetitPotamv2.0本地域权限提升工具

  • 声明:该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。简介通过 PetitPotam 进行