Web開發-PHP應用TP框架MVC模型路由訪問模版渲染安全寫法版本漏洞

我們先使用/index.php/index/index/test,就是圖中的test()方法

/index.php/index/index/index,這個回顯就是111

http://127.0.0.1:83/index.php/index/index/test2?x=123456

public function test2()
{$x=$_GET['x'];return $x;
}

這里再做一個案例更詳細一點,我們這里定義了一個login,我們如何得到后臺登陸回顯呢,按照TP官方方式嘗試,然后我們更換了文件夾,上面的更改為namespace app\admin\controller;

http://127.0.0.1:83/index.php/admin/index/login

這里成功了,那就再次解釋一遍,就是index.php/這個是固定的,然后/admin就是我們的admin模塊,也就是這個文件夾,控制器就是index.php,操作就是login這個方法,這樣我們就能用TP官方方法訪問了

第二種訪問方法就是

http://127.0.0.1:83/index.php?s=/admin/index/login

早期版本,TP3版本附近

有的時候還會出現index.php?s=admin&m=index&a=login

這是什么意思呢,就是三個參數分別指向模塊、控制器、操作,也就是我的admin目錄,index模塊,login操作

這樣我們就能逆推功能點,這樣可以在白盒應用中體現出來

3、請求變量-數據接受

請求對象,提交方法,助手函數等

這里使用REQUEST

這里就接受到信息了,這里定義的方式太多,可以自行選擇使用哪種方式獲取信息

4、數據庫操作-應用對象

引用DB類,基本查詢,助手函數等

public function loginin(Requset $request)
{$id = input('get.id');$data=Db::table('admin')->where('id',$id)->find();var_dump($data);
}

THINKPHP

這里就能上梭哈工具檢測,并且能一鍵利用

5、前端頁面渲染-MVC模型

引擎配置,渲染變量,模版輸出等

TP框架-寫法安全

1、自寫代碼邏輯

例子1:自己不合規的代碼寫法

自己審計代碼,看一下他的缺陷

例子2:一半框架一半自寫代碼

例子3:框架標準內置代碼寫法

官方寫法就看版本漏洞,通殺或者找邏輯,有sql注入需要有相應的代碼功能

2、框架版本安全

https://github.com/Mochazz/ThinkPHP-Vuln

例子1:寫法內置安全繞過-TP5-SQL注入

例子2:內置版本安全漏洞-TP5-代碼執行

TP框架-代審案例:

WeMall-TP5框架開發

這里拿一套源碼,先看一下thinkphp版本號,然后找歷史漏洞

這里打開發現什么都沒有,偽靜態,搭建時配置一下文件

搭建時候配置一下即可

上一下梭哈工具測試一下漏洞

拿下s

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

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

相關文章

FreeRTOS列表系統深度解析

