国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

網(wǎng)絡(luò)安全-kkFileViews任意文件讀取漏洞原理解析

這篇具有很好參考價(jià)值的文章主要介紹了網(wǎng)絡(luò)安全-kkFileViews任意文件讀取漏洞原理解析。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在學(xué)習(xí)的過程中,了解到kkFileView存在任意文件讀取、SSRF、文件上傳漏洞。

為了更深刻的理解其原理,我從git拉取了項(xiàng)目,由于該漏洞在最新版本已經(jīng)修復(fù),所以這只是歷史版本中存在的。

寫這篇文章來提醒自己代碼中容易出問題的地方。

環(huán)境準(zhǔn)備

來到kkFileView官網(wǎng),發(fā)現(xiàn)支持Gitee,直接進(jìn)去用git clone下來

kkfileview歷史漏洞,elasticsearch,大數(shù)據(jù),搜索引擎

git clone https://gitee.com/kekingcn/file-online-preview.git

閑話少敘,直接開始看源代碼。

1.任意文件包含漏洞

根據(jù)其他文章介紹,版本<=3.6.0存在此漏洞。加上這個(gè)連接就可以讀取服務(wù)器上的文件//getCorsFile?urlPath=file:///etc/passwd

git tag  # 查看所有標(biāo)簽
git checkout v3.6.0 # 切換分支

然后用idea打開這個(gè)項(xiàng)目,直接搜索到controller中的getCorsFile接口,源代碼如下。可以看到作者本意是為了解決跨域問題,沒有想到被利用讀取任意文件。

在代碼中也沒有任何的過濾,才會(huì)導(dǎo)致任意文件讀取漏洞。

byte[] bytes = NetUtil.downloadBytes(url.toString());罪魁禍?zhǔn)自谟谶@一行代碼,沒有對文件路徑做出任何限制。

/**
     * 根據(jù)url獲取文件內(nèi)容
     * 當(dāng)pdfjs讀取存在跨域問題的文件時(shí)將通過此接口讀取
     *
     * @param urlPath  url
     * @param response response
     */
    @RequestMapping(value = "/getCorsFile", method = RequestMethod.GET)
    public void getCorsFile(String urlPath, HttpServletResponse response) {
        logger.info("下載跨域pdf文件url:{}", urlPath);
        try {
            URL url = WebUtils.normalizedURL(urlPath);
            byte[] bytes = NetUtil.downloadBytes(url.toString());
            IOUtils.write(bytes, response.getOutputStream());
        } catch (IOException | GalimatiasParseException e) {
            logger.error("下載跨域pdf文件異常,url:{}", urlPath, e);
        }
    }

本地復(fù)現(xiàn)一下,和預(yù)期完全一樣:

kkfileview歷史漏洞,elasticsearch,大數(shù)據(jù),搜索引擎

修復(fù)方法

現(xiàn)在我切換到下一個(gè)版本,來看看作者是如何修復(fù)的。

?沒想到下一個(gè)版本直接v4.0.0了

git checkout v4.0.0

我發(fā)現(xiàn)4.0.0并沒有修復(fù),4.2.0才開始修復(fù)這個(gè)漏洞。代碼如下,可以看到加了非常多的過濾。

最新版本我就不貼出來了,反正有更多的過濾。

@GetMapping("/getCorsFile")
    public void getCorsFile(String urlPath, HttpServletResponse response) throws IOException {
        try {
            urlPath = WebUtils.decodeUrl(urlPath);
        } catch (Exception ex) {
            logger.error(String.format(BASE64_DECODE_ERROR_MSG, urlPath),ex);
            return;
        }
        HttpURLConnection urlcon;
        InputStream inputStream = null;
        if (urlPath.toLowerCase().startsWith("file:") || urlPath.toLowerCase().startsWith("file%3")) {
            logger.info("讀取跨域文件異常,可能存在非法訪問,urlPath:{}", urlPath);
            return;
        }
        logger.info("下載跨域pdf文件url:{}", urlPath);
        if (!urlPath.toLowerCase().startsWith("ftp:")){
            try {
                URL url = WebUtils.normalizedURL(urlPath);
                urlcon=(HttpURLConnection)url.openConnection();
                urlcon.setConnectTimeout(30000);
                urlcon.setReadTimeout(30000);
                urlcon.setInstanceFollowRedirects(false);
                if (urlcon.getResponseCode() == 302 || urlcon.getResponseCode() == 301) {
                    urlcon.disconnect();
                    url =new URL(urlcon.getHeaderField("Location"));
                    urlcon=(HttpURLConnection)url.openConnection();
                }
                if (urlcon.getResponseCode() == 404 || urlcon.getResponseCode() == 403 || urlcon.getResponseCode() == 500 ) {
                    logger.error("讀取跨域文件異常,url:{}", urlPath);
                    return ;
                } else {
                    if(urlPath.contains( ".svg")) {
                        response.setContentType("image/svg+xml");
                    }
                    inputStream=(url).openStream();
                    IOUtils.copy(inputStream, response.getOutputStream());
                    urlcon.disconnect();
                }
            } catch (IOException | GalimatiasParseException e) {
                logger.error("讀取跨域文件異常,url:{}", urlPath);
                return ;
            } finally {
                IOUtils.closeQuietly(inputStream);
            }
        } else {
            try {
                URL url = WebUtils.normalizedURL(urlPath);
                if(urlPath.contains(".svg")) {
                    response.setContentType("image/svg+xml");
                }
                inputStream = (url).openStream();
                IOUtils.copy(inputStream, response.getOutputStream());
            } catch (IOException | GalimatiasParseException e) {
                logger.error("讀取跨域文件異常,url:{}", urlPath);
                return ;
            } finally {
                IOUtils.closeQuietly(inputStream);
            }
        }
    }

