官术网_书友最值得收藏!

1.2 編程基礎環境

針對不同的滲透測試場景,測試者需要編寫的腳本文件會有所不同。例如,使用Python語言編寫的“.py”文件需要Python環境運行;使用PHP語言編寫的腳本文件需要PHP環境運行。那么,常見的編程語言有哪些呢?對于不同的編程語言,運行環境應該如何進行安裝與配置?本節將以Python、PHP、Java、GCC、Go幾種語言為例,進行運行環境配置及工具安裝的講解。

1.2.1 Python運行環境

Python的官網首頁如圖1-36所示。Python是被許多技術人員當作首選的一門語言,它具有強大的滲透測試功能和廣泛的第三方庫支持。Python是一種解釋型、面向對象、動態數據類型的高級編程語言,其內置數據結構,結合動態類型和動態綁定的功能,對于快速開發應用程序非常有幫助。同時Python也是常用于將現有組件連接在一起的“膠水語言”,它簡單易學的語法強調可讀性,降低了程序維護的成本。Python支持模塊和包,這鼓勵程序模塊化和代碼重用。Python解釋器和功能廣泛的標準庫可以以源代碼或二進制碼的形式免費提供給所有主要平臺。

圖1-36 Python官網首頁

Kali Linux中自帶Python環境,可運行絕大多數Python編寫的程序(其他系統可能需要自行安裝Python環境)。Python代碼庫主要以第三方庫居多,這樣大大提升了開發效率。可以使用pip從Python包索引和其他索引中安裝各種程序包。

新版Python在Windows上安裝時會攜帶pip程序,不需要再安裝;在Ubuntu或Debian上,需要利用apt命令安裝pip,Python2 pip安裝命令為“apt install python-pip”,Python3 pip安裝命令為“apt install python3-pip”;在Linux上可利用“get-pip.py”文件進行安裝;Mac系統自帶pip,在Mac m1上則需要進行編譯安裝。

安裝好pip后就可以使用pip安裝Python庫了。pip的使用方法為:python3-m pip install requests,如圖1-37所示。

圖1-37 pip install requests

使用這條命令,Python3會調用pip模塊安裝第三方庫“requests”。如果需要安裝其他庫,將“requests”替換成你想要安裝的程序庫庫名就可以了。

在使用一些Python工具時,可能需要安裝這些工具的依賴庫。通常這些工具會提供其依賴庫清單,并存放在名為“requirements.txt”的文件中。這時執行“python3-m pip install-r requirements.txt”命令即可安裝該工具所需要的全部依賴,如圖1-38所示。

圖1-38 requirements.txt安裝

需要注意的是,Python2版本和Python3版本之間存在較大差異,不同工具對Python版本的要求也不同,例如“dirsearch”工具只能在Python3環境執行,如圖1-39所示(圖中“Python”對應的版本為2,系統允許Python2與Python3并存)。

圖1-39 dirsearch

1.2.2 PHP運行環境

PHP(Hypertext Preprocessor,超文本預處理器)是一種被廣泛應用的開放源代碼的多用途腳本語言,它可嵌入到HTML中,尤其適合Web開發。

PHP代碼的執行需要擁有PHP代碼解釋器,筆者推薦初學者使用小皮面板(phpStudy)或者PHP寶塔。安裝細節本書不進行詳細講述,讀者可以通過查閱官網對應的文檔進行相關安裝。

接下來我們以phpStudy為例,演示如何運行PHP代碼文件。將phpStudy安裝到Windows虛擬機中,打開phpStudy軟件,界面如圖1-40所示。

圖1-40 phpStudy界面

打開“一鍵啟動”中的“WAMP”,PHP網站環境就構建完成,如圖1-41所示。

圖1-41 打開WAMP

切換到“網站”選項卡,選擇“管理”|“打開根目錄”選項,如圖1-42所示。

圖1-42 打開根目錄

在打開的根目錄下創建index.php,寫入代碼“<?php phpinfo();?>”用于測試PHP環境是否正常,如圖1-43所示。

圖1-43 寫入測試代碼

通過瀏覽器訪問http://localhost/,可以看到PHP代碼執行成功,如圖1-44所示。

圖1-44 代碼執行成功

值得注意的是,因為PHP版本之間存在差異,有些函數,例如assert、preg_replace等,在PHP 7.3版本中無法正常使用,或是存在部分功能無法使用的情況,所以讀者在運行PHP項目遇到問題時,需要注意對應版本的選擇。

1.2.3 Java運行環境

