nss刷題(3)

1、[SWPUCTF 2021 新生賽]include

根據提示傳入一個file后顯示了關于flag的代碼

這是一個文件包含,考慮php偽協議,構造payload:

?file=php://filter/read=convert.base64-encode/resource=flag.php

2、[SWPUCTF 2021 新生賽]Do_you_know_http

頁面提示特定的browser,用bp抓包后改包。

得到了只能在本地訪問但ip為183.224.81.121,添加X-Forwarded-for:字段,并將ip改為1本地ip:127.0.0.1

頁面任然提示相同信息,但是發現有了一個新的跳轉頁面,嘗試訪問

得到flag

3、[HCTF 2018]Warmup

在body部分中,發現了一個source.php文件,嘗試訪問,

strpos(string,find,start)函數:

返回字符串在另一字符串中第一次出現的位置,如果沒有找到字符串則返回 FALSE。注意: 字符串位置是從 0 開始,不是從 1 開始。

參數描述
string必需。規定要搜索的字符串。
find必需。規定要查找的字符串。
start可選。規定在何處開始搜索。

mb_substr(str,start,length,encoding) 函數:

返回字符串的一部分,對于substr() 函數,它只針對英文字符, 而mb_substr()對于中文也適用。

參數描述
str必需。從該 string 中提取子字符串。
start必需。規定在字符串的何處開始。
  • 正數 - 在字符串的指定位置開始
  • 負數 - 在從字符串結尾的指定位置開始
  • 0 - 在字符串中的第一個字符處開始
length可選。規定要返回的字符串長度。默認是直到字符串的結尾。
  • 正數 - 從 start 參數所在的位置返回
  • 負數 - 從字符串末端返回
encoding可選。字符編碼。如果省略,則使用內部字符編碼。

in_array(search,array,type)函數:

搜索數組中是否存在指定的值,找到值則返回 TRUE,否則返回 FALSE。

參數描述
search必需。規定要在數組搜索的值。
array必需。規定要搜索的數組。
type可選。如果設置該參數為 true,則檢查搜索的數據與數組的值的類型是否相同。

開始代碼審計:

上段函數定義了一個名為emmm的類,在該類中有一個靜態方法checkFile用于檢查要包含的文件是否在白名單中,白名單是一個關聯數組$whitelist,其中包含了允許包含的文件的鍵值對。在代碼中,允許包含的文件有"source"=>"source.php"和"hint"=>"hint.php"。檢查傳入的$page參數是否為字符串類型,如果不是或者未設置,將輸出"you can't see it"并返回false。

對$page參數進行一系列處理:首先使用mb_strpos函數找到$page中第一個問號的位置,然后使用mb_substr函數將問號之前的部分作為$_page進行處理。

$_page進行URL解碼,并重復之前的處理步驟,如果$_page在白名單中存在,返回true。

如果上述條件都不滿足,則輸出"you can't see it"并返回false。檢查$_REQUEST['file']是否存在且為字符串類型,并調用emmm::checkFile方法進行檢查。如果返回值為true,則通過include語句包含$_REQUEST['file']指定的文件并終止程序執行,否則輸出一個圖片標簽。

開始解題:訪問一下hint.php的文件,

提示說flag位于ffffllllaaaagggg中,但是ffffllllaaaagggg不在白名單范圍內,想要訪問ffffllllaaaagggg,就必須讓最后一段的if語句的三條檢測都為true。checkFile函數會檢查用戶傳入的參數($page)是否匹配白名單列表$whitelist。所以要包含白名單中的文件(source.php或hint.php)。并且checkFile函數是通過傳入的參數 $page 來進行的文件檢查,而不是直接從 URL 中獲取參數。所以我們需要以參數形式傳遞文件名【?file=source.php】,將參數傳給file,而不是直接訪問文件路徑【/source.php】。代碼會截取第一個問號前的字符串并檢查其是否在白名單中。
所以要讓第一個問號?前的內容在白名單中,在問號?后面加上我們想訪問的ffffllllaaaagggg就可以繞過。構造payload:

?file=source.php?ffffllllaaaagggg

沒有查到,用../返回不斷上級目錄并不斷嘗試。

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

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

相關文章

Css 提高 - 獲取DOM元素

