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

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞

這篇具有很好參考價(jià)值的文章主要介紹了Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言:

?墮落了三個(gè)月,現(xiàn)在因?yàn)楸徽覍?shí)習(xí)而困擾,著實(shí)自己能力不足,從今天開始 每天沉淀一點(diǎn)點(diǎn) ,準(zhǔn)備秋招?加油

注意:

本文章參考qax的網(wǎng)絡(luò)安全java代碼審計(jì),記錄自己的學(xué)習(xí)過(guò)程,還希望各位博主 師傅 大佬 勿噴,還希望大家指出錯(cuò)誤

SSRF漏洞?

SSRF(Server-side Request Forge, 服務(wù)端請(qǐng)求偽造)。
由攻擊者構(gòu)造的攻擊鏈接傳給服務(wù)端執(zhí)行造成的漏洞,一般用來(lái)在外網(wǎng)探測(cè)或攻擊內(nèi)網(wǎng)服務(wù)。

危害:

1.獲取內(nèi)網(wǎng)主機(jī)、端口、banner信息

2.對(duì)內(nèi)網(wǎng)的應(yīng)用程序 進(jìn)行攻擊,例如Redis、jboos

3.file等偽協(xié)議讀取文件

4.造成內(nèi)網(wǎng)程序的溢出

SSRF審計(jì)函數(shù)?

SSRF漏洞一般位于遠(yuǎn)程圖片加載與下載、圖片或文章收藏功能、URL分享、通過(guò)URL在線翻譯、轉(zhuǎn)碼等功能點(diǎn)處。當(dāng)然,SSRF是由發(fā)起網(wǎng)絡(luò)請(qǐng)求的方法造成。代碼審計(jì)時(shí)需要關(guān)注的發(fā)起HTTP請(qǐng)求的類及函數(shù),部分如下:

HttpURLConnection. getInputStream
URLConnection. getInputStream
Request.Get. execute
Request.Post. execute
URL.openStream
ImageIO.read
OkHttpClient.newCall.execute
HttpClients. execute
HttpClient.execute
……

Java里面SSRF支持的協(xié)議:

https,https,file,ftp等?

所以使得JAVA并不能像PHP中一樣使用gopher?協(xié)議來(lái)拓展攻擊面,gopher 協(xié)議在jdk8 中就被移除了

gopher協(xié)議在SSRF中使用可以看下面這篇文章

gopher 協(xié)議在SSRF 中的一些利用

?我們直接進(jìn)入Webgoat的靶場(chǎng)進(jìn)行測(cè)試

點(diǎn)擊第二關(guān)得到

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審

根據(jù)提示我們輸入 jerry

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審?

這時(shí)候就說(shuō)明 傳入的參數(shù)可控,產(chǎn)生了SSRF漏洞

我們看一下源代碼

@RestController
@AssignmentHints({"ssrf.hint1", "ssrf.hint2"})
public class SSRFTask1 extends AssignmentEndpoint {

  @PostMapping("/SSRF/task1")
  @ResponseBody
  public AttackResult completed(@RequestParam String url) {
    return stealTheCheese(url);
  }

  protected AttackResult stealTheCheese(String url) {
    try {
      StringBuilder html = new StringBuilder();

      if (url.matches("images/tom\\.png")) {
        html.append(
            "<img class=\"image\" alt=\"Tom\" src=\"images/tom.png\" width=\"25%\""
                + " height=\"25%\">");
        return failed(this).feedback("ssrf.tom").output(html.toString()).build();
      } else if (url.matches("images/jerry\\.png")) {
        html.append(
            "<img class=\"image\" alt=\"Jerry\" src=\"images/jerry.png\" width=\"25%\""
                + " height=\"25%\">");
        return success(this).feedback("ssrf.success").output(html.toString()).build();
      } else {
        html.append("<img class=\"image\" alt=\"Silly Cat\" src=\"images/cat.jpg\">");
        return failed(this).feedback("ssrf.failure").output(html.toString()).build();
      }
    } catch (Exception e) {
      e.printStackTrace();
      return failed(this).output(e.getMessage()).build();
    }
  }
}

主要看下面幾行代碼

public AttackResult completed(@RequestParam String url) {
    return stealTheCheese(url);
  }
//?completed()?方法使用?@PostMapping?注解標(biāo)記,表示它處理HTTP POST請(qǐng)求,并且映射到路徑 "/SSRF/task1"。該方法接受一個(gè)名為 "url" 的請(qǐng)求參數(shù),類型為字符串。

?意思就是接受url的參數(shù) 并映射到到路徑 "/SSRF/task1

