錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠(chéng)服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項(xiàng)目 服務(wù)報(bào)價(jià) 維修流程 IT外包服務(wù) 服務(wù)器維護(hù) 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠(chéng)服務(wù)技術(shù)文章
PHP代碼審計(jì)實(shí)戰(zhàn)思路淺析

作者: 佚名  日期:2018-10-30 09:35:18   來源: 本站整理

戰(zhàn)略性的思考而非戰(zhàn)術(shù)

對(duì)于面向過程寫法的程序來說,最快的審計(jì)方法可能時(shí)直接丟seay審計(jì)系統(tǒng)里,但對(duì)于基于mvc模式的程序來說,你直接丟seay審計(jì)系統(tǒng)的話,那不是給自己找麻煩嗎?

像面向過程寫法的程序,可以找下它的公共函數(shù)文件有啥可以利用的不,然后就是丟seay審計(jì)系統(tǒng)。

而對(duì)于基于mvc寫法的程序來說,跟讀他的入口文件,了解整個(gè)程序的運(yùn)行流程跟目錄結(jié)構(gòu),之后再深入去了解它的核心類庫,如果核心類庫存在漏洞的話,那在這套程序中找出個(gè)漏洞的希望那不是一般的大啊!了解了整個(gè)框架運(yùn)行流程后,也沒從核心類庫中發(fā)現(xiàn)什么可利用的點(diǎn)的話,這時(shí)就可以從功能點(diǎn)入手了(這時(shí)可以把源碼丟進(jìn)seay源代碼審計(jì)系統(tǒng)了)。

一套組合拳打下了后還是沒找到漏洞咋辦?沒事,換套程序繼續(xù)。如果換了n套程序都找不出來,那就換個(gè)人吧……

實(shí)戰(zhàn)環(huán)節(jié)

目標(biāo):某開源cms(icms) 環(huán)境:win+phpstudy+sublime

 

大概目錄結(jié)構(gòu)長(zhǎng)這樣

 

 

├── app       應(yīng)用 ├── cache     緩存 ├── core      icms程序入口 ├── iPHP      iphp框架文件 ├── public    公共資源 ├── res       用戶資源 └── template  模板

 

 

 

打開index.php

發(fā)現(xiàn)載入了一個(gè)icms.php,然后調(diào)用了iCMS::run()方法(如果你第一反應(yīng)是以為iCMS.php是個(gè)類文件,那你后面的審計(jì)估計(jì)有點(diǎn)難受。)

跟進(jìn)iCMS.php

該處載入了配置跟框架文件,繼續(xù)跟進(jìn)iPHP.php

載入幾個(gè)框架文件,然后調(diào)用iPHP::bootstrap()方法,這回差不多了,繼續(xù)跟進(jìn)iPHP::bootstrap()

 

該處做了些環(huán)境配置,然后就是調(diào)用核心的iWAF、iSecurity類來一下全局過濾(iWAF這些先跟),看到這可有有的小伙伴又有疑惑了,iWAF什么時(shí)候加載進(jìn)來了啊?

看到48行的spl_autoload_register函數(shù)了沒,再具體點(diǎn),看到56行那個(gè)autoload了沒

這也沒看到哪有include、require之類的啊,怎么加載進(jìn)來的?別急,繼續(xù)跟進(jìn)57行的self::auto_require

沒錯(cuò)就是這了,不過代碼太長(zhǎng)了就不貼了,大概就是判斷傳來的類名中是否有Admincp或者App,如果沒有就加載app/xx/xx.class.php,如果有Admincp則加載app/xx/xx.Admincp.php,如果有App則加載app/xx/xx.app.php,如果有Func則加載app/xx/xx.func.php,如果以上都不滿足則去iPHP/core/下找

iPHP::bootstrap()大概知道它干了什么了,再回頭去看看iCMS::init()

大概就是初始化配置信息,繼續(xù)往回看,跟進(jìn)iCMS::run()

繼續(xù)跟進(jìn)iPHP::run

 

(代碼有點(diǎn)長(zhǎng))大概就是從post或get獲取應(yīng)用名,加載類跟實(shí)例化類,調(diào)用方法等

劃重點(diǎn)了(后面會(huì)用到),這里的文件名格式是xx.app.php,類名是xxApp,其實(shí)整套程序并不止index.php這一個(gè)入口文件,還有admincp.php、user.php等,其中加載的文件名格式跟類名都是不一樣的,比如:訪問index.php加載的是xx.app.php的xxApp類,訪問admincp.php加載的xx.admincp.php的xxAdmincp類

跟完入口文件后,對(duì)整個(gè)框架是怎么運(yùn)行的,都有了個(gè)大概的了解,接下來可以去深入了解了

我跟啊跟,發(fā)現(xiàn)核心類中的iHttp類的remote方法有點(diǎn)意思,在iPHP/core/iHttp.class.php 130行

remote方法封裝了curl,用來獲取遠(yuǎn)程頁面內(nèi)容,整個(gè)方法并沒有對(duì)url進(jìn)行任何限制或過濾,如果調(diào)用這個(gè)方法前也沒用對(duì)url進(jìn)行限制的話,那ssrf就跑不了了

