访问首页的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
二、Value(int)
构造POC:
'' or extractvalue(1,concat(0x7e,database())) or ''
如下图,测试中获取数据库sqlol
三、Column Name
按照insert的语句的语法,
INSERT INTO users (【1】, isadmin) VALUES ('haxotron9000', 0)
注入位置在【1】,我能想到的利用方式有两种,
1、找到users中的其他columns,直接插入值,造成垃圾数据,给用户造成困扰;
2、注释掉后面的语句,自由构造sql语句。
四、Table Name
注入点位置在【1】处
INSERT INTO 【1】(username, isadmin) VALUES ('haxotron9000', 0)
直接注释掉后面的语句,可以将数据插入任何表中。
关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。