FreeRTOS列表系統深度解析 一、核心數據結構 1. 列表控制塊 (List_t) typedef struct xLIST {volatile UBaseType_t uxNumberOfItems; // 當前列表項數量ListItem_t * pxIndex; // 遍歷指針(用于輪詢調度)MiniListItem_t xListEnd; …

《Linux編譯器:gcc/g++食用指南》

堅持用 清晰易懂的圖解 代碼語言,讓每個知識點變得簡單! 🚀呆頭個人主頁詳情 🌱 呆頭個人Gitee代碼倉庫 📌 呆頭詳細專欄系列 座右銘: “不患無位,患所以立。” 《Linux編譯器:GCC…

SparkKV轉換算子實戰解析

目錄 KV算子 parallelizePairs mapToPair mapValues groupByKey reduceByKey sortByKey 算子應用理解 reduceByKey和groupByKey的區別 groupByKeymapValues實現KV數據的V的操作 改進用reduceByKey groupby通過K和通過V分組的模板代碼 問題集錦 寶貴的經驗 這里會…

深度解析 TCP 三次握手與四次揮手:從原理到 HTTP/HTTPS 的應用

TCP 的三次握手和四次揮手是網絡通信的基石,無論是 HTTP 還是 HTTPS,它們都依賴 TCP 提供可靠的傳輸層服務。本文將用萬字篇幅,結合 Mermaid 圖表和代碼示例,深入講解 TCP 三次握手、四次揮手的原理、過程、狀態變化,以…

Hyper-V + Centos stream 9 搭建K8s集群(一)

一、創建虛擬機一臺32G內存,16核心的Win11,已經安裝了Hyper-V 管理器。然后也下載了CentOS-Stream-9-latest-x86_64-dvd1.iso的鏡像文件。這里Hyper-V創建虛擬機的過程就不贅述了,如果出現虛擬機加載不到鏡像的問題,先把這個使用安…

Pygame如何制作小游戲

以下是 Pygame 的詳細使用指南,從安裝到開發完整游戲的步驟說明,包含代碼示例和最佳實踐: 一、安裝與環境配置 1. 安裝 Pygame pip install pygame2. 驗證安裝 import pygame pygame.init() print(pygame.version.ver) # 應輸出版本號&am…

@【JCIDS】【需求論證】聯合能力集成與開發系統知識圖譜

JCIDS(聯合能力集成與開發系統)知識圖譜 1. JCIDS概述 2. JCIDS的提出背景 3. JCIDS核心流程 4. JCIDS分析方法 5. JCIDS優勢 6. JCIDS與采辦系統的關系 7. JCIDS知識圖譜結構 8. 對我的啟示 9.JCIDS(聯合能力集成與開發系統)相關術語列表 10. 參考文獻 1. JCIDS概述 定義:…

每天學一個Linux命令(38):vi/vim

每天學一個 Linux 命令(38):vi/vim vi 和 vim(Vi IMproved)是 Linux 和 Unix 系統中功能強大的文本編輯器。vim 是 vi 的增強版,提供語法高亮、多級撤銷、插件支持等更多功能。掌握 vi/vim 是 Linux 系統管理員的必備技能之一。 1. 命令簡介 vi:經典的文本編輯器,幾乎…

【PZ-ZU49DR-KFB】:璞致電子 UltraScale+ RFSoC 架構下的軟件無線電旗艦開發平臺

璞致電子 PZ-ZU49DR-KFB 開發板基于 Xilinx ZYNQ UltraScale RFSoC XCZU49DR 主控制器,以 "ARMFPGA 異構架構" 為核心,融合高帶寬信號采集、高速數據處理與靈活擴展能力,專為專業工程師打造的軟件無線電(SDR&#xff09…

力扣106:從中序與后序遍歷序列構造二叉樹

力扣106:從中序與后序遍歷序列構造二叉樹題目思路代碼題目 給定兩個整數數組 inorder 和 postorder ,其中 inorder 是二叉樹的中序遍歷, postorder 是同一棵樹的后序遍歷,請你構造并返回這顆 二叉樹 。 思路 我們首先要知道中序遍歷和后序…

IDEA JAVA工程入門

Maven配置: IDEA -> settings -> Build, Execution, Deployment -> Build Tools -> MavenMaven home pathUser setting file : 特定倉庫下載依賴包,自動下載(界面右邊M圖標點開,)local repository (本地倉庫&#xff…

Spring依賴注入:從原理到實踐的自學指南

Spring依賴注入:從原理到實踐的自學指南 一、什么是依賴注入? 依賴注入(Dependency Injection, DI)是Spring框架實現控制反轉(IoC)的核心手段。其核心思想是:對象不再自己創建依賴項&#xff…

3_軟件重構_組件化開發實例方法論

1、上期回顧上次內容核心的地方有兩個,①是C多態基類的指針指向派生類,用于初始化各個插件。②是使用C語言的dlopen函數“動態加載”各個插件,實現用戶根據契約接口自定義開發插件,極大程度地實現了軟件上的解耦。③再進一步&…

C#接口的定義與使用

第1章 接口(interface)是什么1.1 定義? 接口是一組“能力”或“契約”的抽象描述,只規定“能做什么”,不規定“怎么做”。? 在 C# 中,接口是一種完全抽象的類型(fully abstract type)。 ? 關…

【STM32】HAL庫中的實現(三):PWM(脈沖寬度調制)

🔧 HAL庫中的實現:PWM(脈沖寬度調制) PWM(Pulse Width Modulation)是基于定時器(TIM)產生的周期性脈沖信號,廣泛應用于:① 電機調速;② LED 亮度控…

GitHub 趨勢日報 (2025年08月03日)

🚀 GitHub 趨勢日報 (2025年08月03日) 📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖751dyad362LLMs-from-scratch291…

Java后端高頻面試題

Java后端高頻面試題 目錄 Java集合框架Java并發編程JVM相關MySQL數據庫Redis緩存Spring框架 Java集合框架 HashMap的數據結構是什么,為什么在JDK8要引入紅黑樹? HashMap數據結構: JDK7:數組 鏈表JDK8:數組 鏈表…

37. line-height: 1.2 與 line-height: 120% 的區別

概述 line-height 是 CSS 中用于控制文本行間距的重要屬性。雖然 line-height: 1.2 和 line-height: 120% 看似相同,但它們在計算方式上存在關鍵區別,尤其是在繼承和計算值方面。1. 計算方式不同寫法類型計算方式說明line-height: 1.2無單位(…

藍橋杯----DS1302實時時鐘

(六)、DS1302實時時鐘1、原理(圖 二十六)DS1302通過三線串行接口與單片機進行通信。微控制器可以通過設置RST引腳為高電平來使能DS1302,并通過SCK引腳提供串行時鐘信號,然后通過I/O引腳進行數據的讀寫操作。…

C++對象訪問有訪問權限是不是在ide里有效

在C中,對象的訪問權限(即公有(public)、保護(protected)和私有(private)成員的訪問)是編譯時的一部分,而不是運行時。這意味著,無論是在IDE&#…