52 代碼審計-PHP項目類RCE及文件包含下載刪除

目錄

    • 漏洞關鍵字:
    • 演示案例:
      • xhcms-無框架-文件包含跨站-搜索或應用-include
      • earmusic-無框架-文件下載-搜索或應用功能-down等
      • zzzcms-無框架-文件刪除RCE-搜索或應用-unlink、eval

漏洞關鍵字:

SQL注入:
select insert update mysql_query mysql等
文件上傳:
$_FILES,type=“file”,上傳,move_uploaded_file()等
xss跨站:
print print_r echo sprintf die var_dump var_export等
文件包含:
include include_once require require_once等
代碼執行:
eval assert preg replace call user func call user func array等
命令執行:
system exec shell_exec ’ ’ passthru pcntl_exec popen proc_open
變量覆蓋:
extract() parse_str() importrequestvariables () $$等
反序列化:
serialize() unserialize() _construct _destruct等
其他漏洞:
unlink() file_get_contents() show_source() file() fopen()等

#通用關鍵字:

$_GET$_POST$_REQUEST$_FILES$_SERVER

演示案例:

xhcms-無框架-文件包含跨站-搜索或應用-include

#通過應用及URL地址等分析可能存在xss及包含安全
抓包找到xss無過濾代碼塊及文件包含有后綴需繞過代碼塊

找跨站漏洞的話,第一個找輸出函數,第二個是功能點;如果是在輸出地方的話,那就找輸出函數,如果是功能點,那就找變量和數據有相應輸出的地方;網站留言板可以測試跨站漏洞,因為留言板存在接受數據,將數據進行留言板展示的,這個操作是滿足跨站漏洞原理的

可以從功能點上分析,也可以從代碼層面上搜索指令進行測試
在這里插入圖片描述
在這里我們可以搜索一下全局相關的輸出性函數
在這里插入圖片描述
一般我們是找非admin的,因為后臺一般是要我們登錄才能進行操作,所以我們優先看非后臺目錄的地方
在這里插入圖片描述
可以看到navs是從mysql執行的地方來的,而sql語句是已經寫死了,也就是說數據庫的數據是死的,我們不能控制它,所以navs是沒作用的
在這里插入圖片描述
echo是受pages、info兩個變量控制的,info的值是寫死的,也沒什么作用;pages明顯是從變量page接收過來的,用到了魔術引號addslashes對一些. / ' " 符號進行轉義,我們跨站語句不會觸發這些字符,所以這個地方可能存在跨站漏洞,文件是/files/contact.php
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們嘗試訪問文件看一下,文件對應存儲路徑地址和我們訪問地址,如果采用mvc結構的話,與自己寫的訪問路由結構,對應不上就會出現訪問失敗
在這里插入圖片描述
我們看一下files下的index首頁
在這里插入圖片描述
看一下根目錄的index
在這里插入圖片描述
應該要這樣子訪問
在這里插入圖片描述
在后面加個參數page=1
在這里插入圖片描述
在這里插入圖片描述
對應的應該是這條語句
在這里插入圖片描述
直接執行跨站語句,成功
在這里插入圖片描述
從功能點,網站有聯系,明顯就是互動的地方,就存在數據的接收和數據顯示的操作,這是符合跨站漏洞產生原理的

我們打開它的網站地址,找到他對應的文件,他的訪問地址是contact和我們剛才搜索找到contact.php的文件名是一樣的,再像我們剛才一樣看代碼

文件包含搜索關鍵字,因為我們從網站上看不到有類似文件包含的功能點
在這里插入圖片描述
包含文件里面存在變量action,action又從變量file來,同樣的這個地方使用轉義來過濾,但是這個沒有作用,因為他只是過濾一些注入的,像正常傳輸文件名是沒有任何操作的
在這里插入圖片描述
這個就是典型的限制后綴,他會自動加上.php干擾你
在這里插入圖片描述
我們可以采取下面兩種方式進行繞過
%00截斷: 條件: magic_quotes_gpc = off php版本<5.3.4
filename=…/…/…/www.txt%00
長度截斷:條件:windows,點號需要長于256;linux 長于4096
在這里插入圖片描述
能繞過是漏洞,不能繞過也是漏洞,只是他的版本不符合,假如他上面沒有.php,那就是典型的無限制文件包含漏洞

遠程包含取決于php環境自身設置有沒有開allow_include開關,如果是遠程包含漏洞,那危害就比較大了