然后看下一句

 protected AttackResult stealTheCheese(String url) {
    try {
      StringBuilder html = new StringBuilder();
//stealTheCheese()?方法是一個(gè)受保護(hù)的方法,用于處理傳入的URL并返回相應(yīng)的結(jié)果。它接受一個(gè)名為 "url" 的字符串參數(shù)。

方法邏輯:stealTheCheese()?方法首先創(chuàng)建了一個(gè)?StringBuilder?對(duì)象?html,用于構(gòu)建HTML響應(yīng)。

就是很明顯沒(méi)有對(duì)這個(gè)url進(jìn)行過(guò)濾處理等,然后?就直接進(jìn)入下面的url匹配,

? ? 這段代碼是一個(gè)簡(jiǎn)單的SSRF攻擊任務(wù)處理器。它接受一個(gè)URL作為輸入,并根據(jù)URL的不同返回不同的HTML響應(yīng)。然而,代碼中存在一些潛在的安全風(fēng)險(xiǎn),因?yàn)樗鼪](méi)有對(duì)傳入的URL進(jìn)行充分的驗(yàn)證和過(guò)濾,可能導(dǎo)致安全漏洞,如SSRF攻擊。

我們接著看下一關(guān)

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審

我們先點(diǎn)擊看看會(huì)是啥樣

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審?我們還是根據(jù)提示進(jìn)行輸入

url=http://ifconfig.pro

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審?驗(yàn)證成功

Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞,JAVA代碼安全審計(jì),java,代碼復(fù)審?

說(shuō)明url參數(shù)可控,可以通過(guò)惡意語(yǔ)句進(jìn)行對(duì)內(nèi)網(wǎng)主機(jī)信息的獲取?

我們分析源代碼

@RestController
@AssignmentHints({"ssrf.hint3"})
public class SSRFTask2 extends AssignmentEndpoint {

  @PostMapping("/SSRF/task2")
  @ResponseBody
  public AttackResult completed(@RequestParam String url) {
    return furBall(url);
  }

  protected AttackResult furBall(String url) {
    if (url.matches("http://ifconfig\\.pro")) {
      String html;
      try (InputStream in = new URL(url).openStream()) {
        html =
            new String(in.readAllBytes(), StandardCharsets.UTF_8)
                .replaceAll("\n", "<br>"); // Otherwise the \n gets escaped in the response
      } catch (MalformedURLException e) {
        return getFailedResult(e.getMessage());
      } catch (IOException e) {
        // in case the external site is down, the test and lesson should still be ok
        html =
            "<html><body>Although the http://ifconfig.pro site is down, you still managed to solve"
                + " this exercise the right way!</body></html>";
      }
      return success(this).feedback("ssrf.success").output(html).build();
    }
    var html = "<img class=\"image\" alt=\"image post\" src=\"images/cat.jpg\">";
    return getFailedResult(html);
  }

  private AttackResult getFailedResult(String errorMsg) {
    return failed(this).feedback("ssrf.failure").output(errorMsg).build();
  }
}

?咱們主要關(guān)注下面兩行代碼