引用

https://www.cnblogs.com/xbbth/p/17446987.html文章來源地址http://www.zghlxwxcb.cn/news/detail-847967.html

到了這里,關(guān)于網(wǎng)絡(luò)安全-kkFileViews任意文件讀取漏洞原理解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Goby漏洞更新 | Grafana 網(wǎng)絡(luò)應(yīng)用程序平臺 welcome 任意文件讀取漏洞(CVE-2021-43798)

    Goby漏洞更新 | Grafana 網(wǎng)絡(luò)應(yīng)用程序平臺 welcome 任意文件讀取漏洞(CVE-2021-43798)

    Grafana是一個(gè)跨平臺、開源的數(shù)據(jù)可視化網(wǎng)絡(luò)應(yīng)用程序平臺。用戶配置連接的數(shù)據(jù)源之后,Grafana可以在網(wǎng)絡(luò)瀏覽器里顯示數(shù)據(jù)圖表和警告。未授權(quán)的攻擊者利用該漏洞,能夠獲取服務(wù)器敏感文件。 Grafana可以在網(wǎng)絡(luò)瀏覽器里顯示數(shù)據(jù)圖表和警告。未授權(quán)的攻擊者利用該漏洞,能

    2023年04月09日
    瀏覽(20)
  • 世邦 IP網(wǎng)絡(luò)對講廣播系統(tǒng) getjson.php接口存在任意文件讀取漏洞

    世邦 IP網(wǎng)絡(luò)對講廣播系統(tǒng) getjson.php接口存在任意文件讀取漏洞

    產(chǎn)品簡介 SPON世邦I(lǐng)P網(wǎng)絡(luò)對講廣播系統(tǒng)是一種先進(jìn)的通信解決方案,旨在提供高效的網(wǎng)絡(luò)對講和廣播功能。 漏洞概述 SPON世邦I(lǐng)P網(wǎng)絡(luò)對講廣播系統(tǒng)getjson.php接口處存在任意文件讀取漏洞,未經(jīng)身份驗(yàn)證的攻擊者可利用此漏洞讀取敏感文件。 指紋識別 fofa: 漏洞利用 poc: 修復(fù)建議

    2024年02月03日
    瀏覽(25)
  • 【網(wǎng)絡(luò)安全】文件包含漏洞解析

    【網(wǎng)絡(luò)安全】文件包含漏洞解析

    博主昵稱:跳樓梯企鵝 博主主頁面鏈接: 博主主頁傳送門 博主專欄頁面連接: 專欄傳送門--網(wǎng)路安全技術(shù) 創(chuàng)作初心:本博客的初心為與技術(shù)朋友們相互交流,每個(gè)人的技術(shù)都存在短板,博主也是一樣,虛心求教,希望各位技術(shù)友給予指導(dǎo)。 博主座右銘:發(fā)現(xiàn)光,追隨光,

    2024年02月01日
    瀏覽(27)
  • 世邦通信SPON IP網(wǎng)絡(luò)對講廣播系統(tǒng)rj_get_token.php 任意文件讀取漏洞

    世邦通信SPON IP網(wǎng)絡(luò)對講廣播系統(tǒng)rj_get_token.php 任意文件讀取漏洞

    產(chǎn)品介紹 世邦通信SPON IP網(wǎng)絡(luò)對講廣播系統(tǒng)采用領(lǐng)先的IPAudio?技術(shù),將音頻信號以數(shù)據(jù)包形式在局域網(wǎng)和廣域網(wǎng)上進(jìn)行傳送,是一套純數(shù)字傳輸系統(tǒng)。 漏洞描述 spon IP網(wǎng)絡(luò)對講廣播系統(tǒng)rj_get_token.php存在任意文件讀取漏洞,攻擊者可通過該漏洞在服務(wù)器端讀取任意敏感文件。 資產(chǎn)

    2024年01月25日
    瀏覽(41)
  • 網(wǎng)絡(luò)安全-pikachu之文件上傳漏洞2

    網(wǎng)絡(luò)安全-pikachu之文件上傳漏洞2

    進(jìn)入到第二個(gè)文件上傳漏洞,發(fā)現(xiàn)名字是MIME type,并且查看前端源代碼沒發(fā)現(xiàn)限制,所以是后段,盲猜通過抓包就可以繞過后段限制。 先知道MIME type是什么,通過查找資料發(fā)現(xiàn)是:Content-Type是返回消息中非常重要的內(nèi)容,表示后面的文檔屬于什么MIME類型。Content-Type: [type]/[

    2024年02月21日
    瀏覽(16)
  • Web漏洞-任意文件讀取漏洞

    任意文件讀取漏洞 原理 任意文件讀取是屬于文件操作漏洞的一種,通過提交專門設(shè)計(jì)的輸入,攻擊者就可以在被訪問的文件系統(tǒng)中讀取或?qū)懭肴我鈨?nèi)容,往往能夠使攻擊者從服務(wù)器上獲取敏感文件,正常讀取的文件沒有經(jīng)過校驗(yàn)或者校驗(yàn)不嚴(yán)格,用戶可以控制這個(gè)變量或者

    2024年02月13日
    瀏覽(27)
  • 網(wǎng)絡(luò)安全進(jìn)階學(xué)習(xí)第七課——文件包含漏洞

    網(wǎng)絡(luò)安全進(jìn)階學(xué)習(xí)第七課——文件包含漏洞

    開發(fā)人員通常會(huì)把可重復(fù)使用的函數(shù)寫到單個(gè)文件中,在 使用某些函數(shù) 時(shí), 直接調(diào)用此文件 ,而無需再次編寫,這種調(diào)用文件的過程一般被稱為包含。 為了使代碼更加靈活,通常會(huì)將被包含的文件設(shè)置為 變量 ,用來進(jìn)行動(dòng)態(tài)調(diào)用,但正是由于這種靈活性,從而導(dǎo)致客戶端

    2024年02月15日
    瀏覽(31)
  • 網(wǎng)絡(luò)安全-IIS短文件名枚舉漏洞

    網(wǎng)絡(luò)安全-IIS短文件名枚舉漏洞

    系統(tǒng)存在IIS短文件名枚舉漏洞。該漏洞會(huì)泄露部分服務(wù)器敏感文件及目錄名,如后臺地址、備份文件等 IIS-ShortName-Scanner下載鏈接:https://pan.baidu.com/s/1yxK_goT5XJYc3yVcGUCDxw?pwd=5lcq 提取碼:5lcq python版本的需要安裝python27環(huán)境:https://pan.baidu.com/s/1yxK_goT5XJYc3yVcGUCDxw 提取碼:h2or java版

    2024年02月11日
    瀏覽(23)
  • 網(wǎng)絡(luò)安全進(jìn)階學(xué)習(xí)第五課——文件上傳漏洞

    網(wǎng)絡(luò)安全進(jìn)階學(xué)習(xí)第五課——文件上傳漏洞

    大部分的網(wǎng)站和應(yīng)用系統(tǒng)都有上傳功能,如用戶頭像上傳,圖片上傳,文檔上傳等。 由于對上傳文件 未作過濾 或 過濾機(jī)制不嚴(yán)(文件后綴或類型) ,導(dǎo)致惡意用戶可以上傳 腳本文件 ,通過上傳文件可以達(dá)到控制網(wǎng)站權(quán)限的目的。 攻擊者可獲得網(wǎng)站控制權(quán)限; 查看、修改

    2024年02月06日
    瀏覽(24)
  • 【網(wǎng)絡(luò)安全】文件上傳漏洞及中國蟻劍安裝

    【網(wǎng)絡(luò)安全】文件上傳漏洞及中國蟻劍安裝

    文件上傳漏洞是指由于程序員未對上傳的文件進(jìn)行嚴(yán)格的驗(yàn)證和過濾,而導(dǎo)致的用戶可以越過其本身權(quán)限向服務(wù)器上上傳可執(zhí)行的動(dòng)態(tài)腳本文件。如常見的頭像上傳,圖片上傳,oa 辦公文件上傳,媒體上傳,允許用戶上傳文件,如果過濾不嚴(yán)格,惡意用戶利用文件上傳漏洞,

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包