earmusic-無框架-文件下載-搜索或應用功能-down等

#通過應用分析或搜索判斷可能存在文件下載操作
抓包分析下載地址找到對應代碼塊,文件下載地址由$file控制

$file從數據庫查詢語句得知,追蹤那里可更新或更改此類數據嘗試修改發現過濾,追蹤過濾機制分析繞過,采用全路徑地址繞過

這個站點類似訪問QQ音樂官網的程序,他是注冊賬號之后,可以上傳音樂作品
在這里插入圖片描述
由于他主要是用來分享音樂,他這個上面肯定有相關文件的東西的,他是進行文件操作,有文件下載、文件刪除,文件上傳的安全問題
在這里插入圖片描述
注冊登錄進去,看一下這個地方有那些功能,這個地方可以測試有沒有文件上傳漏洞
在這里插入圖片描述
在這里插入圖片描述
文件下載,通過看網站功能,就能分析到存在那些漏洞
在這里插入圖片描述
我們拿到程序之后,你自己要去猜測程序存在那些漏洞,是根據程序自身源碼,他的應用方向決定的,他的網站偏向社交,有數據的交互,就會產生注入、跨站多一點,像這個音樂的分享、播放,就是操作文件的,這里肯定是有文件上傳、下載,這套程序比較偏向于找文件漏洞

通過搜索相關關鍵字,來搜索文件下載的函數,來找到對應的代碼
根據網站給到的功能,我可以根據文件下載功能,把對應的數據包抓到,來找到對應的下載文件的參數和地址來分析到對應代碼

我們要先確定下載地址鏈接,然后去尋找代碼
在這里插入圖片描述
這個就是典型的id值接收過來給到變量id
在這里插入圖片描述

intval
在這里插入圖片描述

SafeRequest自定義函數,操作類的東西,獲取當前的魔術引號是否開啟,定義數據接收方式
在這里插入圖片描述
這個就是進行文件下載的數據包
在這里插入圖片描述
只是判定音樂作品是否要付費
在這里插入圖片描述
如果不需要付費,就設置cookie
在這里插入圖片描述
用參數進行下載,下載的文件是變量file
在這里插入圖片描述
in_audio對應文件的下載地址,這個值等于什么,就下載什么
在這里插入圖片描述
in_audio是id值執行完的結果,這個值是寫到數據庫里面的,無法通過傳參控制這個值

后臺的文件需要后臺登錄才能操作,漏洞即使發現,也沒有太大的意義

我們現在是看那個地方可以操作in_audio值,in_audio賦值給變量audio
在這里插入圖片描述
在網站這邊音頻地址寫1
在這里插入圖片描述
抓包,我們可以看到文件名ajax.php,audio為1
在這里插入圖片描述
我們找到ajax.php,發現audio的值給到變量audio,變量audio接收到值就是1
在這里插入圖片描述
等于1之后,就賦值給in_audio
在這里插入圖片描述
下面這邊開始插入數據庫
在這里插入圖片描述
就會對應修改這個地方
在這里插入圖片描述
比如我們下載1.php,把值給保存一下
在這里插入圖片描述
在這里插入圖片描述
然后看一下
在這里插入圖片描述
刷新點擊下載
在這里插入圖片描述
如果要進行跨越下載,就…/1.php,但是我們發現這邊有過濾
在這里插入圖片描述
在這里插入圖片描述
因為checkrename、unescape是過濾函數,unescape是過濾正則表達式
在這里插入圖片描述
checkrename是./觸發攔截機制,我們可以…\繞一下
在這里插入圖片描述
把id值傳輸進去,因為你添加音樂地址的時候,數據就寫到數據庫里面去了,所以你通過id值取出音樂地址里面別人設置好的音頻地址來進行下載

功能點或關鍵字分析可能存在漏洞
抓包或搜索關鍵字找到代碼出處及對應文件
追蹤過濾或接受的數據函數,尋找觸發此函數或代碼的地方進行觸發測試

zzzcms-無框架-文件刪除RCE-搜索或應用-unlink、eval

文件刪除搜索關鍵宇unlink,對應函數del_file,查看調用此的地方
后臺delfile函數調用,如何處罰delfile函數,受參數控制,進行測試
代碼執行搜索關鍵字eval,對應配置模版解析文件,查看調用此地方判斷后臺可修改模版文件,前臺觸發模版文件,構造payload進行測試

