docker復現nginx錯誤配置漏洞

目錄

一、nginx環境搭建

1.1搭建步驟

?二、docker復現Nginx配置漏洞

?2.1安裝docker

?2.2復現過程

2.1CRLF(carriage return/line feed)注入漏洞

?2.2.目錄穿越


一、nginx環境搭建

1.1搭建步驟

1.先創建Nginx的目錄并進入(命令如下)

mkdir /soft && mkdir /soft/nginx/
cd /soft/nginx/

2.下載Nginx的安裝包,可以通過FTP工具上傳離線環境包,也可通過wget命令在線獲取安裝包:(命令如下)

wget https://nginx.org/download/nginx-1.21.6.tar.gz

3.解壓Nginx的壓縮包:(命令如下)

tar -xvzf nginx-1.21.6.tar.gz

4.下載并安裝Nginx所需的依賴庫和包:(命令如下)

yum install --downloadonly --downloaddir=/soft/nginx/ gcc-c++
yum install --downloadonly --downloaddir=/soft/nginx/ pcre pcre-devel4
yum install --downloadonly --downloaddir=/soft/nginx/ zlib zlib-devel
yum install --downloadonly --downloaddir=/soft/nginx/ openssl openssl-devel

??

?5.通過rpm命令安裝所有依賴包:

rpm -ivh --nodeps *.rpm

??

?6.進入解壓后的nginx目錄,安裝其他依賴庫,然后執行Nginx的配置腳本,為后續的安裝提前配置好環境,默認位于/usr/local/nginx/目錄下(可自定義目錄):

cd nginx-1.21.6
yum install pcre-devel
yum install zlib-devel
./configure --prefix=/soft/nginx/

?7.編譯并安裝Nginx

make && make install

8.修改安裝后生成的conf目錄下的nginx.conf配置文件:(使用vim命令編輯)

server_name改成自己的ip???

?二、docker復現Nginx配置漏洞

?2.1安裝docker

?1.這里以centos7為例

先更新一下?yum 包(這個命令不是必須執行的,看個人情況,后面出現不兼容的情況的話就必須update了)

注意? 
yum -y update:升級所有包同時也升級軟件和系統內核;? 
yum -y upgrade:只升級所有包,不升級軟件和系統內核

2.安裝需要的軟件包, yum-util 提供yum-config-manager功能,另兩個是devicemapper驅動依賴

yum install -y yum-utils device-mapper-persistent-data lvm2

3.設置 yum 源

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央倉庫)yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里倉庫)

4.選擇docker版本并安裝
(1)查看可用版本有哪些

yum list docker-ce --showduplicates | sort -r

(2)選擇一個版本并安裝即可:yum install docker-ce-版本號

?2.2復現過程

2.1CRLF(carriage return/line feed)注入漏洞

這個漏洞產生的原因是請求重定向的錯誤配置,導致在url中輸入回車換行符可以控制http響應頭部

比如:

location / {return 302 https://$host$uri;
}

原本的目的是為了讓http的請求跳轉到https上,但是$uri參數是不包含查詢參數的,于是當我們在url中輸入%0d%0a時,$uri參數不會將回車換行符傳入,這就導致用戶可以控制http響應頭部訪問http://ip:8080,使用bp抓包,構造反射性xss

%0d%0a%0d%0a<img src=1 onerror=alert(1)>

?

?修復方法:把$url改為$request-uri,這個參數會傳入完整的原始url請求,也就是說用戶輸入的所有內容都會被當做參數傳入Location字段

?

?2.2.目錄穿越

?這個漏洞產生的原因是alias別名配置錯誤,導致在url中拼接目錄獲取敏感數據

location /files {alias /home/;}

?原本的目的是想用戶輸入/files會跳轉到/home目錄下,但是/files并沒有以"/"結尾,所以我們可以輸入/files../,此時/files匹配上了,替換為/home/..,造成目錄穿越

?修復方法:將/files改為/files/,這樣就算輸入/files../也不會匹配上/files/

?再次嘗試訪問就不會出現上面的情況

?

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

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

相關文章

Android Framework底層原理之WMS的啟動流程

