zoukankan      html  css  js  c++  java
  • 刷题[CISCN2019 华北赛区 Day2 Web1]Hack World

    解题思路

    打开发现是很简单的页面,告诉了表名和列名,只需知道字段即可

    尝试一下,输入1,2都有内容,后面无内容。输入1'让他报错,发现返回bool(false)

    大概思路就是布尔型注入了,通过不断返回正确值,猜测对应字段

    fuzz

    通过fuzz发现,482长度的被禁了,472长度的可以使用,也就是说禁用了空格,union,or,and等

    那就有点难办了,联合注入被禁,报错注入被禁

    首先我们先不看过滤,应该选择的sql语句位为
    select ascii(substr((select flag from flag),1,1)) ) >1 %23

    由于空格被禁,我们使用括号或者tab替换空格
    select(ascii(substr((select(flag)from(flag)),1,1)))>1%23

    由于or被禁,并且不知道为什么单独使用||可以,但是与sql语句组合就不行了

    爆破

    这里网上有两种方法,异或和if

    1.if

    if(ascii(substr((select(flag)from(flag)),1,1))>1,1,2)

    如果不会脚本的话,通过bp的intruder模块,同样可以爆破求出flag值,无非就是麻烦一点,ascii码转换成字符的形式,但其实和写脚本应该差不太多,

    (平台应该是对访问做了限制,这里线程需要设置的低一些)

    2.异或

    通过0与任何异或结果就是他本身的思想

    0^(ascii(substr((select(flag)from(flag)),1,1))>1)

    脚本

    网上有很多现成的脚本,这里就不再贴上来了,虽然自己写脚本能力差,但是希望能够学习到其他大佬的脚本,而不是贴到自己这,当一个脚本小子

    总结思路

    • 常规的布尔盲注,根据回显爆破
    • 需要根据一些过滤,进行相应的更改

    知识点

    • 布尔盲注
  • 相关阅读:
    AtCoder Tenka1 Programmer Beginner Contest 解题报告
    BZOJ4401: 块的计数 思维题
    LOJ#2170. 「POI2011」木棍 Sticks
    LOJ#2632. 「BalticOI 2011 Day1」打开灯泡 Switch the Lamp On
    LuoguP3183 [HAOI2016]食物链 记忆化搜索
    BZOJ2818: Gcd 欧拉函数
    BZOJ3942: [Usaco2015 Feb]Censoring 栈+KMP
    适用于Java的嵌入式脚本语言
    oracle goldengate的两种用法
    手滑把库给删了,跑路前应该做的事。。。
  • 原文地址:https://www.cnblogs.com/karsa/p/13384606.html
Copyright © 2011-2022 走看看