原文:https://www.noob.ninja/2019/07/exploiting-tricky-blind-sql-injection.html

前言

嘿!有好长时间没有更新过博客了,不知道大家有没有想我。今天我为大家带来的下饭故事是关于盲SQL注入,这是我在一个私有赏金计划中发现的。通过被动侦察范围内的子域,我发现技术堆栈为PHP,因此我断定其中一定存在漏洞。

它可以创建图像相册,在相册中,你可以上传各种图片,但有分页功能。一个页面上只有几个相册可见,您需要单击“页码”才能查看其他相册。在点击页码时,我注意到如下请求:

/albums.php?page=2&num_max=20

其中包含num_max参数,这告诉我们每页相册数量的限制,我们可以增加或减少它来改变单页上相册的数量。所以我尝试通过简单地输入’ "和\等来检查SQL注入,它在响应中抛出了SQL查询而且,错误显示它是PostgreSQL DBMS。

查询如下:

Select * from tbl_albums where page=2 order by album_date asc LIMIT 0,{{INPUT}}

在LIMIT 0中,{{input}} 0是偏移量。即,从哪一行返回记录。{{input}}是应该从偏移量返回的行数,也可以写成LIMIT {{INPUT}} OFFSET 0(应用程序转义引号)。然而,由于我也使用了\进行检查,并且由于注入是在数字上下文中,因此导致了错误。

Select * from tbl_albums where page=2 order by album_date asc LIMIT 20\ OFFSET 0

据我所知,当order by 查询与LIMIT一起使用时,我们不能使用Union语句将我们自己的行注入到当前运行的查询中。在MySQL的情况下可以进行基于错误的注入,但这次是PostgreSQL DBMS。我苦苦搜寻解决办法,但都是徒劳的。

然后我就咨询了一下我的朋友 @securityidiots,他提供了一个绝妙的点子,虽然技巧依赖于应用程序,但它也可以在其他不同的地方实现。

Exploit

1.首先,使用Burp Intruder我创建了大约200张相册(127张就够了)

2.我决定首先提取DBMS版本的第一个字符,所以我使用了内置的substr函数,并将我的SQL查询放入其中,这样它就变成了

Select * from tbl_albums where page=2 order by album_date asc LIMIT 0,substr((select version()),1,1)

但是它抛出了一个错误,因为DBMS要求LIMIT 和OFFSET的值是数字!

3.接下来,我们使用“ascii”函数将substr函数的结果转换为数字,因此查询类似于

Select * from tbl_albums where page=2 order by album_date asc LIMIT 0,ascii(substr((Select version()),1,1))

现在查询语句非常巧妙,没有返回任何错误,现在这个查询的作用为,返回相册的数量,这等同于version()函数输出的第一个字符的ascii值。这就是在步骤#1中创建这么多相册的原因,并且返回的结果在0-127这个范围内。

示例:如果version()的输出是PostgreSQL 9.6.2,则。substr((select version()),1,1)将是“P”

ascii(substr((select version()),1,1))将为“80”,因此,只有80张相册会返回到页面。substr((select version()),2,1)将为“o”,ascii(substr((select version()),2,1))将为“111”.只有111张相册会返回页面,以此类推。所以我们现在要做的就是使用一些javascript计算在DOM中返回的相册数量,并将相册的计数转换回ASCII表中的等效字符,我们得到了(select version())的第一个字符,同样,我们可以自动提取所有DBMS。

我使用document.querySelectorAll('.ALBUM_CLASS').length查找返回的相册数量,并使用String.fromCharCode(80)将数量转换回字符。

这就是PoC,希望大家能从中学到东西!