public AttackResult completed(@RequestParam String url) {
    return furBall(url);
  }completed() 方法使用 @PostMapping 注解標(biāo)記,表示它處理HTTP POST請(qǐng)求,并且映射到路徑 "/SSRF/task2"。該方法接受一個(gè)名為 "url" 的請(qǐng)求參數(shù),類型為字符串。

  protected AttackResult furBall(String url) {

//furBall() 方法是一個(gè)受保護(hù)的方法,用于處理傳入的URL并返回相應(yīng)的結(jié)果。它接受一個(gè)名為 "url" 的字符串參數(shù)。

下面就是常規(guī)的正則匹配,總體而言,這段代碼是另一個(gè)簡(jiǎn)單的SSRF攻擊任務(wù)處理器。它接受一個(gè)URL作為輸入,并嘗試訪問(wèn)該URL獲取HTML內(nèi)容,并根據(jù)結(jié)果返回相應(yīng)的響應(yīng)。如果訪問(wèn)成功,則返回包含HTML內(nèi)容的成功響應(yīng);如果訪問(wèn)失敗,則返回一個(gè)包含特定錯(cuò)誤消息的失敗響應(yīng)。

具體的JAVA中 SSRF漏洞可以訪問(wèn)

https://www.freebuf.com/vuls/293473.html

SSRF修復(fù)?

1,過(guò)濾返回信息,驗(yàn)證遠(yuǎn)程服務(wù)器對(duì)請(qǐng)求的響應(yīng)是比較容易的方法。如果web應(yīng)用是去獲取某一種類型的文件。那么在把返回結(jié)果展示給用戶之前先驗(yàn)證返回的信息是否符合標(biāo)準(zhǔn)。

2, 統(tǒng)一錯(cuò)誤信息,避免用戶可以根據(jù)錯(cuò)誤信息來(lái)判斷遠(yuǎn)端服務(wù)器的端口狀態(tài)。

3,限制請(qǐng)求的端口為http常用的端口,比如,80,443,8080,8090。

4,黑名單內(nèi)網(wǎng)ip,(正確判斷內(nèi)網(wǎng)IP,正確獲取host)

5,禁用不需要的協(xié)議。僅僅允許http和https請(qǐng)求。可以防止類似于file:///,gopher://,ftp:// 等引起的問(wèn)題。

6.正確處理302跳轉(zhuǎn)?

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-840282.html

?

到了這里,關(guān)于Java代碼審計(jì)安全篇-SSRF(服務(wù)端請(qǐng)求偽造)漏洞的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • CSRF(跨站請(qǐng)求偽造)和SSRF(服務(wù)端請(qǐng)求偽造)漏洞復(fù)現(xiàn):風(fēng)險(xiǎn)與防護(hù)方法

    這篇文章旨在用于網(wǎng)絡(luò)安全學(xué)習(xí),請(qǐng)勿進(jìn)行任何非法行為,否則后果自負(fù)。? 環(huán)境準(zhǔn)備 示例: 假設(shè)用戶在銀行網(wǎng)站A上登錄并保持會(huì)話活動(dòng),同時(shí)他也在瀏覽其他網(wǎng)站。攻擊者在一個(gè)不可信任的網(wǎng)站B上創(chuàng)建了一個(gè)惡意鏈接,當(dāng)用戶點(diǎn)擊該鏈接時(shí),會(huì)自動(dòng)向銀行網(wǎng)站A發(fā)送一個(gè)

    2024年02月10日
    瀏覽(99)
  • Web漏洞之SSRF(服務(wù)器端請(qǐng)求偽造)

    服務(wù)器會(huì)根據(jù)用戶提交的URL 發(fā)送一個(gè)HTTP 請(qǐng)求。使用用戶指定的URL,Web 應(yīng)用可以獲取圖片或者文件資源等。典型的例子是百度識(shí)圖功能。 如果沒(méi)有對(duì)用戶提交URL 和遠(yuǎn)端服務(wù)器所返回的信息做合適的驗(yàn)證或過(guò)濾,就有可能存在“請(qǐng)求偽造”的缺陷?!罢?qǐng)求偽造”,顧名思義,

    2024年02月04日
    瀏覽(28)
  • 【burpsuite安全練兵場(chǎng)-服務(wù)端9】服務(wù)端請(qǐng)求偽造SSRF漏洞-7個(gè)實(shí)驗(yàn)(全)

    【burpsuite安全練兵場(chǎng)-服務(wù)端9】服務(wù)端請(qǐng)求偽造SSRF漏洞-7個(gè)實(shí)驗(yàn)(全)

    ?? 博主:網(wǎng)絡(luò)安全領(lǐng)域狂熱愛好者(承諾在CSDN永久無(wú)償分享文章)。 殊榮:CSDN網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,2022年雙十一業(yè)務(wù)安全保衛(wèi)戰(zhàn)-某廠第一名,某廠特邀數(shù)字業(yè)務(wù)安全研究員,edusrc高白帽,vulfocus、攻防世界等平臺(tái)排名100+、高校漏洞證書、cnvd原創(chuàng)漏洞證書等。 擅長(zhǎng):

    2024年02月02日
    瀏覽(27)
  • SSRF 服務(wù)器端請(qǐng)求偽造

    SSRF 服務(wù)器端請(qǐng)求偽造

    SSRF(Server-Side Request Forgery:服務(wù)器端請(qǐng)求偽造) 其形成的原因大都是由于服務(wù)端 提供了從其他服務(wù)器應(yīng)用獲取數(shù)據(jù)的功能 ,但又沒(méi)有對(duì)目標(biāo)地址做嚴(yán)格過(guò)濾與限制,導(dǎo)致攻擊者可以傳入任意的地址來(lái)讓后端服務(wù)器對(duì)其發(fā)起請(qǐng)求,并返回對(duì)該目標(biāo)地址請(qǐng)求的數(shù)據(jù) 數(shù)據(jù)流:攻擊者----

    2024年02月12日
    瀏覽(25)
  • PHP代碼審計(jì)8—SSRF 漏洞

    PHP代碼審計(jì)8—SSRF 漏洞

    1、漏洞原理與防御方法 1) 漏洞原理 SSRF的形成大多是由于服務(wù)端提供了從其他服務(wù)器應(yīng)用獲取數(shù)據(jù)的功能,并且沒(méi)有對(duì)目標(biāo)地址做過(guò)濾與限制。例如,黑客操作服務(wù)端從指定URL地址獲取網(wǎng)頁(yè)文本內(nèi)容,加載指定地址的圖片等,利用的是服務(wù)端的請(qǐng)求偽造。 2)防御方法 過(guò)濾返

    2024年02月09日
    瀏覽(21)
  • OWASP之SSRF服務(wù)器偽造請(qǐng)求

    OWASP之SSRF服務(wù)器偽造請(qǐng)求

    SSRF(Server-Side Request Forgery:服務(wù)器端請(qǐng)求偽造) 是指攻擊者能夠從易受攻擊 的Web應(yīng)用程序發(fā)送精心設(shè)計(jì)的請(qǐng)求的對(duì)其他網(wǎng)站進(jìn)行攻擊。 SSRF攻擊的目標(biāo)是從外網(wǎng)無(wú)法訪問(wèn)的內(nèi)部系統(tǒng)。利用一個(gè)可以發(fā)起網(wǎng)絡(luò)請(qǐng)求的服務(wù),當(dāng)做跳板來(lái)攻擊其它服務(wù)。簡(jiǎn)單來(lái)說(shuō)就是:A讓B幫忙訪問(wèn)C

    2024年02月10日
    瀏覽(19)
  • 【CTF】SSRF服務(wù)器端請(qǐng)求偽造

    【CTF】SSRF服務(wù)器端請(qǐng)求偽造

    漏洞危害: 掃描內(nèi)網(wǎng)開放端口服務(wù) 向內(nèi)網(wǎng)中的任意主機(jī)的任意端口發(fā)送payload來(lái)攻擊內(nèi)網(wǎng)服務(wù) 向內(nèi)網(wǎng)發(fā)動(dòng)DOS攻擊 攻擊內(nèi)網(wǎng)的Web應(yīng)用(如直接SQL注入、XSS攻擊等) 利用file、gopher、dict協(xié)議來(lái)讀取本地文件、執(zhí)行命令等 漏洞原理: 從pikachu中來(lái)看: 例子: 然后,使用百度翻譯翻

    2024年02月04日
    瀏覽(24)
  • API安全——SSRF服務(wù)端請(qǐng)求偽造的原理以及防范

    SSRF全稱Server-Side Request Forgery,服務(wù)端請(qǐng)求偽造。 在最新的2023 OWASP中API 安全的Top10榜單中,ssrf排第7。 我們?cè)陂_發(fā)過(guò)程中,通常使用API 獲取遠(yuǎn)程時(shí)出現(xiàn)服務(wù)器端請(qǐng)求偽造 (SSRF) 缺陷 資源,而不驗(yàn)證用戶提供的 URL。它使攻擊者能夠 強(qiáng)制應(yīng)用程序?qū)⒕木幹频恼?qǐng)求發(fā)送到意外

    2024年02月12日
    瀏覽(25)
  • SSRF服務(wù)器請(qǐng)求偽造原理和pikachu靶場(chǎng)實(shí)驗(yàn)

    SSRF服務(wù)器請(qǐng)求偽造原理和pikachu靶場(chǎng)實(shí)驗(yàn)

    ★★ 免責(zé)聲明★★ 文章中涉及的程序(方法)可能帶有攻擊性,僅供安全研究與學(xué)習(xí)之用,讀者將信息做其他用途,由Ta承擔(dān)全部法律及連帶責(zé)任,文章作者不承擔(dān)任何法律及連帶責(zé)任。 1、SSRF簡(jiǎn)介 SSRF全稱:Server-Side Request Forgery,服務(wù)器端請(qǐng)求偽造,是指攻擊者能夠從易受攻

    2024年03月13日
    瀏覽(26)
  • 網(wǎng)絡(luò)安全進(jìn)階學(xué)習(xí)第四課——SSRF服務(wù)器請(qǐng)求偽造

    網(wǎng)絡(luò)安全進(jìn)階學(xué)習(xí)第四課——SSRF服務(wù)器請(qǐng)求偽造

    SSRF(Server-Side Request Forgery:服務(wù)器端請(qǐng)求偽造) 是指攻擊者能夠從易受攻擊的Web應(yīng)用程序發(fā)送精心設(shè)計(jì)的請(qǐng)求的對(duì)其他網(wǎng)站進(jìn)行攻擊。 一般情況下, SSRF攻擊的目標(biāo)是從外網(wǎng)無(wú)法訪問(wèn)的內(nèi)部系統(tǒng),也就是內(nèi)網(wǎng)。 利用一個(gè)可以發(fā)起網(wǎng)絡(luò)請(qǐng)求的服務(wù),當(dāng)做跳板來(lái)攻擊其它服務(wù) SSRF 形

    2024年02月11日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包