来源:未知 时间:2015-04-15 13:43 作者:xxadmin 阅读:次
[导读] 0x01 问题 言归正传,这个在perl中存在了20年的问题到底是啥呢?抛去perl的语法的槽点,真正的问题在data types上,对的,就是数据类型。 Perl对数据类型的处理真是有点匪夷所思了。 我们...
0x01 问题
言归正传,这个在perl中存在了20年的问题到底是啥呢?抛去perl的语法的槽点,真正的问题在data types上,对的,就是数据类型。 Perl对数据类型的处理真是有点匪夷所思了。 我们先了解一下perl中的变量有哪几种。 perl中的变量 perl的数据类型分为三类:标量$,数组@,哈希%。 具体定义在这里不多说,我们来看几个例子: 我们来看看几个特殊的情况,下面每个预期值为正常人类理解应该得到的结果。 @array =(1, 2, 'a', 'b', 'c');print $array[0]; 预期值 1 实际值 1 $scalar = (1, 2, 'a', 'b', 'c'); print $scalar; 预期值 1 实际值 c 我擦泪,为毛会是c!太不科学了,继续往下看。 @list = (1, 2, 'a', 'b', 'c'); print scalar @list; 预期值 1 实际值 5 呵呵,他把数组的长度输出了。 再看看这个哈希的例子 %hash = (1, 2, 'a', 'b', 'c'); print $hash{'a'}; 预期值 木有 实际值 b 为毛把b给输出了,谁能告诉我这头草泥马是怎么处理的。 0x02 漏洞这些问题会产生什么漏洞呢? 一起看看在web中php跟perl处理的对比。 这么看来是木有任何问题的,那么使用复参的时候呢? php很好的处理了传入的数据,而perl的做法就是草泥马在奔腾%>_<%他是直接可以传入数组的。 再深入一下,看看当数组和哈希结合的时候的情况。 @list = ('f', 'lol', 'wat');$hash = {'a' => 'b', 'c' => 'd', 'e' => @list};print $hash; 预期值 {'a' => 'b',? 'c' => 'd',? 'e' => ['f','lol','wat'] } 神马情况,数组中的“,”变成了“=>”又给赋值了?e=>f、lol=>wat,what the f*cuk!
是多大的一个坑啊!看Bugzilla是怎么掉进去的。 http://zone.wooyun.org/content/15628 关于数据类型的这些问题我不想再说了,有些恶心。 0x03 GPC的问题屌屌的棒棒的,对吧,可是…… 我了个*,一个都不给转义了,就这么罢工了,可以顺顺畅畅的注入了好么。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com