全局搜索下看哪調(diào)用了這個(gè)方法,而remote是個(gè)靜態(tài)方法,調(diào)用格式為iHttp::remote,所以直接搜這個(gè)就可以了

我想找前臺(tái)的漏洞,so,直接看哪個(gè)的文件名格式類似xx.app.php就好啦

找啊找,僅發(fā)現(xiàn)前臺(tái)只有一處調(diào)用了該方法

找到之后,跟進(jìn)去看看

把$avatar傳了進(jìn)去,繼續(xù)往上翻翻,看有沒有啥過濾

一直往上翻,只看到這句

會(huì)不會(huì)在iSecurity::escapeStr這做了限制呢?繼續(xù)跟進(jìn)去看看

貌似沒有對(duì)url做限制!!!

再往上翻翻,看看是哪個(gè)方法

這回穩(wěn)了,手動(dòng)構(gòu)造數(shù)據(jù)包

解釋下個(gè)字段:

secode為驗(yàn)證碼,可從http://127.0.0.1/icms/public/api.php?app=public&do=seccode獲得,驗(yàn)證碼信息存在cookie里,只要cookie不變,驗(yàn)證碼就可一直用。

username跟nickname每次請(qǐng)求都要改變,avatar為傳入的url,這個(gè)漏洞還有兩處有點(diǎn)蛋疼的地方,第一,username跟nickname每次都要改變,而且這些值都是會(huì)存進(jìn)數(shù)據(jù)庫的;第二,這里的ssrf是沒有回顯。

使用dict來舉個(gè)例子,訪問一個(gè)未開啟端口時(shí)如下

訪問一個(gè)開啟的端口時(shí)如下
如果上述說的都做完還沒發(fā)現(xiàn)漏洞,那可以嘗試丟到seay源代碼審計(jì)系統(tǒng),或者根據(jù)功能點(diǎn)進(jìn)行審計(jì),找找邏輯漏洞
如果做完上述操作后再用軟件來輔助,會(huì)輕松的多,比如,seay源代碼審計(jì)系統(tǒng)掃出來如下
拿第二條距離,漏洞描述是referer偽造會(huì)引起sql,點(diǎn)擊瞅瞅
看到referer先進(jìn)入了iSecurity::escapeStr,然后再進(jìn)入iDB::insert,通過前面的審計(jì)我知道iSecurity::escapeStr對(duì)單引號(hào)等做了過濾,所以普通的sql注入是沒希望了,只能看看還有沒有其他方式能結(jié)合利用(我記得這是有注入的……)
如果我是一上來就用軟件的話,那我現(xiàn)在可能還在一步一步的追一個(gè)函數(shù),這樣會(huì)增加不少功夫
本文到這就結(jié)束了,emmm!



熱門文章
  • 機(jī)械革命S1 PRO-02 開機(jī)不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點(diǎn)不...
  • 三星一體激光打印機(jī)SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請(qǐng)求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對(duì)講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機(jī)始終停留在開機(jī)界面...
  • 常見打印機(jī)清零步驟
  • 安裝驅(qū)動(dòng)時(shí)提示不包含數(shù)字簽名的解...
  • 共享打印機(jī)需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機(jī)的...
  • 錦州廣廈電腦上門維修

    報(bào)修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號(hào):遼ICP備2023002984號(hào)-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護(hù),上門維修電腦,黑屏藍(lán)屏死機(jī)故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 国产嫖妓一区二区三区无码| 亚洲av无码偷拍在线观看| 一本色道无码道DVD在线观看| 无码人妻精品一二三区免费| 中出人妻中文字幕无码| 精品无码一区二区三区在线| 久久激情亚洲精品无码?V| 无码天堂va亚洲va在线va| 一本加勒比hezyo无码专区| AV无码久久久久不卡网站下载 | 亚洲AV无码片一区二区三区| 天堂无码在线观看| 久久天堂av综合色无码专区 | 亚洲精品无码久久毛片| 亚洲AV无码一区二区三区网址| 亚洲男人第一无码aⅴ网站| 亚洲AV无码成人网站在线观看| 曰韩精品无码一区二区三区| 精品无码专区亚洲| 亚洲精品无码人妻无码| 91无码人妻精品一区二区三区L| 波多野结衣AV无码| 国产精品亚洲аv无码播放| 亚洲真人无码永久在线| 亚洲?V无码成人精品区日韩 | 久久久久亚洲av无码尤物| 无码137片内射在线影院| 91精品日韩人妻无码久久不卡| 狠狠精品久久久无码中文字幕| 色综合色国产热无码一| 日韩成人无码一区二区三区| 亚洲午夜无码久久久久小说| 精品无码一区二区三区亚洲桃色| 亚洲精品无码av片| 97久久精品无码一区二区| 亚洲AV无码国产精品色| 亚洲AV无码久久久久网站蜜桃| 一本天堂ⅴ无码亚洲道久久| 色国产色无码色欧美色在线| 国产精品亚洲а∨无码播放麻豆 | 亚洲av无码乱码在线观看野外|