某日,朋友甩给我一个他自己写的CTF题目:

 

由于篇幅限制,省略的说下步骤,审查元素,然后点击标签A的超级链接,会跳转到一个文件上传的页面,此时文件上传会给人造成这里有文件上传的漏洞,其实不然,此处存在的是insert类型的sql注入。

 

下图分别是fileinfo字段加了引号和没有加引号的截图

报错了:

 

由于没有回显位置,insert并不能用二次注入,二阶注入的姿势。

insert语句:

INSERT INTO table_name (column1,column2,column3,...)
VALUES ('value1','value2','value3',...);

构造成

INSERT INTO table_name (column1,column2,column3,...)
VALUES ('0' or select(1) or '0',value2,value3,...);

下图成功构造,没有报错。

 

已经证明了存在注入,但是如何得到数据呢?

按照这道题目的环境来说,普通的几种注入手段只有延时注入适用,但是延时注入实在是惹人厌恶。

 

在思索一番之后,想到了一个新姿势,因为此处的语句如果错误,会报错!

能否利用这个报错,来达到布尔盲注的效果呢?

答案是可以的~

 

这里我们通过整数溢出,造成了在IF判断逻辑后的报错!

当条件为真的时候,即会报错。

 

这就是所谓的基于报错的布尔类型盲注了

通过这个特性,我们就可以通过布尔类型注入了~不必再使用恶心的延时注入了。

 

 

 

得知当前用户为root,懒得写脚本搞flag了~

以上





本文链接地址: Mysql Error base blind injection,一种新型的注入类型

原创文章,转载请注明: 转载自Lz1y's Blog

发表评论

电子邮件地址不会被公开。 必填项已用*标注