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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

渗透工具开发——XSS平台的命令行实现

發(fā)布時(shí)間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 渗透工具开发——XSS平台的命令行实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

【網(wǎng)安學(xué)習(xí)資料】

通過(guò)XSS平臺(tái),能夠便于對(duì)XSS漏洞進(jìn)行測(cè)試,獲得重要信息。目前,可供使用的在線XSS平臺(tái)有很多,也可以嘗試自己搭建XSS平臺(tái)。 但是,如果測(cè)試目標(biāo)無(wú)法出網(wǎng),我們就需要在內(nèi)網(wǎng)搭建一個(gè)輕量化的XSS平臺(tái),既要安裝方便,又要支持跨平臺(tái)。

我暫時(shí)沒(méi)有找到合適的開(kāi)源工具,于是打算使用Python編寫(xiě)一個(gè)命令行工具,提供XSS平臺(tái)的功能

簡(jiǎn)介

【網(wǎng)安學(xué)習(xí)資料】

本文將要介紹以下內(nèi)容:

?設(shè)計(jì)思路

?實(shí)現(xiàn)細(xì)節(jié)

?開(kāi)源代碼

設(shè)計(jì)思路

【網(wǎng)安學(xué)習(xí)資料】

參照XSS平臺(tái),命令行工具需要提供以下功能:

1.創(chuàng)建HTTPS服務(wù)器,提供WEB服務(wù)

2.區(qū)分不同的數(shù)據(jù),提取出關(guān)鍵內(nèi)容并保存

3.功能模塊化,便于二次開(kāi)發(fā)

實(shí)現(xiàn)細(xì)節(jié)

1.創(chuàng)建HTTPS服務(wù)器,提供WEB服務(wù)

首先需要?jiǎng)?chuàng)建證書(shū),這里可以使用openssl,命令如下:

生成證書(shū)文件https_svr_key.pem

創(chuàng)建HTTPS服務(wù)器的Python3測(cè)試代碼如下:

以上代碼將會(huì)創(chuàng)建一個(gè)支持HTTPS協(xié)議的WEB服務(wù)器,功能同python -m SimpleHTTPServer 8000類(lèi)似

2.區(qū)分不同的數(shù)據(jù),提取出關(guān)鍵內(nèi)容并保存

需要自定義處理模塊RequestHandler,處理GET包和POST包

處理GET包的代碼如下:

其中,print(self.headers)用來(lái)輸出GET請(qǐng)求的Header內(nèi)容,可用于識(shí)別用戶(hù)瀏覽器

為了獲取用戶(hù)Cookie,這里采用自定義格式,如果GET請(qǐng)求的地址帶有cookie字符,將請(qǐng)求內(nèi)容保存成文件,存儲(chǔ)獲得的用戶(hù)Cookie

處理POST包的代碼如下:

以上代碼會(huì)對(duì)POST包統(tǒng)一回復(fù)文本內(nèi)容Success,狀態(tài)碼為200

對(duì)POST請(qǐng)求的地址進(jìn)行判斷,分別對(duì)應(yīng)以下三個(gè)功能:

(1)保存用戶(hù)屏幕截圖

請(qǐng)求地址為/screen

從POST請(qǐng)求的參數(shù)中提取圖像數(shù)據(jù),作Base64解碼后保存

(2)控制用戶(hù)向指定地址發(fā)送http數(shù)據(jù)包,保存返回結(jié)果

請(qǐng)求地址為/data

從POST請(qǐng)求的參數(shù)中提取數(shù)據(jù)并保存

(3)默認(rèn)功能

命令行輸出POST請(qǐng)求的參數(shù)

注:

以上三個(gè)功能在提取數(shù)據(jù)內(nèi)容時(shí),需要使用urllib.parse.unquote()進(jìn)行解碼

3.功能模塊化,便于二次開(kāi)發(fā)

默認(rèn)XSS平臺(tái)的訪問(wèn)地址為:https://< xss platform url >/index.js

創(chuàng)建HTTPS服務(wù)器后,只需要編輯Python腳本同級(jí)目錄下的index.js即可