mysql limit sql注入_LIMIT子句中的盲 SQL注入漏洞利用相关推荐

  1. SQL Server应用程序中的高级SQL注入[转]

    SQL Server应用程序中的高级SQL注入[从A.Z的POST里转载,经过整理] 作者:Chris Anley[chris@ngssoftware.com] An NGSSoftware Insi ...

  2. SQL Server应用程序中的高级SQL注入

    作者:不详 来源:techtarget http://www.csai.cn 2006年5月11日 摘要:这份文档是详细讨论SQL注入技术,它适应于比较流行的IIS+ASP+SQLSERVER平台.它 ...

  3. php mysql 字段不为空_Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?...

    Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null? 先上两种实现方式的实例: $querys["house_type_image" ...

  4. mysql批量用trim限定_mybatis中批量更新sql语句,trim、foreach标签,varchar定义理解

    准备工作 现在有一张表为:student,相关字段如下: mapper层方法 int batchUpdateStudent(List studentList); xml语句 update studen ...

  5. Oracle中where后面加if,SQL:WHERE子句中的IF子句

    使用CASE语句 更新:以前的语法(如less数人指出)不起作用. 您可以使用CASE如下: WHERE OrderNumber LIKE CASE WHEN IsNumeric(@OrderNumb ...

  6. ef执行原生sql语句_EF Core中执行原生SQL语句

    一.课程介绍之所以今天录制这个系列文章的主要原因是,想在快速帮助到大家上手在ASP.NET Core WebAPI中结合EF Core来操作我们的数据库.EF Core的基础文章和基础课程实在是太多了 ...

  7. sql azure 语法_Azure中的新SQL数据仓库

    sql azure 语法 介绍 (Introduction) In previous chapters, we taught how to create SQL Databases in Azure. ...

  8. 护卫神mysql提权_护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机管理一键安装的软件)...

    "护卫神·主机大师支持一键安装网站运行环境(IIS+ASP+ASP.net+PHP5.2-5.6+MySQL+FTP+伪静态+PhpMyAdmin),并可在线开设主机.SQL Server和 ...

  9. 护卫神mysql提权_护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机大师安装的软件)...

    原标题:护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机大师安装的软件) "护卫神·主机大师支持一键安装网站运行环境(IIS+ASP+ASP.net+PHP5.2-5.6+MySQL+ ...

最新文章

  1. 以太坊(Ethereum ETH)的奖励机制
  2. AI理论知识基础(22)-逻辑斯蒂映射-伪随机数
  3. SAP Spartacus的自定义路由
  4. VS2015中快捷注释代码块
  5. SpringBoot (一) :入门篇
  6. 大家都在讲大数据,大数据是什么呢?
  7. Oracle——distinct的用法
  8. 【Hadoop】安装Apache Hadoop
  9. 输入一个年份,并判断是否为闰年
  10. 常用路由器的帐号和密码大全
  11. 电脑版微信多开的三种方法
  12. java实现小写转大写_人民币小写转大写(Java实现)
  13. 【Day5.7】美食街实在吃不下去,回暹罗商圈再晚餐
  14. Windows 2003环境下IIS下ASP+ACCESS的配置方法
  15. xml 入门 shema_01
  16. 钉钉作弊软件开发者,被判 5 年半,为什么提供「虚拟定位」会被判这么久?...
  17. NULL,0,`0`,`\0`,0你分得清吗?
  18. 小伙伴面试之成都创宇知道
  19. C++中二维数组的动态创建于处理(zzl)
  20. 【GitHub学生包】2022年12月GitHub学生包最新申请教程 18次认证失败的经验之谈

热门文章

  1. hi3516dv300是几核处理器_HI3516DRBCV300-HI3516DRBCV300,hi3516DV300,HI3516-HI3516DRBCV300-香港科威芯电子有限公司...
  2. 关于inetd和xinetd
  3. 在毕业设计论文Word中交叉引用参考文献
  4. 惊了!这才是真正的 Windows 摸鱼神器!!!
  5. !-- --与%-- --%
  6. Ubuntu20.04 tcp调试工具mNetAssist安装
  7. 在家里免费下载知网内的论文方法
  8. 上海到底是一座什么样的城市?
  9. WebView-WebViewClient详解
  10. 双足机器人课设报告_双足机器人毕业设计报告.docx