Perl資料類型安全研究

來源:互聯網
上載者:User

標籤:

0x00 背景

前幾天有個人在某大會上講了一個在perl中存在了20年的問題。作為一個只會perl不會python的人,真的很心痛。看完視頻後感覺被黑的吃不下東西。

這儼然就是一場對perl的吐槽批鬥大會,整個演講充滿了sucks、fuck等和諧詞彙,也能看出演講者是多麼的義憤填膺,場下一次次的鼓掌和附,嗯,讓我想起了郭德綱。

0x01 問題

言歸正傳,這個在perl中存在了20年的問題到底是啥呢?拋去perl的文法的槽點,真正的問題在data types上,對的,就是資料類型。

Perl對資料類型的處理真是有點匪夷所思了。

我們先瞭解一下perl中的變數有哪幾種。

perl中的變數

perl的資料類型分為三類:標量$,數組@,雜湊%。

具體定義在這裡不多說,我們來看幾個例子:

不管是標量、數組還是雜湊(字典),定義跟其他語言沒什麼區別。

我們來看看幾個特殊的情況,下面每個預期值為正常人類理解應該得到的結果。

@array =(1, 2, ‘a‘, ‘b‘, ‘c‘);print $array[0];

預期值 1

實際值 1

php">$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的問題

屌屌的棒棒的,對吧,可是……

我了個*,一個都不給轉義了,就這麼罷工了,可以順順暢暢的注入了好麼。

我想靜靜。

0x04 來源

Pdf:

http://events.ccc.de/congress/2014/Fahrplan/system/attachments/2542/original/the-perl-jam-netanel-rubin-31c3.pdf

視頻地址:

http://media.ccc.de/browse/congress/2014/31c3_- 6243 - en - saal_1 - 201412292200 -the_perl_jam_exploiting_a_20_year-old_vulnerability -_netanel_rubin.html#video

  • 本文來自:Linux教程網

Perl資料類型安全研究

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.