日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python漏洞扫描器编写_漏洞扫描器开发与设计的一点感悟

發布時間:2024/8/1 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python漏洞扫描器编写_漏洞扫描器开发与设计的一点感悟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

活著的意義……是在你快死的瞬間劃過你腦海的那些事啊……

關于廣度優先原則

即再批量漏掃的時候,如果對網址又相同的網址請求,可以采用基于網址優先循環,即

http://www.langzi.fun/admin.php

http://www.123456.cn/admin.php

http://www.1111.com/admin.php

http://www.la.cc/admin.php

即基于網址循環,這樣不僅可以減少目標服務器壓力,不至于把目標掃死,還能隱藏一些身份。

關于超鏈接獲取

這是很深的感悟,即你的漏洞大部分都存在網址參數中,比如xss,sql注入,命令執行,任意文件包含,目錄遍歷等等,那么獲取提升漏掃效率就要從下面兩點開始:

1. 獲取更加多更加深層的網址

2. 提高掃描驗證的效率

關于sql注入掃描,我采用的是直接拉sqlmap過來驗證,效率還是可以保證的,還有一些關于服務器層的,我都是直接調用nmap的腳本批量實現,雖然我自己也寫了好幾十種服務器,web層的未授權訪問漏洞驗證工具,但是個人終究還是比不上專業工具。

關于url的深度,除了從頁面提取有效連接之外,還有更加深層的,我的想法是通過selenium+mitmproxy實現,我一開始是想使用requests實現,畢竟節省內存資源。后來在準備安全巡航項目時,想到還能通過puppeteer進行網頁爬行獲取連接。后來看到nmask的文章,利用chrome_remote_interface實現程序化、自動化Web安全測試學到了新姿勢。

并且selenium本身就是專業的測試工具,自然能挖掘到更多深層的url,我本來想通過分析selenium的日志來獲取網頁的深層url請求和鏈接,但是這樣比較慢,吃內存大,于是采用mitmproxy中間人代理,獲取所有的深層url,然后通過算法獲取到有效的深層url。

漏洞庫整理

條件允許的話,可以把一些同種類型的漏洞檢測方式寫在每個單獨的文件夾,方便調用。Github

關于自動化生成報表

使用python操作word自然可以,但是感覺生成的結果不太美觀,可以做一些優化,生成圖表或者添加頁眉,格式化等等。

當然如果不需要再編輯可以再轉換成pdf文件。獲取截圖使用pillow,但是這個庫轉換成exe后,截圖后保存只能保存為png格式的圖片,勿忘。

更新安全巡航0.97版本時候,初衷是為了簡單上手,掛機掃洞的原則,所以一切都配置好,生成的報表文件都是固定寫好,后續再更新的話,讓用戶自己寫模板自然是不可能也不現實,可以自己定義好幾套模板,提供一個選擇模板的接口即可。

關于數據存儲

一開始我都是使用記事本存儲數據,一來是方便,二來是數據量不大,但是漏掃總共會涉及到超大數據量。

所以建議使用數據庫,個人推薦mysql或者redis。數據庫一開始一定要做好構架設計,這個非常非常重要,幾乎占你漏掃全部的30%核心,一定要有可讀性,方便拓展。

如果數據量大了,并發很大,并且你非常有錢擁有很多服務器可以做分布式(偷偷流下了羨慕的眼淚),可以使用mysql+redis做數據存儲。

拓展漏洞功能

一些小白剛開始學會寫漏掃的時候,看到別人有什么好東西就像加進去,然后發現數據庫結構不行,代碼也要重構,然后東改西改,最后自己都看不懂代碼的真面目了。

一定要做好漏掃的結構設計,分好類,比如服務器端的,web層的,中間件層的存儲不同的數據庫結構,怎么樣才能方便拓展,這些都要提前想好,但是像我這種人只能靠經驗慢慢到磨礪了。

系統性構架

不同掃描對象,使用檢測方式不一樣,這里指的是批量掃描,即對于一些特定目錄掃描,可以基于廣度優先原則。

減少對方服務器壓力并且能防止ban ip,但是這也就意味著,你這個模塊需要接受的參數為100個url,但是掃描注入的時候,接受的參數可能是只能是一個url,這里就會出現調度沖突,解決方法有很多,比如分文件處理,每個漏掃模塊必須完全獨立,然后在數據庫中做好結構設計,這一塊實在是太大太深奧,我也是自己摸索著學習。

軟件工程設計

個人野生菌,習慣獨自打仗,所以很多軟件都是自己做產品,然后構架代碼結構,嘗試開發,最后不斷測試,更新修復代碼,這里最重要的就是軟件的結構和變量的命名,建議是對功能做獨立分塊,高內聚低耦合。

變量命名方式

個人建議是駝峰式命名,名字不宜太長,簡短但是又能直觀的展示變量或者函數名的作用。

模式借用

即你在某個程序中,實現了一個很騷的方法,比如我之前的yolandan掃描器的核心就是掛機無限掃描,雖然時間過去很久,現在回頭看代碼發現寫的很垃圾,不過里面核心還是值得推薦,由此出現無限url采集,無限cms識別采集等等,并且將來加載到安全巡航實現全自動掛機刷洞生成報表

不在勞累情況下編碼

很多時候為了實現一個功能,折騰到凌晨三四點,越寫越亂看著就頭大,這種情況下需要好好休息,讓頭腦冷靜下來后,仔細思考就會發現很多問題迎刃而解。

調用第三方漏掃

他山之石,可以攻玉。比如SQL注入,模板的注入,如果自己不是很熟或者沒有精力去維護一個種類的漏洞資源庫的話,不妨直接使用第三方,直接調用nmap,sqlmap,awvs進行漏掃,然后對結果做一個接口維護清洗數據后保存到數據庫。

使用第三方功能必然會讓軟件工程失去主動性和自由性,所以要考慮漏洞種類,數量,掃描策略等。

不要急于動手

當有了一個比較好的靈感,開始構架的時候,不要過度著急,構架完畢也不要馬上動手。

因為很多時候,你不可能一次性完成完美的構架設計,肯定在某些地方有缺陷,當時又想不到。但是過上小半天或者一晚上又有要補充的地方。

靈感與知識來源

多上烏云漏洞庫看看,每次看到別人提交的漏洞,需要思考如何才能使用工具實現自動批量化。

其次是漏洞復現,在復現的過程總了解漏洞產生的原因和如何驗證。

心態良好

這個因人而異,當看到別人寫出了大規模全方便易拓展的漏掃,心里又是羨慕又是焦慮,這種心態不行滴~要好好告誡自己:做人不要太攀比,踏踏實實做自己~

只要不死,慢慢學,要相信你終究會成為別人眼里的技術大牛的,最后的加油送給正在努力路上的你。

總結

以上是生活随笔為你收集整理的python漏洞扫描器编写_漏洞扫描器开发与设计的一点感悟的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。