Callback自定義測試

2022-05-04 06:09:11 字數 818 閱讀 4580

概述:在瀏覽器中存在著同源策略,所謂同源是指網域名稱、協議、埠相同。當使用ajax非同步傳輸資料時,非同源網域名稱之間會存在限制。其中有一種解決方法是jsonp(json with padding),基本原理是利用了html裡元素標籤,遠端呼叫json檔案來實現資料傳遞。jsonp 技術中一般使用 callback(**函式)引數來宣告**時所使用的函式名,這裡往往存在安全問題,由於沒有使用白名單的方法進行限制callback的函式名,導致攻擊者可以自定義callback內容,從而觸發xss等漏洞。

測試方法

一、攻擊者在測試前,使用brup suite的爬蟲功能對**進行爬取,篩選出帶有callback或者jsonp引數的請求,對請求響應的content-type進行判斷,如果content-type為text/html,則進行下一步,接著攻擊者對callback引數進行分析,如果callback引數

允許攻擊插入html標籤,則存在漏洞。

二、檢視callback引數是否存在過濾及可控,這時我們需要在callback引數值前追加一些文字類的html標籤,不直接使用script等標籤是避免waf等防護

裝置的檢測。我們這裡使用的html標籤是一級標題標籤。

根據response的內容,我們可以了解到callback引數不存在過濾及可

控。進一步測試發現info引數對response的輸出內容沒有影響,刪除掉info引數,精簡

url。

三、將callback引數更換成帶有惡意行為的html標籤,進行利用(例如

jsop1)

自定義指令碼後門 測試

很簡潔,很容易理解 先搭建乙個web伺服器用來接收資料,指令碼實在其他電腦上執行的,怎麼將 放到其電腦自己思考 shell指令碼 bin bash 將指令碼載入的開機啟動項 starts 安裝指令碼 install install starts rm f 0 echo install success...

如何自定義測試庫

step 1.給自定義庫起名,如mylibrary。操作 在python目錄下 lib site packages 建立資料夾 mylibrary step 2.在 mylibrary 資料夾中新建乙個 version.py 檔案,用於描述自定義測試庫的版本資訊。如下 lang python ver...

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...