一 概述 今天&#xff0c;我們介紹 WindowManagerService&#xff08;后續簡稱 WMS&#xff09;的啟動流程&#xff0c;WMS 是 Android 系統中&#xff0c;負責窗口顯示的的服務。在 Android 中它也起著承上啟下的作用。 如下圖&#xff0c;就是《深入理解 Android》書籍中的…

033_小馳私房菜_Qcom平臺8系列-Dump Jpeg Jpeg Exif信息修改

全網最具價值的Android Camera開發系列資料~ 作者:8年Android Camera開發,從Camera app一直做到Hal和驅動~ 歡迎訂閱,相信能擴展你的知識面,提升個人能力~ 平臺:高通8系列 jpeg相關代碼邏輯在camx/src/swl/jpeg/ 路徑下 一、Dump Jpeg 有時我們想把hal這邊拍照的jpe…

【C++】STL初識

1.STL的基本概念 2.vector存放內置數據類型 #include <iostream> using namespace std; #include <vector> #include <algorithm>void MyPrint(int val) {cout << val << endl; }void test01() {//創建vector容器對象&#xff0c;并且通過模板參…

Harbor企業鏡像倉庫部署(本地)

簡述&#xff1a; Docker 官方鏡像倉庫是用于管理公共鏡像的地方&#xff0c;大家可以在上面找到想要的鏡像&#xff0c;也可以把自己的鏡像推送上去。但是有時候服務器無法訪問互聯網&#xff0c;或者不希望將自己的鏡像放到互聯網上&#xff0c;那么就需要用到 Docker Regis…

越南的區塊鏈和NFT市場調研

越南的區塊鏈和NFT市場調研 基本介紹 https://zh.wikipedia.org/wiki/%E8%B6%8A%E5%8D%97 語言文字&#xff1a; 越南語&#xff0c; 文字以國語字&#xff08;越南羅馬字&#xff09;為主&#xff0c;漢喃文&#xff08;漢字&#xff09; 貨幣&#xff1a;越南盾 人口(2022…

Leetcode-每日一題【劍指 Offer 15. 二進制中1的個數】

題目 編寫一個函數&#xff0c;輸入是一個無符號整數&#xff08;以二進制串的形式&#xff09;&#xff0c;返回其二進制表達式中數字位數為 1 的個數&#xff08;也被稱為 漢明重量).&#xff09;。 提示&#xff1a; 請注意&#xff0c;在某些語言&#xff08;如 Java&…

如何安全地移動WSL 2 到另一個驅動器

當您擁有小型 SSD 并且適用于 Linux 的 Windows 子系統 (WSL) 的大小呈指數增長時&#xff0c;這真的很痛苦。沒有簡單的方法將 WSL 安裝移動到另一個驅動器。在這篇博客中&#xff0c;我將討論如何通過小步解決這個問題。 1.打開具有管理員訪問權限的 PowerShell或命令提示符…

【Docker】Windows下docker環境搭建及解決使用非官方終端時的連接問題

目錄 背景 Windows Docker 安裝 安裝docker toolbox cmder 解決cmder 連接失敗問題 資料獲取方法 背景 時常有容器方面的需求&#xff0c;經常構建調試導致測試環境有些混亂&#xff0c;所以想在本地構建一套環境&#xff0c;鏡像調試穩定后再放到測試環境中。 Windows …

多線程與高并發--------線程池

線程池 一、什么是線程池 在開發中&#xff0c;為了提升效率的操作&#xff0c;我們需要將一些業務采用多線程的方式去執行。 比如有一個比較大的任務&#xff0c;可以將任務分成幾塊&#xff0c;分別交給幾個線程去執行&#xff0c;最終做一個匯總就可以了。 比如做業務操…

Windows電腦快速搭建FTP服務教程

FTP介紹 FTP&#xff08;File Transfer Protocol&#xff09;是一種用于在計算機網絡上進行文件傳輸的標準協議。它提供了一種可靠的、基于客戶端-服務器模型的方式來將文件從一個主機傳輸到另一個主機。在本文中&#xff0c;我將詳細介紹FTP的工作原理、數據傳輸模式以及常見…

數據結構【第4章】——棧與隊列

