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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

接口文档下的渗透测试(Swagger)

發(fā)布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接口文档下的渗透测试(Swagger) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接口文檔背景

隨著前后端分離架構(gòu)的優(yōu)勢越來越明顯,前后端分離的應(yīng)用場景也越來越廣,如今前后端分離已成為互聯(lián)網(wǎng)項(xiàng)目開發(fā)的業(yè)界標(biāo)準(zhǔn)使用方式,而為了前后端程序員在實(shí)際開發(fā)中能夠有統(tǒng)一的接口文檔去調(diào)試,因此也隨著衍生出了很多API接口文檔以及調(diào)試工具,如swagger、docway、yapi、Web Api HelpPage等。再結(jié)合之前挖掘SRC以及甲方工作中也發(fā)現(xiàn)過多處這種問題,匯總案例,輸出一篇Swagger UI接口文檔下的測試文章。

認(rèn)識Swagger

Swagger是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù),JAVA在金融機(jī)構(gòu)開發(fā)語言的地位一直居高不下,而作為JAVA屆服務(wù)端的大一統(tǒng)框架Spring,便將Swagger規(guī)范納入自身的標(biāo)準(zhǔn),建立了Spring-swagger項(xiàng)目,所以在實(shí)際測試環(huán)境中,基于spring框架的swagger-ui接口展示及調(diào)試文檔頁面最為常見。我們先來看某個Swagger UI頁面,如圖所示,接口中存在查詢用戶信息、上傳文件等多個敏感操作。

在每個接口中也有詳細(xì)的參數(shù)介紹,包括參數(shù)類型等,再也不用去fuzz接口參數(shù)了,直接根據(jù)參數(shù)類型構(gòu)造參數(shù)就完事了~

如何發(fā)現(xiàn)Swagger UI

1.通過js查找在網(wǎng)站的config等關(guān)鍵詞js文件中查找:

2.通過路徑字典爆破以下為搜集到swagger接口常見路徑,親測匹配率很高。

/swagger /api/swagger /swagger/ui /api/swagger/ui /swagger-ui.html /api/swagger-ui.html /user/swagger-ui.html /libs/swaggerui /api/swaggerui /swagger-resources/configuration/ui /swagger-resources/configuration/security

3.根據(jù)swagger組件特征固定title:Swagger UI

從功能找到切入點(diǎn)

在我們找到Swagger UI頁面后,應(yīng)快速瀏覽所展示的接口功能,根據(jù)功能點(diǎn)由高風(fēng)險到低風(fēng)險依次進(jìn)行安全測試。常見的接口安全測試點(diǎn)如下:接口越權(quán)(若接口文檔對應(yīng)的Web應(yīng)用提供注冊功能,可以用低權(quán)限用戶token嘗試水平越權(quán)查詢修改其他用戶信息,或者垂直越權(quán)嘗試進(jìn)行管理員操作)接口SQL注入(針對所有查詢接口)接口未授權(quán)訪問(重點(diǎn)針對管理員模塊,如對用戶的增刪改查)任意文件上傳(針對上傳接口進(jìn)行測試)測試信息泄露(重點(diǎn)針對用戶、訂單等信息查詢接口,以及一些測試數(shù)據(jù)等)。

案例:

1.越權(quán)

如下所示,在某個泄露的Swagger UI頁面中發(fā)現(xiàn)管理員添加用戶模塊以及分配權(quán)限模塊。

這里有個小坑點(diǎn),如果swagger頁面地址不是直接拼接在域名之后,如圖所示,直接請求很容易404。

所以一般需要添加swagger-ui.html之前的URI地址(示例為/api),才可以正常進(jìn)行訪問。

而此處管理員添加用戶接口也存在這種情況,將curl指令拷貝出來,添加上缺失的URI地址,直接測試訪問發(fā)現(xiàn)存在身份認(rèn)證。

