[BJDCTF2020]The mystery of ip1

提示

  1. ssti模板注入
  2. head頭x-forwarded-for

每一次做題的最開始流程都大致因該是

  1. 信息收集
  2. 找可以操控的地方

查看hint頁面的源代碼又發現它提示說

####你知道為什么會知道你的ip嗎

查看flag頁面

從剛才給我的提示以及他這里顯示的我的ip,大概找到了我可操作的可控點

既然它會讀取我訪問它的ip并顯示,那么我可以通過修改我的ip以達到執行命令的效果

這里抓包使用x-forwarded-for驗證

從它返回的頁面來看是可以利用的

現在就是判斷這里應該怎樣去利用

從經驗上來判斷這里很像是ssti模板注入

嘗試驗證一下

這里傳入了${7*7}頁面返回了執行過后的結果說明這里存在ssti注入

!!!!如果報錯或者不執行也不一定是錯的,最后會講解

現在判斷是那種模板

這里傳入a{*comment*}b后回顯ab,說明這里是smarty模板

應為smarty是php的模板所以直接嘗試rce

{system('ls')}

這里回顯出flag.php文件,直接cat

這里并沒有回顯

猜測這里只是一個障眼法

看一下跟目錄

出現flag,這里應該就沒問題了

獲得flag

SSTI模板注入

SSTI就是服務器端模板注入

當前使用的一些框架,比如python的flask,php的tp,java的spring等一般都采用成熟的的MVC的模式,用戶的輸入先進入Controller控制器,然后根據請求類型和請求的指令發送給對應Model業務模型進行業務邏輯判斷,數據庫存取,最后把結果返回給View視圖層,經過模板渲染展示給用戶。

漏洞觸發的原因未經任何處理就將其作為 Web 應用模板內容的一部分,模板引擎在進行目標編譯渲染的過程中,執行了用戶插入的可以破壞模板的語句,因而可能導致了敏感信息泄露、代碼執行、GetShell 等問題。其影響范圍主要取決于模版引擎的復雜性。

大致意思呢就是:

沒有將數據區于語句分開,導致他們被當成一個整體了

$output = $twig->render("Dear {first_name},", array("first_name" => $user.first_name) );
以上并不會早場ssti漏洞注入,應為執行區域和數據區域不在同一個地方
$output = $twig->render("Dear " . $_GET['name']);
這里呢就會造成ssti漏洞,這里接受數據后就直接執行了,可能會方便用戶使用,但是也同時會被別有用心的人構造payload來注入

可通過一下方式來判斷是什么模板從而進行下一步的滲透

輸入{{7*'7'}}返回49的是jinja2模板。返回7個7的是twig模板

!!!!!!!!!!最后,ssti主要的還是知道他是那種模板,知道了以后去網上搜怎么注入,怎么查版本信息,就能獲得更過注入點。

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

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

相關文章

【Vue】創建第一個實例

步驟&#xff1a; 1.創建容器 2.引包 3.創建實例 4.添加配置項 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--準備容器 --> <di…

【C語言:深入理解指針二】

文章目錄 1. 二級指針2. 指針數組3. 字符指針變量4. 數組指針變量5. 二維數組傳參的本質6. 函數指針變量7. 函數指針數組8. 轉移表9. 回調函數10. qsort函數的使用與模擬實現 1. 二級指針 我們知道&#xff0c;指針變量也是變量&#xff0c;它也有自己的地址&#xff0c;使用什…

【面試】jvm中堆是分配對象存儲的唯一選擇嗎

目錄 一、說明二、逃逸分析2.1 說明2.2 參數設置 一、說明 1.在《深入理解Java虛擬機》中關于Java堆內存有這樣一段描述:隨著JIT編譯期的發展與逃逸分析技術逐漸成熟&#xff0c;棧上分配、標量替換優化技術將會導致一些微妙的變化&#xff0c;所有的對象都分配到堆上也漸漸變得…

牛客 最小公配數 golang版實現

題目請參考: HJ108 求最小公倍數 題解: 在大的數的倍數里面去找最小的能整除另外一個數的數&#xff0c;就是最小公倍數&#xff0c;按照大的來找&#xff0c;循環次數能夠降到很少&#xff0c;提升效率 golang實現: package mainimport ("fmt" )func main() {a : …

CSDN最新最全python+pytest接口自動化(12)-自動化用例編寫思路 (使用pytest編寫一個測試腳本)

經過之前的學習鋪墊&#xff0c;我們嘗試著利用pytest框架編寫一條接口自動化測試用例&#xff0c;來厘清接口自動化用例編寫的思路。 我們在百度搜索天氣查詢&#xff0c;會出現如下圖所示結果&#xff1a; 接下來&#xff0c;我們以該天氣查詢接口為例&#xff0c;編寫接口測…

JVM 之 class文件詳解

目錄 一. 前言 二. class文件結構 2.1. 文件格式 2.2. 魔數與版本號 2.3. 常量池 2.4. 訪問標志 2.5. 類索引、父類索引和接口索引集合 2.6. 字段表集合 2.7. 方法表集合 2.8. 屬性表集合 2.8.1. Code 屬性表 2.8.2. Exceptions 屬性 2.8.3. LineNumberTable 屬性…

R語言數據縮放-1到1

目錄 普通scale -1到1限定范圍scale 普通scale R語言實戰&#xff1a;scale&#xff08;&#xff09;函數 - 知乎 (zhihu.com) scale(x, center TRUE, scale TRUE) 過程&#xff1a; 對每個變量&#xff08;列&#xff09;計算平均值&#xff08;mean&#xff09;和標準…