隊列是只允許在一端進行插入操作、而在另-端進行刪除操作的線性表。 棧 棧與隊列&#xff1a;棧是限定僅在表尾進行插入和刪除操作的線性表。 我們把允許插入和刪除的一端稱為棧頂&#xff08;top&#xff09;&#xff0c;另一端稱為棧底&#xff08;bottom&#xff09;&…

VBA技術資料MF42:VBA_從Excel中上面的單元格復制公式

【分享成果&#xff0c;隨喜正能量】唯有夢想才配讓你不安&#xff0c;唯有行動才能解除你的不安.繩鋸木斷&#xff0c;水滴石穿。也許你現在做的事情很小&#xff0c;只要你能日積月累的堅持下去&#xff0c;才會發現意義非凡。所謂的成功&#xff0c;便是別人失敗的時候你還在…

微服務與Nacos概述-2

微服務間消息傳遞 微服務是一種軟件開發架構&#xff0c;它將一個大型應用程序拆分為一系列小型、獨立的服務。每個服務都可以獨立開發、部署和擴展&#xff0c;并通過輕量級的通信機制進行交互。 應用開發 common模塊中包含服務提供者和服務消費者共享的內容 provider模塊是…

10-1_Qt 5.9 C++開發指南_Data Visualization實現數據三維顯示

Data Visualization 是 Qt 提供的用于數據三維顯示的模塊。在 Qt 5.7 以前只有商業版才有此模塊&#xff0c;而從Qt5.7 開始此模塊在社區版本里也可以免費使用了。Data Visualization 用于數據的三維顯示&#xff0c;包括三維柱狀圖、三維空間散點、三維曲面等。Data Visualiza…

鑒源實驗室丨汽車網絡安全攻擊實例解析(二)

作者 | 田錚 上海控安可信軟件創新研究院項目經理 來源 | 鑒源實驗室 社群 | 添加微信號“TICPShanghai”加入“上海控安51fusa安全社區” 引言&#xff1a;汽車信息安全事件頻發使得汽車行業安全態勢愈發緊張。這些汽車網絡安全攻擊事件&#xff0c;輕則給企業產品發布及產品…

高效數據傳輸:輕松上手將Kafka實時數據接入CnosDB

本篇我們將主要介紹如何在 Ubuntu 22.04.2 LTS 環境下&#xff0c;實現一個KafkaTelegrafCnosDB 同步實時獲取流數據并存儲的方案。在本次操作中&#xff0c;CnosDB 版本是2.3.0&#xff0c;Kafka 版本是2.5.1&#xff0c;Telegraf 版本是1.27.1 隨著越來越多的應用程序架構轉…

無涯教程-Perl - redo函數

描述 此函數將重新啟動當前循環,而不會強制判斷控制語句。塊中不再執行任何語句。如果存在繼續塊,將不會執行。如果指定了LABEL,則在LABEL標識的循環開始時重新開始執行。 語法 以下是此函數的簡單語法- redo LABELredo返回值 此函數不返回任何值。 例 以下是顯示其基本…

用友時空KSOA SQL注入漏洞復現(HW0day)

0x01 產品簡介 用友時空KSOA是建立在SOA理念指導下研發的新一代產品&#xff0c;是根據流通企業最前沿的I需求推出的統一的IT基礎架構&#xff0c;它可以讓流通企業各個時期建立的IT系統之間彼此輕松對話&#xff0c;幫助流通企業保護原有的IT投資&#xff0c;簡化IT管理&#…

以商業大數據技術助力數據合規流通體系建立,合合信息參編《數據經紀從業人員評價規范》團標

經國務院批準&#xff0c;由北京市人民政府、國家發展和改革委員會、工業和信息化部、商務部、國家互聯網信息辦公室、中國科學技術協會共同主辦的2023 全球數字經濟大會于近期隆重召開。由數交數據經紀&#xff08;深圳&#xff09;有限公司為主要發起單位&#xff0c;合合信息…

深度剖析堆棧指針

為什么打印root的值與&root->value的值是一樣的呢 測試結果&#xff1a; *號一個變量到底取出來的是什么&#xff1f; 以前我寫過一句話&#xff0c;就是說&#xff0c;如果看到一個*變量&#xff0c;那就是直逼這個變量所保存的內存地址&#xff0c;然后取出里面保存的…