Java是多種網絡應用程序的基礎,也是開發和提供企業應用、移動應用、桌面應用、Web應用的常用工具。在世界各地有超過900萬的開發人員使用Java,從筆記本電腦到數據中心,從游戲控制臺到超級計算機,從手機到互聯網,Java可謂無處不在!

用Java寫的工具通常以jar包的方式進行分享。當從GitHub或其他途徑獲取了jar文件,想在系統上運行jar文件時,就需要安裝JDK。JDK是Java Development Kit的縮寫,是一種軟件開發環境,用于開發Java應用程序和小程序。

筆者建議安裝的版本為JDK 8,因為JDK8兼容性比較好,大多數工具都可以在JDK 8上正常運行。在Oracle官網上根據不同的系統內核,下載對應的JDK軟件并安裝即可,如圖1-45所示。

圖1-45 下載JDK 8

下面使用jar文件運行命令,試試Java環境是否配置成功。命令為“java-jar xxx.jar”,其中“xxx.jar”為具體的文件名。

以fastjson_rce_tool這個工具為例(-fastjson_tool.jar),可以看到運行成功,沒有報錯,這說明Java環境配置成功,如圖1-46所示。

圖1-46 Java環境配置成功

1.2.4 GCC運行環境

GCC全稱GNU Compiler Collection。GCC是一個開源編譯器套件,提供了用于多種編程語言(如C、C++、Fortran、Ada、Go等)的編譯器以及這些語言的庫(libstdc++)。GCC最初是作為GNU操作系統的編譯器編寫的。GNU系統被開發為100%的自由軟件。

GCC適用于多種操作系統和平臺(如Linux、Mac OS、FreeBSD等),下面將在Kali虛擬機中進行編譯演示。雖然Kali虛擬機默認已經安裝GCC環境,但是還需要安裝一些編譯所需要的工具才能進行完整的編譯。可以通過命令“sudo apt install gcc make-y”進行安裝,如圖1-47所示。

圖1-47 安裝編譯工具

以pkcrack工具源代碼為例(-pkcrack-1.2.2.tar.gz),用GCC進行編譯執行。解壓縮pkcrack文件,進入src目錄下,執行“make”編譯源代碼,如圖1-48所示。編譯中途可能會出現一些警告、報錯等提示,這些都屬于正常。當編譯成功后,會生成pkcrack文件。

圖1-48 GCC編譯

使用命令“./pkcrack”運行pkcrack文件成功,如圖1-49所示。

圖1-49 運行pkcrack文件

1.2.5 Go運行環境

Go(又稱Golang)語言是Google公司開發的一種靜態強類型、編譯型、并發型、具有垃圾回收功能的編程語言。它是一個開源項目,旨在提高程序員的工作效率。

Go語言具有表現力強、簡潔、干凈和高效的特點。它的并發機制使用戶可以輕松編寫高性能并發程序,充分利用多核和聯網機器,而其新穎的類型系統可以實現靈活和模塊化的程序構建。

Go語言的安裝過程與正常軟件安裝方式一樣,不需要額外的配置。接下來演示在Kali Linux環境下配置Go語言環境。

執行“sudo apt install golang”命令,安裝Go語言,如圖1-50所示。

圖1-50 安裝Go語言

安裝完成后運行Go源代碼文件。以端口隧道工具port_tunnel工具為例(-port_tunnel-main.zip),運行命令“go run port_tunnel.go”,如圖1-51所示。

圖1-51 運行port_tunnel

雖然這里沒有用到第三方庫,但其實Go也擁有很強大的第三方庫生態,讀者可以引用快速開發小工具。以Venom項目為例(-Venom-master.zip),進入該工具所在目錄文件夾內,運行“go get-d-v./...”命令即可自動下載對應的依賴包,如圖1-52所示。

圖1-52 下載依賴包

主站蜘蛛池模板: 磴口县| 苍山县| 剑川县| 喀喇沁旗| 田林县| 曲水县| 玛曲县| 敖汉旗| 利川市| 两当县| 吴江市| 永城市| 聊城市| 那曲县| 丽江市| 九龙城区| 兰西县| 章丘市| 连江县| 松阳县| 宝山区| 法库县| 鞍山市| 莎车县| 德昌县| 柳州市| 西峡县| 永和县| 土默特右旗| 钟祥市| 托克托县| 娄底市| 天津市| 崇义县| 大宁县| 连城县| 银川市| 崇仁县| 安康市| 鹰潭市| 汉寿县|