• 刷题[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)

    脚本

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

    总结思路

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

    知识点

    • 布尔盲注
  • 相关阅读:
    MySql 定时完成备份
    smarty插件
    PHP字符串函数小结
    eclipse搭建maven project的spring4 spring mvc mybatis
    C#数组存入引用类型
    C#数组
    【转】Linus:利用二级指针删除单向链表
    [LeetCode] Reverse Linked List II
    ubuntu配置git
    mint安装Node.js
  • 原文地址:https://www.cnblogs.com/karsa/p/13384606.html
Copyright © 2020-2023  润新知