东华杯布尔盲注

东华杯布尔盲注

【原理】

sql布尔盲注原理

【目的】

加强个人渗透sql的能力

【环境】

python,ubuntu

【工具】

python

【前言】

之前自己对sql注入一直很不理解,于是上去做了东华杯some words一波,看了writeup花了n个小时才理解(我果然是最菜的。。),不说了,上题目。

各位大佬可以看看这个资源理解下布尔盲注原理 http://blog.csdn.net/squeen_/article/details/52767887

【步骤】

image
首先,这题判断过滤的特征是它回返回回显 stupid hacker233

所以试一波各种语句,发现过滤了很多,有单引号 等号 union等等,下面开始我的表演2333

步骤1: 爆数据库的长度

语句如下
?id=0 or length(database())>1%23 (网址我这里就暂时不打出来了,随时变化)

这个语句含义是id=0时,这个库名的长度是否大于1

如果不大于1的,它给你的回显如下

试试把1改成2,3,4,5,到5的时候发现回显消失,说明这个库命长度为4
image
步骤2: 爆数据库名称

语句如下

?id=0 or ascii(substr(database(),1,1))>119–

这语句的含义是以ascii的形式返回id=0时第一个字符开始后面的第一个值 然后通过与ascii匹配

这里的119在ascci表中为w 这里的判断方法和步骤一是一样的
然后再把1,1改成,2,1,含义就是求库名的第二个字母, 以此类推得到库名为words

步骤3:
接下来就是求表长度和表名称了,方法都是一样的,下面我给出语句

爆表长度 id=0 or (select length(table_name) from information_schema.tables where table_schema like database() limit 0,1)>3 %23

limit 0,1的含义是求第一个字符 limit 1,1的含义是求第二个字符 具体情况请百度谢谢别问我23333

爆表名称 ?id=0 or (ascii(substr((select table_name from information_schema.tables where table_schema like database() limit 0,1),1,1))) > 50 –+

注意这里的substr和limit括号 慢慢体会,反正这个是对的

步骤3:
接下来就是查字段了,可能就麻烦了,所以上神器 Python!
给出爆字段的脚本如下
image

运行得到flag

image

【总结】

感谢some words,让我在sql注入方面能力得到了提升。不废话了0.0,欢迎各位大佬慢慢看

文章目录
  1. 1. 东华杯布尔盲注
    1. 1.1. 【原理】
    2. 1.2. 【目的】
    3. 1.3. 【环境】
    4. 1.4. 【工具】
    5. 1.5. 【前言】
    6. 1.6. 【步骤】
    7. 1.7. 【总结】
,