zoukankan      html  css  js  c++  java
  • 堆叠注入

    什么是堆叠注入?

    顾名思义,堆叠注入就是将一堆sql语句叠加在一起执行,使用分号结束上一个语句再叠加其他语句一起执行。

    题目

    首先尝试闭合引号,并注释后面的内容。

    发现没有报错,那就判断一下有多少列。



    由此可以判断出有两列,接着判断回显位。

    发现回显了过滤规则,select是被过滤的,还有一些注入常用语句也被过滤了。

    这时就可以尝试一下堆叠注入。

    发现这里爆出了所有数据库,再来看看数据表。

    发现有两个数据表,通过查看表结构看一下哪个表里面有flag字段。

    发现flag字段在1919810931114514表中,接着想办法去读取这个表中的flag字段的值(因为一些常用语句都被过滤了,不能直接查询)。
    这里实在不知道怎么办了,于是百度发现大佬的wp用预处理语句绕过了过滤。

    预处理语句使用方式:

    SET @sql = variable;  //设置变量
    PREPARE yuchuli from '[my sql sequece]';   //预定义SQL语句
    EXECUTE yuchuli;  //执行预定义SQL语句sqla
    

    这里是将我们要处理的语句先与定义为yuchuli,再进行执行,绕过关键字的过滤,于是就有了如下的语句。

    PREPARE yuchuli from 'select * from `1919810931114514`';
    EXECUTE yuchuli;
    

    但是这里的select是被过滤的,于是想到可以对他进行编码绕过.

    SET @sql = concat(char(115,101,108,101,99,116), " * from `1919810931114514`");
    PREPARE yuchuli from @sql;
    EXECUTE yuchuli;
    


    成功拿到了flag。

  • 相关阅读:
    DBHelper类
    户籍不在本市并已申请基本养老保险或基本医疗保险关系转移手续销户提取业务办理指南(试行)
    Android 打开/播放电脑的音频/视频文件
    (技术贴)如何鉴定绿茶婊
    Swift初探(一)
    关于android移动终端IM的一些问题
    C++中对象、引用、指针
    TextView
    新API
    开发者必备的6款源码搜索引擎
  • 原文地址:https://www.cnblogs.com/Timesi/p/11426348.html
Copyright © 2011-2022 走看看