Jump to content

0x00 前言在之前的文章介紹了Fortigate識別與版本探測的方法,在提取出頁面特徵後,可根據特徵對應到具體版本。為了找到特徵與具體版本的對應關係,這里首要解決的問題是下載固件。

本文將要介紹通過程序實現自動下載固件的方法,分享腳本開發細節。

0x01 簡介本文將要介紹以下內容:

實現原理

實現細節

開源代碼

0x02 實現原理通過Burp Suite分析下載固件的數據格式,進而編寫程序實現自動下載

1.用戶認證使用Cookie作為憑據,格式示例:

微信截图_20230609173002.png

2.下載流程訪問固件下載頁面,如下圖

下载.png

點擊固件對應的HTTPS即可下載固件

通過Burp Suite分析數據包內容,具體流程如下:

訪問頁面https://support.fortinet.com/Download/FirmwareImages.aspx,發送的數據包如下圖

下载 (1).png

其中,ctl04作為變量,不同固件對應的值不同

返回結果實例如下圖

下载 (2).png

返回結果中為實際的下載文件地址

0x03 實現細節這里以7.2.4的下載為例,在程序實現上需要額外考慮以下細節:

1.文件下載對於返回結果需要作簡單的處理,解析後並下載的代碼實例:

微信截图_20230609173629.png

2.需要獲得文件名與下載鏈接的對應關係實際上為文件名同變量ctl的對應關係

訪問上級頁面,抓包如下圖

下载 (3).png

返回結果如下圖

下载 (4).png

從頁面中能夠獲得文件名同變量ctl的對應關係

這裡使用正則匹配,格式化輸出的代碼實例:

11.png

注:

在使用print函數時,\r指定回到行起始位置,flush=True表示刷新輸出

3.加入下載進度條為了便於掌握下載進度,需要加入下載的進度條

參考代碼:https://www.cnblogs.com/Old-Kang/articles/15271067.html

實例代碼:

12.png輸出實例:

微信截图_20230609174024.png

4.下載判斷當下載很多文件時,如果網絡中斷,需要從中斷處的文件名重新下載

這裡加入指定下載位置作為用戶輸入,實例代碼:

13.png

0x04 小結本文介紹了通過程序下載Fortigate固件的方法,後續可對特徵進行提取。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...