买股票怎么加杠杆佰朔资本介绍-k线图形态24种经典图解-【东方资本】,股票配资交易app,配资炒股比例国家规定是多少,配资在线平台排行榜

提交需求
*
*

*
*
*
立即提交
點擊”立即提交”,表明我理解并同意 《美創(chuàng)科技隱私條款》

logo

    產品與服務
    解決方案
    技術支持
    合作發(fā)展
    關于美創(chuàng)

    申請試用
      php代碼審計案例之Bluecms(一)
      發(fā)布時間:2023-02-17 閱讀次數(shù): 753 次

       前 言

      所謂代碼審計是一種以發(fā)現(xiàn)程序錯誤,安全漏洞和違反程序規(guī)范為目標的源代碼分析。在安全領域,為了發(fā)現(xiàn)安全問題,常通過黑盒測試、白盒測試方法來盡可能的發(fā)現(xiàn)業(yè)務程序中的安全問題,代碼審計就是白盒測試的常用方法,相較于黑盒測試,由于白盒測試能接觸到源代碼,可以更加詳細的理解業(yè)務程序邏輯,也能更全面的發(fā)現(xiàn)安全風險。接下來本系列文章將以Bluecms v1.6 作為php代碼審計案例為切入點,過程中結合常見源代碼掃描工具和動態(tài)調試方法,來詳細介紹php代碼審計的思路,相關源代碼網上也都有公開。





       審計環(huán)境說明
      環(huán)境phpstudy
      Apache 2.4.9
      Mysql 5

      Php 5.6.9





       源代碼審計工具掃描結果
      圖片
      圖片
      圖片




       系統(tǒng)入口梳理

      在對一個真實cms進行審計的時候,先整體對網站的目錄結構大致做個全局分析,了解每個目錄的基本功能以及目錄入口文件index.php所在位置。對index.php的分析,個人認為主要是為了了解下面幾個問題。

      1.頁面路由的流程
      2.系統(tǒng)的認證、鑒權邏輯
      3.初始化的數(shù)據(jù)過濾方法

      4.數(shù)據(jù)庫的連接方式

      圖片

      根據(jù)index.php內容,大致可以看到,主要就是獲取數(shù)據(jù)庫數(shù)據(jù),并在首頁展現(xiàn),這個過程中沒有任何的交互判斷,只是個靜態(tài)展現(xiàn)。

      圖片
      圖片
      圖片

      到這里應該就可以知道這個系統(tǒng)前臺并沒有做統(tǒng)一入口再分發(fā),因此是一個多入口的系統(tǒng)。而多入口系統(tǒng),一般就會需要通過標準化的函數(shù)來對多個入口進行過濾檢查鑒權等。查看根目錄下的其他文件,基本都引用了同一個文件,即/include/common.inc.php文件,接下來我們來看一下common.inc.php文件

      會話相關配置

      圖片

      外部數(shù)據(jù)過濾,如果沒有配置gpc,則通過addslashes函數(shù)進行過濾,但這里我們要注意無論是gpc還是addslashes,它都沒有對$_SERVER進行過濾,且無法對數(shù)字型的注入產生效果,這兩個點要注意,是可能存在漏洞的地方。

      圖片

      設置時區(qū)和獲取請求ip

      圖片

      配置數(shù)據(jù)庫連接,這里注意是使用mysql直接連接,針對數(shù)據(jù)庫連接類型,我們注意是否數(shù)據(jù)庫內使用gbk編碼,如果是,可能存在寬字節(jié)注入

      圖片
      圖片

      而這里正好是gbk編碼方式,因此這是一個可能存在漏洞的點,要注意。

      Smarty模版配置

      圖片

      用戶黑名單排查。注意這里雖然經過了黑名單排查,但其實即使是在黑名單中,后面的程序邏輯也是可以繼續(xù)走下去的。

      圖片

      用戶權限校驗,若不存在SESSION,則進行COOKIE校驗。

      圖片

      因此總的來看,這個入口檢查文件的主要功能包括有配置phpsession會話、使用gpc/addslashes進行外部數(shù)據(jù)初始化過濾、設置時區(qū)、過濾黑名單IP、初始化數(shù)據(jù)庫連接、Smarty渲染、用戶session及cookie的校驗。當然這只是前端普通用戶的流程。根據(jù)目錄,我們可以看到存在admin管理員后臺。

      圖片

      同理,我們也需要了解下admin管理員的index.php和入口文件。來把握住后臺的邏輯

      Index.php基本是類似的,渲染首頁的頁面,同時通過admin/include/common.inc.php進行入口檢查

      圖片

      接下來看下admin/include/common.inc.php文件,其它方面都是和前臺一樣的,在鑒權這個地方,它主要對管理員身份進行檢查。即如果session為空,則檢查cookie,如果不為空,則更新session。

      圖片

      到這里我們基本上把bluecms的前后端的入口流程理清,其中涉及到用戶鑒權、數(shù)據(jù)庫連接、外部數(shù)據(jù)過濾、頁面渲染展示等。而且從流程看,目前發(fā)現(xiàn)外部數(shù)據(jù)過濾和數(shù)據(jù)庫連接處,存在理論上的安全風險。想要全面地進行代碼審計,這一步是必不可少的,切記。

      以上是本章節(jié)的主要介紹內容,后續(xù)將繼續(xù)更新具體漏洞的審計方法,敬請期待。



      免費試用
      服務熱線

      馬上咨詢

      400-811-3777

      回到頂部