免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

代碼審計(jì) | 發(fā)現(xiàn)項(xiàng)目的swagger-ui未授權(quán)訪問(wèn)

:2024年09月06日 進(jìn)擊的HACK
分享到:

經(jīng)常滲透測(cè)試的師傅都知道,在目錄掃描的時(shí)候經(jīng)常能發(fā)現(xiàn)未授權(quán)的swagger-ui.html和api-docs。

聲明:文中所涉及的技術(shù)、思路和工具僅供以安全為目的的學(xué)習(xí)交流使用,任何人不得將其用于非法用途給予盈利等目的,否則后果自行承擔(dān)!

0x01 簡(jiǎn)述

經(jīng)常滲透測(cè)試的師傅都知道,在目錄掃描的時(shí)候經(jīng)常能發(fā)現(xiàn)未授權(quán)的swagger-ui.html和api-docs。

該接口會(huì)清晰的列出項(xiàng)目中存在的api,并貼心的放出需要的參數(shù),方便后續(xù)進(jìn)行未授權(quán)測(cè)試或者構(gòu)造惡意參數(shù)值。

那么這個(gè)api-docs是怎么形成的呢?怎么在白盒審計(jì)階段提前將它扼殺掉,或者開(kāi)發(fā)要怎么修復(fù)這個(gè)呢?

下面將會(huì)詳細(xì)說(shuō)明這個(gè)問(wèn)題。

0x02 項(xiàng)目配置Swagger2

要使用swagger-ui,Java項(xiàng)目需要引入swagger2依賴包。

包括但不限于以下類(lèi)型

io.springfox

springfox-swagger2

2.9.2


io.springfox

springfox-swagger-ui

2.9.2


或者

io.springfox

springfox-boot-starter


io.swagger

swagger-models

1.6.2


它們都有一個(gè)共同點(diǎn),就是包含關(guān)鍵詞swagger,這就可以正則匹配關(guān)鍵詞判斷Java是否使用依賴包。

單純引入依賴是不夠的,項(xiàng)目還需要進(jìn)行如下配置。

創(chuàng)建一個(gè)java文件 Swagger2Configuration

package org.example.configuration;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.RequestHandlerSelectors;

import springfox.documentation.service.ApiInfo;

import springfox.documentation.service.Contact;

import springfox.documentation.spi.DocumentationType;

import springfox.documentation.spring.web.plugins.Docket;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration

@EnableSwagger2

public class Swagger2Configuration {

/**

* 配置 Swagger 2

* 注冊(cè)一個(gè) Bean 屬性

* enable():是否啟用 Swagger,啟用后才能在瀏覽器中進(jìn)行訪問(wèn)

* groupName():用于配置 API 文檔的分組

*/

@Bean

public Docket docket() {

return new Docket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.enable(true) // 是否開(kāi)啟swagger

.groupName("v1")

.select()

// 過(guò)濾路徑

//.paths(PathSelectors.ant())

// 指定掃描的包

.apis(RequestHandlerSelectors.basePackage("org.example.controller"))

.build();

}

private ApiInfo apiInfo() {

/*作者信息*/

Contact contact = new Contact("admin", "https://hello.world", "xxxx@qq.com");

return new ApiInfo(

"Swagger 測(cè)試接口文檔",

"Spring Boot 集成 Swagger 測(cè)試接口文檔",

"v1.0",

"https://hello.world",

contact,

"Apache 2.0",

"http://www.apache.org/licenses/LICENSE-2.0",

new ArrayList()

);

}

}

配置完畢,然后啟動(dòng)項(xiàng)目,未授權(quán)訪問(wèn) http://xxx.com:port/swagger-ui.html#/

http://192.168.23.1:7321/v2/api-docs?group=v1

這就是我們?cè)跐B透過(guò)程遇到的api-docs未授權(quán)訪問(wèn)。

0x03 如何修復(fù)swagger2未授權(quán)訪問(wèn)

Swagger權(quán)限控制 https://blog.csdn.net/qq_38530648/article/details/121715440

配置enable(false)

當(dāng)然還有一種更優(yōu)雅的寫(xiě)法,通過(guò)注解賦值