文件刪除漏洞不是很常見,一般我們在黑盒測試很難探針到,因為他需要有特定的訪問地址,特定的參數去觸發文件類的刪除,需要代碼去輔助你,你才知道怎么去傳參,但是黑盒里面,我們無法知道,沒辦法測試,得不到效果,所以一般文件刪除漏洞,產生在白盒測試里面

利用這個漏洞主要是刪除文件的一個安裝文件叫install.lock,文件刪除漏洞觸發條件,我們要去觸發刪除文件的功能,這個參數怎么傳遞,才能刪除文件,我們需要滿足特定文件地址,特定參數值對應上才行,所以一般是代碼原因

我們判定程序是否安裝,就是判定install.lock文件是否存在,如果這個文件沒有,程序就知道你是初次安裝,可以訪問對應的安裝目錄,他會提示你已經安裝
重新安裝的含意是把網站的自身程序重新自定義
在這里插入圖片描述
查一下unlink函數,php里面文件刪除的函數
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
我們打開程序看一下
在這里插入圖片描述

這邊unlink有刪除文件操作,del_file函數要被調用

在這里插入圖片描述
我們通過全局搜索發現del_file函數調用情況,我們優先是不看后臺的,因為后臺要登錄操作,即使發現也不是很大的高危漏洞
在這里插入圖片描述
is_write函數調用過,我們繼續搜索
在這里插入圖片描述
明顯這里沒有被調用過,他只是申明,這個可以忽略不計
在這里插入圖片描述
我們搜handle_upload函數
在這里插入圖片描述
被調用過的地方又是upload函數
在這里插入圖片描述
我們就要搜upload函數又在那里被調用過,這個就很多了,我們先不看這個
在這里插入圖片描述
他們是相輔相成的包含,他包含這個文件,這個文件又包含另一個文件
save.php調用del_file函數
在這里插入圖片描述
我們全局跟蹤delfile()函數,如果act的值等于delfile,就調用delfile函數,這個函數被調用del_file也會被調用,所以我們要想辦法讓act等于defile,可以跟蹤一下act從那里來
在這里插入圖片描述
在這里插入圖片描述
我們先看一下getform函數,就是指向接收的方式
在這里插入圖片描述
act就是等于get接收的值,我們定位safe_word()函數,就是保留東西不能帶特殊符號
在這里插入圖片描述
現在大概清楚了,我們訪問文件,讓act的值等于delfile,就會調用delfile函數,delfile函數就會刪除文件,在刪除文件執行的時候,需要滿足if語句

在這里插入圖片描述
我們定位一下arr_search(),他就是判定file_path,safe_path數組里面的值
在這里插入圖片描述
safe_path在上面已經申明了
在這里插入圖片描述
我們追蹤file_path函數
在這里插入圖片描述
file通過post傳遞一個path值,在通過file_path獲取路徑,獲取路徑之后,和safe_path進行對比,如果重復,就返回true,執行下面代碼,就是說我們傳遞file_path值要帶’uplpad’、‘template’、‘runtime’、‘backup’,因為你一旦帶這幾個值,就執行下面代碼,如果沒帶就直接跳出循環
在這里插入圖片描述
我們訪問對應地址文件,傳遞參數
這里實驗了漏洞,發現管理員權限登錄后臺,才可以刪除文件,這個漏洞很雞肋
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
文件刪除的作用是一旦刪除install.loc文件之后,你訪問安裝目錄,會重新安裝,這個漏洞相當于會造成系統重裝的漏洞

搜索eval關鍵字,看有沒有eval關鍵字形成代碼執行漏洞,前面幾個都是帶關鍵字不是函數使用
在這里插入圖片描述
在這里插入圖片描述
這邊包含$ifstr,一個個的追蹤下去
在這里插入圖片描述
在這里插入圖片描述
preg_match_all
在這里插入圖片描述
$pattern匹配規則,zcontent匹配對象,把zcontent按照pattern規則匹配,匹配出的結果給matches

誰控制了zcontent,就控制了matches,控制了matches,就控制了ifstr,相當于誰引用了parserIfLabel函數,zcontent就是控制的地方

這邊寫了public,說明這可能是一個對象的寫法,就不是單純的函數
在這里插入圖片描述
查一下,誰調用ParserTemplate對象
在這里插入圖片描述
ParserTemplate對象創建zcontent
在這里插入圖片描述
zcontent來自user_tpl
在這里插入圖片描述
在這里插入圖片描述
修改模版文件會修改指定文件,漏洞存在模版文件,修改文件,把后門寫進去
在這里插入圖片描述
相當于修改about.html文件
在這里插入圖片描述
在這里插入圖片描述
后臺模版文件修改之后,前端的html文件也會被修改,而代碼執行是產生在模版里面

