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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

fofa自动化爬虫脚本更新+详解

發布時間:2023/12/2 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fofa自动化爬虫脚本更新+详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fofa自動化爬蟲腳本更新+詳解

起因

最近要用到fofa爬蟲,為什么要用爬蟲不用api,問就是窮,想起來之前寫過一個相關的腳本:Fofa-python-腳本,是很久以前寫的了,之前寫的時候有點問題,昨天重新修改了一下,記錄一下整個過程

關于fofa

在其他大佬博客上摘抄的FOFA簡介及使用教程

FOFA 是白帽匯推出的一款網絡空間搜索引擎,它通過進行網絡空間測繪,能夠幫助研究人員或者企業迅速進行網絡資產匹配,例如進行漏洞影響范圍分析、應用分布統計、應用流行度等。
FOFA 搜索引擎檢索到的內容主要是服務器,數據庫,某個網站管理后臺,路由器,交換機,公共ip的打印機,網絡攝像頭,門禁系統,Web服務 ……
FOFA 這類搜索引擎又有另一個名字:網絡空間測繪系統。—— 它們就像是現實生活中的衛星地圖那樣,一點點勾勒出公共網絡空間的樣子,每一個網站、每一臺公共環境下的服務器……當一個高危漏洞爆發,FOFA系統便能向衛星定位地址一樣,通過特征迅速找到全網的脆弱設備。
網站:https://fofa.so/ FOFA不僅提供了在線搜索還提供了FOFA Pro客戶端版本

簡單來說就是跟國外的shodan,國內的ZoomEye一樣是網絡空間測繪工具

流程

登陸 -> 輸入關鍵字 -> 爬取 -> 保存

登陸

登陸流程比較復雜,為了簡單暴力直接使用Authorization,每次使用時需要在 config.py 文件中修改 Authorization值

此外config.py里面還存儲了一些全局的配置信息

輸入關鍵字

在頁面輸入我們需要查找的關鍵字,例如 aaa

跳轉網頁為:https://fofa.so/result?q=aaa&qbase64=YWFh&file=&file=

可以看出來qbase64是關鍵字base64的編碼,經過測試只需要這兩個關鍵字即可進行搜索

https://fofa.so/result?page=&qbase64=

page為頁碼,qbase64為關鍵字的base64編碼

關鍵字轉base64編碼關鍵代碼如下

searchbs64 = quote(str(base64.b64encode(config.SearchKEY.encode()), encoding='utf-8'))

使用quote對URL進行編碼,防止出現錯誤

爬取

使用正則表達式顯示該關鍵字在fofa中一共有多少頁

pagenum = re.findall('>(\d*)</a> <a class="next_page" rel="next"', html)print("該關鍵字存在頁碼: "+pagenum)

先讓用戶確定爬取的開始和結束頁碼

config.StartPage=input("請輸入開始頁碼:\n")config.StopPage=input("請輸入終止頁碼: \n")

使用xpath提取頁面url

# urllist=tree.xpath('//span[@class="aSpan"]//@href')# urllist = [value.strip('\n').strip(' ').strip('\n') for value in urllist if len(value.strip('\n').strip(' ').strip('\n')) != 0]pattern = re.compile('"link":"(.*?)",')urllist = re.findall(pattern, rep.text)print(urllist)

保存

保存在 hello_world.txt文件中

doc = open("hello_world.txt", "a+")for i in range(int(config.StartPage),int(pagenum)):print("Now write " + str(i) + " page")rep = requests.get('https://api.fofa.so/v1/search?qbase64=' + searchbs64+"&full=false&pn="+str(i)+"&ps=10", headers=config.headers)# tree = etree.HTML(pageurl.text)# urllist=tree.xpath('//span[@class="aSpan"]//@href')# urllist = [value.strip('\n').strip(' ').strip('\n') for value in urllist if len(value.strip('\n').strip(' ').strip('\n')) != 0]pattern = re.compile('"link":"(.*?)",')urllist = re.findall(pattern, rep.text)print(urllist)for j in urllist:print(j)doc.write(j+"\n")if i==int(config.StopPage):breaktime.sleep(config.TimeSleep)doc.close()

完成

END

全部代碼放在 github上:https://github.com/Cl0udG0d/Fofa-script


EOF

總結

以上是生活随笔為你收集整理的fofa自动化爬虫脚本更新+详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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