PHP代碼審計學習(1)——代碼設計及流程

雜言

  一直計劃學PHP代碼審計但一直不在狀態,翻了一下王嘆之師傅的博客發現人家是體系化的學習,對比起來我實在是太浮躁了,回想起之前的面試,很多問題都是似懂非懂的,很多東西都太零碎,是要好好靜下心來學東西了,要把這個PHP代碼審計好好學,這裏我是參照着教程和吳翰清的《代碼審計  企業級Web代碼安全架構》學習的,因爲之前讀DVWA源代碼的時候配置好了環境,我這裏直接用WAMP+seay審計系統了跳過環境配置了,

MVC架構

  MVC是一種使用MVC設計創建的WEB應用程序的模式,MVC同時提供HTML,CSS,JS的完全控制

  VView視圖是指用戶看到並與之交互的界面。比如由html元素組成的網頁界面,或者軟件的客戶端界面。MVC的好處之一在於它能爲應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理髮生,它只是作爲一種輸出數據並允許用戶操縱的方式。

  Mmodel模型是指模型表示業務規則。在MVC的三個部件中,模型擁有最多的處理任務。被模型返回的數據是中立的,模型與數據格式無關,這樣一個模型能爲多個視圖提供數據,由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重複性。

  Ccontroller控制器是指控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的數據。

 

常見PHP框架

  1zendframwork: (ZF)Zend公司推出的一套PHP開發框架
   2Yii由國人開發的重量級的框架
  3CakePHP是國外的框架
  4.Symfony,是一套國外的PHP開源框架
  5CodeIgniterCI)輕量級框架,運行速度快
  6CanPHP框架是一個簡潔,實用,高效,遵循apache協議的php開源框架
  7Laravel 是一個簡單優雅的 PHP web 開發框架
  8SlimFramework是一個簡單的 PHP5 框架用來創建 RESTful Web 應用
  9ThinkPHP是一個快速、簡單、面向對象的輕量級PHP開發框架
  10PHPUnit是一個輕量級的PHP測試框架
  11KYPHP支持多數據庫,多語言,多模版,多app,多緩存,多編碼格式,模板佈局,自定義類,自動加載公共類庫
  12initPHP是一款輕量級的php開發框架
  13SpeedPHP是一款全功能的國產PHP應用框架系統

處理流程

  獲取請求=》全局過濾=》模塊文件=C函數內容=M函數內容=V顯示

審計方法

  通讀原文

    網站目錄結構、函數集文件、配置文件、安全過濾文件、index文件

    優點:瞭解程序的架構和業務邏輯,挖掘高質量漏洞,一般適合企業對自身的剷平審計

    缺點:耗費時間多,程序比較大

  敏感關鍵字回溯

    優點:可以快速高效挖出想要的漏洞,最常用的方法,判斷敏感觸發點的位置及上下文,追蹤參數源頭

    缺點:覆蓋不到邏輯漏洞的挖掘,不能瞭解程序的基本框架

  查找可控變量

    功能定向審計(推薦)

    程序安裝、文件上傳、文件管理、登陸驗證、備份恢復、找回密碼

  一切皆有可能

    一切輸入都是有害的,可以控制的變量

    一切進入函數的變量都是有害的,有的變量到達有利用價值的函數(危險函數)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章