這里介紹以下兩個(gè)js腳本實(shí)現(xiàn)的功能:

(1)獲取用戶(hù)Cookie

讀取用戶(hù)Cookie可使用document.cookie

在回傳Cookie數(shù)據(jù)時(shí),為了避免跨域問(wèn)題,可使用Image對(duì)象,示例代碼如下:

使用Image對(duì)象,只能發(fā)送GET請(qǐng)求,無(wú)法獲得響應(yīng)內(nèi)容,只能通過(guò)onerror和onload事件判斷是否響應(yīng)

(2)通過(guò)js發(fā)送HTTP請(qǐng)求

HTTP請(qǐng)求支持GET和POST,還需要區(qū)分同步和異步方法

對(duì)于同步方法,調(diào)用一旦開(kāi)始,調(diào)用者必須等到方法調(diào)用返回后才能繼續(xù)后續(xù)的行為。為了將請(qǐng)求結(jié)果回傳至服務(wù)器,可以通過(guò)return獲得數(shù)據(jù)包的返回結(jié)果后再進(jìn)行回傳

對(duì)于異步方法,調(diào)用一旦開(kāi)始,方法調(diào)用就會(huì)立即返回。為了將請(qǐng)求結(jié)果回傳至服務(wù)器,這里可以通過(guò)回調(diào)函數(shù)callback實(shí)現(xiàn)

回調(diào)函數(shù)callback的簡(jiǎn)單理解:函數(shù)可以作為參數(shù)在另一個(gè)函數(shù)中被調(diào)用

例如如下代碼:

執(zhí)行代碼后將在控制臺(tái)輸出1

綜上,向指定url發(fā)送GET數(shù)據(jù)包,將請(qǐng)求結(jié)果回傳至服務(wù)器可使用兩種方法:

方法1:同步方法

方法2:異步方法+回調(diào)函數(shù)

注:

發(fā)送請(qǐng)求時(shí)加了參數(shù)"?t=" + Math.random()是為了防止接收到服務(wù)器的緩存頁(yè)面

對(duì)于Chrome瀏覽器,在發(fā)送HTTP請(qǐng)求時(shí),如果進(jìn)行跨域訪問(wèn),Chrome會(huì)提示請(qǐng)求被CORS協(xié)議阻止,但不影響數(shù)據(jù)的發(fā)送和接收

開(kāi)源代碼

【網(wǎng)安學(xué)習(xí)資料】

完整代碼已開(kāi)源,地址如下:

https://github.com/3gstudent/pyXSSPlatform

pyXSSPlatform可直接在命令行下運(yùn)行,支持以下三個(gè)功能:

?GetCookie,獲得用戶(hù)Cookie,保存為.txt文件

?CaptureScreen,截取用戶(hù)屏幕,保存為.png文件

?GET/POST,控制用戶(hù)向指定地址發(fā)送http數(shù)據(jù)包,結(jié)果保存為.html文件

使用方法:

(1)通過(guò)openssl生成自簽名證書(shū),命令示例:

(2)編輯文件index.js

填入要加載的js代碼,代碼模板可參考Payload_Template中的文件

(3)啟動(dòng)WEB服務(wù)器,命令示例:

此時(shí),XSS平臺(tái)的啟動(dòng)地址如下:

https://192.168.1.1/index.js

可隨時(shí)修改index.js控制用戶(hù)執(zhí)行不同的功能

小結(jié)

【網(wǎng)安學(xué)習(xí)資料】

本文介紹了通過(guò)Python搭建HTTPS服務(wù)器并在命令行實(shí)現(xiàn)XSS平臺(tái)的方法,開(kāi)源工具pyXSSPlatform,操作方便,支持跨平臺(tái)運(yùn)行,可進(jìn)行二次開(kāi)發(fā)。

【網(wǎng)絡(luò)安全學(xué)習(xí)資料-免費(fèi)分享】

總結(jié)

以上是生活随笔為你收集整理的渗透工具开发——XSS平台的命令行实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。