index.php首頁文件就是zzz_client.php文件
在這里插入圖片描述
而這個文件調用過ParserTemplate對象,那就是說前端和后端都能修改這個模版
在這里插入圖片描述
我們通過后臺修改代碼,因為前端不能修改代碼,讓iffile去包含變量,達到規則,前端去訪問,去解析它

他是一種程序上的設計,設計里面又不得不進行的操作,所導致的安全問題,他要讓html代碼執行出php的效果

http://192.168.0.102:91/?r=../../index.txt%00
http://192.168.0.102:94/admin/save.php?act=delfile
path=/upload/../install/install.lock

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

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

相關文章

【FreeRTOS】信號量——簡介、常用API函數、注意事項、項目實現

在FreeRTOS中&#xff0c;信號量是一種非常重要的同步機制&#xff0c;用于實現任務間的互斥訪問和同步操作。通過信號量&#xff0c;不同的任務可以安全地共享資源&#xff0c;避免競爭和沖突&#xff0c;從而確保系統的穩定性和可靠性。本篇博客將介紹FreeRTOS中信號量的基本…

常用Nmap腳本

端口掃描類腳本 Nmap是一款非常流行的端口掃描工具&#xff0c;它可以幫助滲透測試工程師識別目標網絡上開放的端口&#xff0c;并提供有關這些端口的詳細信息。Nmap還提供了一系列基于腳本的功能&#xff0c;這些腳本可以擴展Nmap的功能&#xff0c;使其能夠更深入地探測目標網…

使用Huggingface創建大語言模型RLHF訓練流程的完整教程

ChatGPT已經成為家喻戶曉的名字&#xff0c;而大語言模型在ChatGPT刺激下也得到了快速發展&#xff0c;這使得我們可以基于這些技術來改進我們的業務。 但是大語言模型像所有機器/深度學習模型一樣&#xff0c;從數據中學習。因此也會有garbage in garbage out的規則。也就是說…

AUTOSAR CP Int-Watchdog簡介

Int Watchdog 1 簡介2 EB 中配置 TC39X3 Wdg 在代碼中使用1 簡介 內部看門狗驅動[sws_Wdg_00161]要訪問內部看門狗硬件,對應的 Wdg 模塊實例應該直接訪問看門狗服務的硬件。提示:內部看門狗驅動程序是微控制器抽象層的一部分,它允許直接的硬件訪問。注意:內部看門狗的日常服…

第21章總結 網絡通信

21.1 網絡程序設計基礎 網絡程序設計編寫的是與其他計算機進行通信的程序。Java已經將網絡程序所需要的元素封裝成不同的類&#xff0c;用戶只要創建這些類的對象&#xff0c;使用相應的方法&#xff0c;即使不具備有關的網絡知識&#xff0c;也可以編寫出高質量的網絡通信程序…

【評測腳本】機器信息評測(初版)

背景 QA的實際工作過程中,除了業務相關的測試外,也會涉及到一些評測相關的工作,甚至還要做多版本、多維度的評估分析。尤其是現在火熱的大模型,相關的評測內容更是核心中的核心。當然本文的內容只是做一些初級的機器相關的評測信息,更多更廣的評測需要更多時間的積累和總…

JVM的內存結構詳解「重點篇」

一、JVM虛擬機數據區 虛擬機棧 1、 線程私有 2、 每個方法被執行的時候都會創建一個棧幀用于存儲局部變量表&#xff0c;操作棧&#xff0c;動態鏈接&#xff0c;方法出口等信息。每一個方法被調用的過程就對應一個棧幀在虛擬機棧中從入棧到出棧的過程。 3、棧幀: 是用來存儲…

安裝mysql數據庫

1.1下載APT存儲庫&#xff08;下載鏈接&#xff09; 1.2安裝APT存儲庫&#xff08;注意好正確的路徑&#xff09; 將下載的文件傳輸到linux服務器對應目錄下后執行以下命令&#xff1a; sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb 選擇mysql5.7 然后點擊ok 然后執行 s…

應用架構——集群、分布式、微服務的概念及異同

