dirmap改造計畫

2022-08-30 16:51:09 字數 3551 閱讀 7958

本來昨天是第一天入職了,奈何水土不服,睡不著覺,第一天也就入職領了下東西,然後心久師兄和木雁師兄都給了任務。。釣著魚看了看**。。

根據任務需求,在指定資產中爬取關健字,再爆破生成關鍵字,然後兩關鍵字組合生成關於特點資產的敏感目錄字典掃瞄。

然後我仔細思索了下,自己寫的肯定沒有前人寫的好,根據自己經常用的目錄掃瞄,無非就dirmap.py、dirserach.py、御劍和7k了。

御劍和7k。。感覺有點跟不上時代,然後想著去把dirmap.py和dirsearch.py看完的。。 可是dirsearch.py的**感覺好長好亂。。然後發現dirmap.py

的作者其實也已經借鑑了dirsearch的相關**了,所以就在dirmap.py的基礎上進行改造吧。

banner() 輸出banner

setpaths() 設定字典、輸出和配置檔案的路徑

cmdlineoptions.update(cmdlineparser().__dict__) 獲取引數值並賦值到cmdlineoptions物件

initoptions(cmdlineoptions) 初始化

engineregister(args) 併發引擎模組

bruterregister(args) bruter模組

loadconf() 載入配置檔案

configfileparser()

targetregister(args) 載入目標模組

outputscreen() 顏色顯示

parsetarget(target) 識別目標,轉列表

genip(target) ip 段範圍區間或者掩碼網段位址解析成實際單個ip

run()

initengine() 掃瞄初始化

scan() 協程模式掃瞄

bruter(url) 爆破

inspector(url) 根據404,302,md5判斷記錄404的頁面

scanmodehandler() 掃瞄模式

fuzz_mode fuzz模式 單獨載入

generatesinglefuzzdict() 單字典fuzz

generatemultfuzzdict() 多字典fuzz

dict_mode 字典模式

loadsingledict(conf.dict_mode_load_single_dict) 載入單個字典

loadmultdict(conf.dict_mode_load_mult_dict) 載入多個字典

blast_mode 爆破模式

generateblastdict() 生成純暴力字典,支援斷點續生成

generatelengthdict(length) 生成length長度的字典

crawk_mode 爬蟲模式

header、cookie、ua設定

urlsimilarcheck() 相識url檢測

crawl_mode_dynamic_fuzz 動態爬蟲fuzz

loadsuffix() 新增動態爬蟲字典字尾規則

generatecrawldict(i) 生成動態爬蟲字典

每個函式內的**都跟了一下,最後發現dirmap已經實現了動態爬蟲模式和爆破模式,我需要做的就是把兩模式結合起來,其實最主要的就是generatelengthdict(length)和 generatecrawldict(i)

兩個函式的相關**。

後面經過測試大概寫了個輪子

def generatecrawldict(base_url):

'''@description: 生成動態爬蟲字典

@param

@return:

'''def _splitfilename(filename):

full_filename = filename.rstrip('.')

extension = full_filename.split('.')[-1]

name = '.'.join(full_filename.split('.')[:-1])

return name, extension

url = base_url.split('?')[0].rstrip('/')

if not urllib.parse.urlparse(url).path:

return list()

path = '/'.join(url.split('/')[:-1])

#print(path)

filename = url.split('/')[-1]

#print(filename)

caue = url.split('/')[:-1]

frist_caue = list()

frist_caue.extend(caue)

frist_caue.extend(filename.split('.')[:-1])

frist_caue = [i for i in frist_caue if i != '']

#print(frist_caue)

second_caue = list()

for i in payloads.blast_mode_custom_charset_dict:

for j in frist_caue:

#print(second_caue)

# check if target cms uses route instead of static file

isfile = true if '.' in filename else false

if isfile:

name, extension = _splitfilename(filename)

final_urls = list()

for each in payloads.suffix:

new_filename = path + '/' + each.replace('', filename)

new_frist_caue = list()

for i in frist_caue:

new_sceond_caue = list()

for i in second_caue:

if isfile:

new_filename = new_filename.replace('', name).replace('', extension)

else:

if '' in each or '' in each:

continue

final_urls.extend(frist_caue)

final_urls.extend(second_caue)

final_urls.extend(new_frist_caue)

final_urls.extend(new_sceond_caue)

return final_urls

然後發現很多問題。。:

爬取的靜態相關的名字再去組合會生成太多沒有的目錄,根本沒什麼價值;

爆破的長度,還有爆破的字串組合的敏感字元也太少。

我想的解決辦法是

爭取明天完成這個任務吧。

Sublime Text 改造計畫

之前用了很多年的 intellij idea 這是一款重量級的 ide,功能強大,效率超高,用起來非常爽。缺點就是啟動速度太慢,沒有漂亮的 主題。前端和後端有很大的不同,我不想為了做個小的專案就動用這麼重的工具,於是就把視角瞄向了編輯器。過年期間嘗試了不少編輯器,有 github 家的 atom,當...

智慧型燈改造計畫

安裝整合開發環境arduino,提取碼 ardu esp8266開發板安裝 匯入blinker庫以及其他庫檔案,提取碼 blin,壓縮包解壓縮後放入。選擇com口和wifiunio開發板 編譯 上傳 匯入blinker介面配置,並在進行除錯,介面配置如下 dashboard actions trig...

Robi改造計畫 開篇

robi從11月開始在大陸賣了,目前出到6期。設計真的很讚,但是我已經了解到robi的軟體不夠,不是我們喜歡的辣麼有趣。我決定改造它 用3塊更強的arm a9或者a10處理器,加攝像頭和感測器。為了這個俺剛學了乙個月的python 這語言真心友好,所以開乙個 robi改造計畫 robi transf...