目錄 1、根據選擇器來獲取DOM元素 2.、根據選擇器來獲取DOM元素偽數組 3、根據id獲取一個元素 4、通過標簽類型名獲取所有該標簽的元素 5、通過類名獲取元素 目標:能查找/獲取DOM對象 1、根據選擇器來獲取DOM元素 語法: document.querySelector(css選擇…

cmake uninstall like

如果有install_manifest.txt cat install_manifest.txt | sudo xargs rm #cat install_manifest.txt | xargs ls建議make install之前查看有沒有make uninstall目標

cocos 寫 連連看 小游戲主要邏輯(Ts編寫)算法總結

cocos官方文檔:節點系統事件 | Cocos Creator 游戲界面展示 一、在cocos編譯器隨便畫個頁面 展示頁面 二、連連看元素生成 2.1、準備單個方塊元素,我這里就是直接使用一張圖片,圖片大小為100x100,錨點為(0&#xff0…

ESP32基礎應用之使用手機瀏覽器作為客戶端與ESP32作為服務器進行通信

文章目錄 1 準備2 移植2.1 softAP工程移植到simple工程中2.2 移植注意事項 3 驗證4 添加HTML4.1 瀏覽器顯示自己編譯的html4.2 在使用html發數據給ESP324.3 HTML 內容4.4 更新 html_test.html 1 準備 參考工程 Espressif\frameworks\esp-idf-v5.2.1\examples\wifi\getting_sta…

PMapper:助你在AWS中實現IAM權限快速安全評估

關于PMapper PMapper是一款功能強大的腳本工具,該工具本質上是一個基于Python開發的腳本/代碼庫,可以幫助廣大研究人員識別一個AWS賬號或AWS組織中存在安全風險的IAM配置,并對IAM權限執行快速評估。 PMapper可以將目標AWS帳戶中的不同IAM用戶…

Hive環境搭建

1 安裝Hive 下載文件 # wget -P /opt/ https://mirrors.huaweicloud.com/apache/hive/hive-2.3.8/apache-hive-2.3.8-bin.tar.gz 解壓縮 # tar -zxvf /opt/apache-hive-2.3.8-bin.tar.gz -C /opt/ 修改hive文件夾名字 # mv /opt/apache-hive-2.3.8-bin /opt/hive 配置環境變量 …

torch Embedding 學習筆記

文本向量化(Text Embedding):將文本數據(詞、句子、文檔)表示成向量的方法。 詞向量化將詞轉為二進制或高維實數向量,句子和文檔向量化則將句子或文檔轉為數值向量,通過平均、神經網絡或主題模…

幀動畫播放出現oom異常分析及解決

問題描述 需要播放序列幀,幀數特別多的時候會oom 問題分析 源代碼每一幀都創建一次bitmap,極度消耗內存 bitmap.recycle并不會立刻回收內存,內存還是會很緊張 問題解決 利用inbitmap,每一幀復用同一片內存區域 //設置Bitmap…

【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型

【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型 前言 今天來寫一個簡單的ernie-c#的例子,主要參考了百度智能云的例子,然后自己改了改,學習了ERNIE模型的鑒權方式,數據流的格式和簡單的數據解析,實…

軟件安裝:Linux安裝Nginx

軟件安裝:Linux如何安裝軟件,程序。 源碼安裝 類似于.exe 源碼包就是一堆源代碼程序組成的。 linux tar.gz 這個就是源碼包 源碼包--------二進制包,源碼包里面的代碼經過編譯之后形成的包。 優點:1、開源,可以二次…

面試八股之MySQL篇1——慢查詢定位篇

🌈hello,你好鴨,我是Ethan,一名不斷學習的碼農,很高興你能來閱讀。 ??目前博客主要更新Java系列、項目案例、計算機必學四件套等。 🏃人生之義,在于追求,不在成敗,勤通…

JavaScript 數組方法總結

JavaScript 數組方法總結 創建數組訪問和修改數組(長度 & 元素)添加和刪除元素數組遍歷元素查找過濾和映射歸并和縮減數組的連接數組的扁平化數組的排序數組的反轉數組的復制數組的測試數組的填充 創建數組 Array.of(...elements): 創建一個…

Singer模型與CT模型狀態轉移矩陣的求解

Singer模型與CT模型狀態轉移矩陣的求解 文章目錄 Singer模型與CT模型狀態轉移矩陣的求解前言狀態方程矩陣指數函數泰勒展開拉普拉斯變換 Singer模型CT模型 前言 回想起來,第一次接觸Singer模型與CT模型時的狀態轉移矩陣時,對求解過程一知半解。現在&…

linux 上除了shell、python腳本以外,還有什么腳本語言用得比較多?

在開始前我有一些資料,是我根據網友給的問題精心整理了一份「 Linux的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!!說到在 Linux下的編程&#xf…

柯橋成人商務英語“?cold”是“冷”,“shoulder”是“肩膀”,?cold shoulder可不是冷肩膀!

英文中有很多俚語(idioms)都與身體部位有關,非常有趣。 今天,英語君就為大家介紹一些和身體部位有關的俚語,一起來看看吧! cold shoulder “cold shoulder”不能用字面意思理解為“冷肩膀”,我們…

學習毛概思想(自用)

一、單項選擇題 毛澤東思想的主要創立者是( A ) A、毛澤東 B、劉少奇 C、周恩來 D、朱德中國共產黨內第一個提出“毛澤東思想”科學概念的是( D  )    A、周恩來   B、劉少奇   C、朱德…

CommonJS 和 ESM 在模塊加載和處理依賴關系的方式上的不同點理解

模塊加載: CommonJS:當執行到 require() 函數時,Node.js 會同步地加載模塊文件,即立即讀取模塊文件并執行其中的代碼,然后返回模塊的導出值。這就意味著,直到運行時我們才知道具體導入了哪些模塊&#xff0…

智慧校園學工管理系統的部署

學工體系思政服務該怎么規劃建造?思政作為高校育人的中心使命,在做到讓學生健康高興生長的一起,也應滿意學生生長成才的各類需求。使用技術為學生供給優質的信息化服務,是其間的有效途徑。大數據讓個性化教育成為可能,…

【題解】AB33 相差不超過k的最多數(排序 + 滑動窗口)

https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6?tpId308&tqId40490&ru/exam/oj 排序 滑動窗口 #include <iostream> #include <vector> #include <algorithm> using namespace std;int main() {int n, k;cin >> n &…