一、什么是集群&#xff1f; 集群是指將多臺服務器集中在一起&#xff0c; 每臺服務器都實現相同的業務&#xff0c;做相同的事&#xff1b;但是每臺服務器并不是缺 一不可&#xff0c;存在的主要作用是緩解并發能力和單點故障轉移問題。 集群主要具有以下特征&#xff1a; …

JAVA使用POI向doc加入圖片

JAVA使用POI向doc加入圖片 前言 剛來一個需求需要導出一個word文檔&#xff0c;文檔內是系統某個界面的各種數據圖表&#xff0c;以圖片的方式插入后導出。一番查閱資料于是乎著手開始編寫簡化demo,有關參考poi的文檔查閱 Apache POI Word(docx) 入門示例教程 網上大多數是XXX…

el-table-column 添加 class類

正常添加class 發現沒有效果 class"customClass" 發現并沒有添加上去 看了一下官網發現 class-name 可以實現 第一步: :class-name"customClass" 第二步 : customClass: custom-column-class, 然后就發現可以了

Qt簡介、工程文件分離、創建Qt工程、Qt的幫助文檔

QT 簡介 core&#xff1a;核心模塊&#xff0c;非圖形的接口類&#xff0c;為其它模塊提供支持 gui&#xff1a;圖形用戶接口&#xff0c;qt5之前 widgets&#xff1a;圖形界面相關的類模塊 qt5之后的 database&#xff1a;數據庫模塊 network&#xff1a;網絡模塊 QT 特性 開…

IntelliJ IDEA使用Eval Reset

文章目錄 IntelliJ IDEA使用Eval Reset說明具體操作 IntelliJ IDEA使用Eval Reset 說明 操作系統&#xff1a;windows10 版本&#xff1a;2020.1 IntelliJ IDEA安裝可查看&#xff1a;安裝教程 具體操作 添加&#xff0c;輸入網址 https://plugins.zhile.io然后搜索“IDE E…

IntelliJ IDEA安裝

文章目錄 IntelliJ IDEA安裝說明下載執行安裝 IntelliJ IDEA安裝 說明 操作系統&#xff1a;windows10 版本&#xff1a;2020.1 下載 官網地址 執行安裝

奇點云2023數智科技大會來了,“雙12”直播見!

企業數字化進程深入的同時&#xff0c;也在越來越多的新問題中“越陷越深”&#xff1a; 數據暴漲&#xff0c;作業量和分析維度不同以往&#xff0c;即便加了機器&#xff0c;仍然一查就崩&#xff1b; 終于搞定新增渠道數據的OneID融合&#xff0c;又出現幾個渠道要變更&…

自動定量包裝機市場研究: 2023年行業發展潛力分析

中國包裝機械業取得了快速發展&#xff0c;但也出現了一些低水平重復建設現象。據有關資料顯示&#xff0c;與工業發達國家相比&#xff0c;中國食品和包裝機械產品品種缺乏25%-30%&#xff0c;技術水平落后15-25年。我國包裝專用設備制造行業規模以上企業有319家&#xff0c;主…

Vue3實現一個拾色器功能

? <template><div class"color"><button v-if"hasEyeDrop" click"nativePick">點擊取色</button><input v-else type"color" input"nativePick" v-model"selectedColor" /><p&…

Markdown從入門到精通

Markdown從入門到精通 文章目錄 Markdown從入門到精通前言一、Markdown是什么二、Markdown優點三、Markdown的基本語法3.1 標題3.2 字體3.3 換行3.4 引用3.5 鏈接3.6 圖片3.7 列表3.8 分割線3.9 刪除線3.10 下劃線3.11 代碼塊3.12 表格3.13 腳注3.14 特殊符號 四、Markdown的高…

php爬蟲規則與robots.txt講解

在進行網頁爬蟲時&#xff0c;有一些規則需要遵守&#xff0c;以避免違反法律&#xff0c;侵犯網站隱私和版權&#xff0c;以及造成不必要的麻煩。以下是一些常見的PHP爬蟲規則&#xff1a; 1. 尊重網站的使用條款&#xff1a;在開始爬取之前&#xff0c;請確保你閱讀并理解了…

2024黑龍江省職業院校技能大賽信息安全管理與評估樣題第二三階段

2024黑龍江省職業院校技能大賽暨國賽選拔賽 "信息安全管理與評估"樣題 *第二階段競賽項目試題* 本文件為信息安全管理與評估項目競賽-第二階段試題&#xff0c;第二階段內容包括&#xff1a;網絡安全事件響應、數字取證調查和應用程序安全。 極安云科專注技能競賽…