在application.properties配置true or false

配置false后訪問(wèn)api-docs,swagger已經(jīng)關(guān)閉

如果開(kāi)發(fā)需要使用swagger,可以采用下面的辦法。

配置swagger認(rèn)證

需要引入新的依賴包

com.github.xiaoymin

swagger-bootstrap-ui

1.9.6


在swagger配置類(lèi)上添加注解 @EnableSwaggerBootstrapUI

在appliction.properties中添加如下語(yǔ)句:

swagger.basic.enable=true

swagger.basic.username=admin

swagger.basic.password=admin123

swagger.production=false

swagger2.enabled=true

切記swagger.production 不可設(shè)置為true,否則將屏蔽所有資源

https://blog.csdn.net/luChenH/article/details/96598433

配置完畢再次訪問(wèn)界面

不會(huì)影響正常api的使用

http://192.168.23.1:7321/xtreamvul/

輸入密碼后可以正常使用 admin/admin123

配置開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境的切換

Spring注解@Profile實(shí)現(xiàn)開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境的切換

https://mp.weixin.qq.com/s/9LGjY3oEZPkmQDTjD0QSGw

只要在開(kāi)發(fā)環(huán)境配置 enable的值是false就可以了。

0x04 總結(jié)

在白盒審計(jì)中,我們關(guān)注是否引入swagger的依賴包,關(guān)鍵詞為swagger。

然后看他的swagger配置類(lèi)的enable值是true還是false。

原諒來(lái)源:https://mp.weixin.qq.com/s/2rq_jTN7SyCFHyLNufJSCA

[我要糾錯(cuò)]
文:王振袢&發(fā)表于江蘇
關(guān)鍵詞: 聲明 文中 涉及 技術(shù) 思路

來(lái)源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺(tái),并已注明來(lái)源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)聯(lián)系小編,我們會(huì)及時(shí)審核處理。
聲明:江蘇教育黃頁(yè)對(duì)文中觀點(diǎn)保持中立,對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對(duì)文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。

點(diǎn)個(gè)贊
0
踩一腳
0

您在閱讀:代碼審計(jì) | 發(fā)現(xiàn)項(xiàng)目的swagger-ui未授權(quán)訪問(wèn)

Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺(tái)保留所有權(quán)利

蘇公網(wǎng)安備32010402000125 蘇ICP備14051488號(hào)-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司

南京思必達(dá)教育科技有限公司版權(quán)所有   百度統(tǒng)計(jì)

主站蜘蛛池模板: 18av在线视频| 久草视频手机在线观看 | 我想看一级黄色大片 | 亚洲欧美精品 | 欧美成人午夜免费完成 | jizzjizz中国护士第一次 | 五月激情久久 | 成人短视频视频在线观看网站 | www视频网站| 最近中文2019字幕第二页 | 伊人中文字幕在线 | 毛片免费观看网址 | 黄色三级视频在线观看 | 香蕉视视频 | 激情婷婷成人亚洲综合 | 日韩午夜在线视频不卡片 | 男女污污无遮挡免费观看 | 国产大片线上免费观看 | 二区三区在线 | 午夜影院免费观看视频 | 中文字幕在线成人免费看 | 男人透女人超爽视频免费 | 很黄很色的男女无遮挡动态图 | 91精品国产免费网站 | 欧美性受一区二区三区 | 中文字幕成人免费高清在线视频 | 在线免费午夜视频 | 日韩欧美在线一级一中文字暮 | 制服第一页 | 91亚洲国产 | 国产 欧美 在线 | 无码一区二区三区视频 | 欧美同性videos可免费 | 国产亚洲综合成人91精品 | 日本免费一二区视频 | 8x成人永久在线观看视频 | 精品女同一区二区三区免费播放 | 久久天天躁夜夜躁狠狠 | 国产成人一区二区三区在线播放 | 天天综合天天看夜夜添狠狠玩 | 国产成人精品一区二区三区 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產(chǎn)品享最低成本,有需要聯(lián)系,
  • 卡爾蔡司鏡片優(yōu)惠店,鏡片價(jià)格低
  • 蘋(píng)果原裝手機(jī)殼