但好在此swggaer對應(yīng)的web應(yīng)用提供了注冊功能。嘗試?yán)米缘牡蜋?quán)限用戶cookie去訪問,查看是否可以進(jìn)行垂直越權(quán)操作,將登錄后的cookie添加在curl請求-b參數(shù)中,再去訪問,成功垂直越權(quán)至管理員身份添加用戶。

再利用泄露的權(quán)限管理接口,為用戶成功添加管理員模塊權(quán)限。

2.接口SQL注入

根據(jù)查詢接口的參數(shù)進(jìn)行正常SQL注入即可,這里不再進(jìn)行演示。

3.未授權(quán)訪問

很多開發(fā)為了對接口測試方便,便取消了身份會話認(rèn)證,這也導(dǎo)致了未授權(quán)訪問出現(xiàn)的最為頻繁,想象一下幾十個功能接口光溜溜的躺在你的面前~

最常見的便是未授權(quán)查詢接口,只需要小小的點(diǎn)擊一下Excute,想要的東西便會出來。

4.文件上傳

文件上傳接口大部分均為純接口形式上傳文件,不存在前端校驗(yàn),可直接上傳相應(yīng)測試腳本文件進(jìn)行安全測試。

5.敏感信息泄露

因?yàn)閟wagger ui頁面泄露本身就屬于最大的敏感信息泄露,而相對于接口中的敏感信息泄露,大部分為在模塊中的測試數(shù)據(jù)泄露,而有些測試賬號也會有很大的權(quán)限。

?認(rèn)證限制突破思路

1.Swagger開啟了頁面訪問限制

如圖所示,某個swagger-ui.html頁面添加了登錄認(rèn)證。

除了進(jìn)行弱口令嘗試,還可以直接在swagger-ui.html前一層路徑后添加/v1/api-docs即可訪問接口(v1代表接口迭代版本,可以嘗試v2、v3等可能會有驚喜等著你~)

以json格式查看:

/swagger/v1/swagger.json

2.Swagger開啟了Authorize認(rèn)證

若Swagger在每個接口請求中開啟了嚴(yán)格的Authorize認(rèn)證,即使我們可以獲取所有的接口路徑,但因?yàn)闆]有身份會話,導(dǎo)致接口也無法執(zhí)行成功。

針對于接口開啟Authorize認(rèn)證也不要放棄,我們不要放棄每一個接口,此時更多可以去嘗試上傳/下載文件、修改密碼、登錄等模塊接口,這些接口也是不需要或者身份認(rèn)證最容易出現(xiàn)遺漏的地方,當(dāng)出現(xiàn)一個漏網(wǎng)之魚時,便可以點(diǎn)潰面,拿下接口權(quán)限。

如下在某個swagger頁面中,開啟了Authorize認(rèn)證,但通過查找發(fā)現(xiàn)一處邏輯缺陷,修改用戶賬號密碼時直接根據(jù)用戶賬號便可修改,可通過此缺陷直接重置管理員密碼。

在登錄接口嘗試登錄,發(fā)現(xiàn)可以成功登錄并獲取token。

因?yàn)楫?dāng)前swagger接口文檔開啟了Authorize認(rèn)證,大部分接口無法直接調(diào)試,此時獲得了管理員的token,便可對當(dāng)前swagger文檔中的所有接口進(jìn)行操作。

總結(jié)

不管是挖掘SRC還是日常的滲透測試中,發(fā)掘泄露的接口文檔可以輔助我們更好的進(jìn)行漏洞挖掘,而Swagger UI頁面中一般會包含大量的測試接口,在進(jìn)行上述漏洞總結(jié)點(diǎn)的安全測試時,還可以嘗試組合漏洞的利用,只要心(dan)夠(zi)細(xì)(da),從接口測試到getshell、內(nèi)網(wǎng)漫游也未嘗不可。?

總結(jié)

以上是生活随笔為你收集整理的接口文档下的渗透测试(Swagger)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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