网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

Perl数据类型安全研究 - 网站安全 - 自学php网

来源:未知    时间: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处理的对比。

enter image description here

\

这么看来是木有任何问题的,那么使用复参的时候呢?

\

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

添加评论