資源描述:
《perl快速入門(mén)教程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、Perl黑客編程作者:riusksk(泉哥)主頁(yè):http://riusksk.blogbus.com郵箱:riusksk@qq.com目錄一.Perl簡(jiǎn)介二.Windows下的Perl環(huán)境搭建三.基礎(chǔ)知識(shí)四.?dāng)?shù)組五.條件與循環(huán)語(yǔ)句六.用戶數(shù)據(jù)獲取七.文件讀寫(xiě)八.子程序九.LWP模塊十.套接字Socket十一.編寫(xiě)攻擊代碼(1)XSSexploit(2)SQLInjectionExploit(3)遠(yuǎn)程文件包含(4)LFI2RCEExploit(5)本地溢出(6)遠(yuǎn)程溢出十二.結(jié)論一.Perl簡(jiǎn)介
2、Perl是PracticalExtractionandReportLanguage的編寫(xiě),它是由LarryWall設(shè)計(jì)的,主要用于UNIX環(huán)境下編程,當(dāng)然目前它也是只支持Windows系統(tǒng)的,本文主要也是講在Windows下的Perl編程,并側(cè)重于黑客安全方面。Perl如腳本語(yǔ)言一般,無(wú)需經(jīng)編譯器來(lái)編譯才能運(yùn)行代碼,應(yīng)用起來(lái)也很簡(jiǎn)便,特別是用它來(lái)寫(xiě)exploit尤為流行。據(jù)統(tǒng)計(jì),目前世界上有70%的exploit是用Perl來(lái)編寫(xiě)的。在國(guó)內(nèi),由安全焦點(diǎn)出版的《網(wǎng)絡(luò)滲透技術(shù)》一書(shū)提到的主要編程語(yǔ)言
3、中,主要有perl,c,asm三種,書(shū)中提到在閱讀此書(shū)的預(yù)備知識(shí)中就要求熟悉C,Perl,Asm,由此可見(jiàn),perl語(yǔ)言在國(guó)內(nèi)安全方面的應(yīng)用也是占有一席之地的。在國(guó)外著名漏洞公布站點(diǎn)milw0rm中,我們也可以經(jīng)??吹接胮erl編寫(xiě)的exploit,無(wú)論是在腳本攻擊中,還是在系統(tǒng)漏利用中,特別是在溢出攻擊中,都可以經(jīng)常見(jiàn)到它的身影。除此之外,有些安全人士也用它來(lái)編寫(xiě)Fuzzing工具,用于挖掘漏洞。另外,本文講述的只是Perl語(yǔ)言中的冰山一角,如果讀者想深入學(xué)習(xí)該語(yǔ)言的話,建議學(xué)習(xí)一下官方文檔或
4、者其它編程書(shū)籍。二.Windows下的Perl環(huán)境搭建在開(kāi)始Perl編程之旅之前,讀者需要先下載兩樣工具:ActivePerl和EditPlus。ActivePerl是一款Perl解釋器,可在AIX,HP-UX,Linux,MacOSX,Solaris和Windows等多操作系統(tǒng)平臺(tái)下使用,使用起來(lái)也很簡(jiǎn)便,直接雙擊編寫(xiě)好的*.pl文件(perl的文件格式)(這種方法可能會(huì)在未看清楚輸出結(jié)果就自動(dòng)關(guān)閉了,但如果你只是為了生成某個(gè)文件,就可以直接使用這種方法,比如在本地溢出利用中用于構(gòu)造可觸發(fā)溢出
5、的文件)或者在DOS下輸入如下命令即可:perlexample.plEditPlus?是?Windows?下的一個(gè)簡(jiǎn)便的?Internet?32?位文本編輯器、HTML?編輯器和程序設(shè)計(jì)員的編輯器,支持?HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript?和?VBScript?等多種語(yǔ)言的代碼高亮顯示,使用者也可根據(jù)自己需要到其官方網(wǎng)站下載語(yǔ)言包去支持其它語(yǔ)言(如匯編語(yǔ)言)的代碼高亮,讀者可也根據(jù)自己喜好選擇其它編輯器,如Notepad++?,F(xiàn)在我們可新建一個(gè)
6、example.pl:print"HelloWorld!";然后打開(kāi)DOS進(jìn)入example.pl文件所在目錄,輸入命令:perlexample.pl后,執(zhí)行結(jié)果如下所示:d:>perlexample.plHelloWorld!三.基礎(chǔ)知識(shí)在Perl中,變量的定義是在變量名之前加上符號(hào)'$',完成后記得加分號(hào)';'例如:$x=123;(十進(jìn)制數(shù),注意分號(hào)的使用,這跟C語(yǔ)言是相同的。)$y=0xff;(十六進(jìn)制數(shù))$z=-32.2;(浮點(diǎn)數(shù))$string=“I’mriusksk.”;(
7、對(duì)于包含空格的字符串要加雙引號(hào),是英文輸入法中的雙引號(hào),而非中文的雙引號(hào)。如果無(wú)空格,那么不加引號(hào)也是可以的。除此之外,單引號(hào)也是可以的,除非字符串中已經(jīng)含有單引號(hào),就像這一句就只能使用雙引號(hào)了,但是使用單引號(hào)后,不能解釋轉(zhuǎn)義符,也就是說(shuō),如果使用了單引號(hào),那么它就會(huì)把之類(lèi)的轉(zhuǎn)義符直接輸出,而不是換行。)一些常見(jiàn)的轉(zhuǎn)義符如下:NewLinerReturntTabfFormFeedbBackspacevVerticalTabeEscapeaAlarmLLowercaseAl
8、llLowercaseNextUUppercaseAlluUppercaseFirst在perl中,"#"是不為解釋器所解釋的,它是作為注釋符來(lái)使用的,比如將以下代碼保存為riusksk.pl文件:$name=“riusksk”;#mynameprint$name;那么運(yùn)行后它會(huì)直接輸出:d:>perlriusksk.plriusksk現(xiàn)在我們將上面的代碼改成:$hello=“Hello,”;$name=“riusksk!”;#mynameprint“$hello”.”$name