QT中樣式表常見屬性與顏色的設置與應用

常見樣式表屬性 在Qt中的樣式表(QSS)中,有一些特定的英文單詞和關鍵字用于指定不同的樣式屬性。以下是常見的一些英文單詞和關鍵字: 顏色(Colors): color: 文本顏色 background-color: 背景顏色 border-color: 邊框顏色 字體(Fonts): font: 字體 font-family: 字體…

任意文件下載漏洞(CVE-2021-44983)

簡介 CVE-2021-44983是Taocms內容管理系統中的一個安全漏洞&#xff0c;可以追溯到版本3.0.1。該漏洞主要源于在登錄后臺后&#xff0c;文件管理欄存在任意文件下載漏洞。簡言之&#xff0c;這個漏洞可能讓攻擊者通過特定的請求下載系統中的任意文件&#xff0c;包括但不限于敏…

python3實現grep命令

由于windows上面沒有類似linux上面的grep命令&#xff0c;所以下面的python腳本來代替其能力。 grep.py import argparse import reif __name__ __main__:arg_parser argparse.ArgumentParser()arg_parser.add_argument("grep")arg_parser.add_argument("fil…

圖像導向濾波

導向濾波&#xff08;Guided Filter&#xff09;是一種基于局部線性模型的濾波方法&#xff0c;用于圖像處理中的去噪、圖像增強和邊緣保留等任務。它結合了引導圖像&#xff08;guide image&#xff09;和輸入圖像來實現對輸入圖像的濾波操作。 原理 數學原理&#xff1a; …

文件名稱管理文件:抓關鍵字歸類文件,讓文件管理變得簡單明了

在當今數字時代&#xff0c;每天都要處理大量的文件&#xff0c;無論是文本、圖片、視頻還是其他類型的文件。如何有效地管理這些文件&#xff0c;能夠迅速找到所需的信息&#xff0c;已經成為了一個重要的問題。文件名稱是文件內容的第一反映&#xff0c;也是識別和檢索文件的…

408-數據結構-代碼題

2014 2014 二叉樹&#xff08;鏈式存儲&#xff09; #include<iostream> #include<bits/stdc.h> using namespace std;typedef struct Node{struct Node *left;struct Node *right;int high0;double weight; }node;double sum0;void visit(node *t){int lop0;if…

算法刷題-動態規劃2(繼續)

算法刷題-動態規劃2 珠寶的最高價值下降路徑最小和使用最小花費爬樓梯整數拆分 珠寶的最高價值 題目 大佬思路 多開一行使得代碼更加的簡潔 移動到右側和下側 dp[ i ][ j ]有兩種情況&#xff1a; 第一種是從上面來的禮物最大價值&#xff1a;dp[ i ][ j ] dp[ i - 1 ][ j ]…

【CCF-PTA】第03屆Scratch第02題 -- 計算天數

計算天數 【題目描述】 一年有 365 天還是有 366 天呢&#xff1f;要看這一年是不是閏年。有個計算方法可以幫助我們判斷&#xff0c;那就是閏年能夠除盡 4 但不能除盡 100 或者能夠除盡 400 的年份。如果這一年是閏年&#xff0c;2 月份的天數就是 29 天。小明決定編寫一個程…

排序算法--希爾排序

實現邏輯 ① 先取一個小于n的整數d1作為第一個增量&#xff0c;把文件的全部記錄分成d1個組。 ② 所有距離為d1的倍數的記錄放在同一個組中&#xff0c;在各組內進行直接插入排序。 ③ 取第二個增量d2小于d1重復上述的分組和排序&#xff0c;直至所取的增量dt1(dt小于dt-l小于……

JSP:Servlet

Servlet處理請求過程 B/S請求響應模型 Servlet介紹 JSP是Servlet的一個成功應用&#xff0c;其子集。 JSP頁面負責前臺用戶界面&#xff0c;JavaBean負責后臺數據處理&#xff0c;一般的Web應用采用JSPJavaBean就可以設計得很好了。 JSPServletJavaBean是MVC Servlet的核心…

【實驗筆記】C語言實驗——降價提醒機器人

降價提醒機器人 題目&#xff1a; 小 T 想買一個玩具很久了&#xff0c;但價格有些高&#xff0c;他打算等便宜些再買。但天天盯著購物網站很麻煩&#xff0c;請你幫小 T 寫一個降價提醒機器人&#xff0c;當玩具的當前價格比他設定的價格便宜時發出提醒。 輸入格式&#xf…

人工智能教程(一):基礎知識

目錄 前言 什么是人工智能&#xff1f; 教學環境搭建 向量和矩陣 前言 如果你是關注計算機領域最新趨勢的學生或從業者&#xff0c;你應該聽說過人工智能、數據科學、機器學習、深度學習等術語。作為人工智能系列文章的第一篇&#xff0c;本文將解釋這些術語&#xff0c;并搭…

k8s部署-kuboard安裝(工具kuboard-spary)

Kuboard-Spray Kuboard-Spray 是一款可以在圖形界面引導下完成 Kubernetes 高可用集群離線安裝的工具 配置要求 對于 Kubernetes 初學者&#xff0c;在搭建K8S集群時&#xff0c;推薦在阿里云或騰訊云采購如下配置&#xff1a;&#xff08;您也可以使用自己的虛擬機、私有云等…