1.雙擊執行桌面phpstudy.exe軟體
2.點選啟動按鈕,啟動伺服器環境
1.雙擊啟動桌面seay源**審計系統軟體
3.點選新建專案按鈕,彈出對畫框中選擇(c:\phpstudy\www\ phpcms 2008),點選確定
漏洞分析
1.點選展開/yp/web/include/common.inc.php
<?php
defined('in_phpcms') or exit('access denied');
$userid = $userid ? $userid : intval(query_string);
$r = $db->get_one("select * from `".db_pre."member_company` where `userid`='$userid'");
if($r)
if(!$userid)
程式首先賦值乙個use
rid變
量,然後
使用賦值
完成變數
拼接sq
l語句執
行,sq
l語句執
行完成以
後返回數
據給us
erid
變數,然
後使用賦
值完成變
量拼接s
ql語句
執行,s
ql語句
執行完成
以後返回
資料給r變數陣列,如果r變數
存在內容
,則將變
量陣列內
容加入到
當前檔案
的符號表
中。如果
r變數存
在內容,
則將變數
陣列內容
加入到當
前檔案的
符號表中
。如果userid變數內容為false則將顯示錯誤頁面內容,但是目前use
rid並
沒有找到
在**獲
取。2.如
果2.如果us
erid
並沒有找
到在**
獲取。2
.如果userid不為false,則接著往下執行
if(empty($tplname)) $tplname = 'default';
//使用者選擇的預設模板
$companytpl_config = include phpcms_root.'templates/'.tpl_name.'/yp/companytplnames.php';
$tpl = $companytpl_config[$tplname]['tplname'];
define('tpl', $tpl);
define('web_skin', 'templates/'.tpl_name.'/yp/css/');
if($diy)
else
$menu = string2array($menu);
**接著進行初始化模板檔案,最後將men
u變數傳
輸到st
ring
2arr
ay()
函式,目
前又來疑
問,me
nu變數
傳輸到s
trin
g2ar
ray(
)函式,
目前又來
疑問,menu變數從何而來?
3.現在需要了解一下string2array()到底什麼作用,string2array函式存放在include/global.func.php
function string2array($data)
看到函式發現,內部有eval敏感函式,並且把傳送過去的men
u進行執
行,現在
有這麼個
假設,如
果men
u進行執
行,現在
有這麼個
假設,如
果menu變數可以控制,那麼完全進行任意**執行。
4.目前成立這個假設use
rid主
要是為了
去資料庫
查詢內容
,然後將
返回的內
容構成一
個陣列,
使用ex
trac
t()將
陣列的內
容新增到
當前符號
表中,從
而也就生
成use
rid主
要是為了
去資料庫
查詢內容
,然後將
返回的內
容構成一
個陣列,
使用ex
trac
t()將
陣列的內
容新增到
當前符號
表中,從
而也就生
成menu變數,如果能夠讓資料庫返回空,不讓他覆蓋或者生成新的men
u變數,
然後在別
的位置生
成新的m
enu變
量,然後
在別的位
置生成新
的menu變數,從而執行想執行**。
5.在include/common.inc.php檔案中,會將get、post、cookie轉換成變數
if($_request)
else
if(!defined('in_admin')) $_request = filter_xss($_request, allowed_htmltags);
if($_cookie) $db->escape($_cookie);
}
所以可以利用這個位置提前生成men
u變數和
menu
變數和userid變數,並且把use
rid內
容置位數
據庫不存
在的內容
,use
rid內
容置位數
據庫不存
在的內容
,menu變數內容為想要執行的**。
漏洞利用
1.訪問
菜刀直接連線
//密碼 menu
phpcms2008修改登入密碼
update phpcms member set password eb75120cc80bdd839f3aeccd1ffb5965 where phpcms member userid 1 limit 1 update phpcms member cache set password eb7512...
phpcms2008模組開發目錄檔案分析
1 模組目錄說明。install 模組安裝目錄,安裝模組時呼叫 uninstall 模組解除安裝目錄,解除安裝模組時呼叫 admin 模組的後台管理目錄 api 個人空間新增的應用api介面 include 引用檔案目錄 2 各相關檔案說明 a 模組安裝檔案說明 install目錄下 模組安裝時按順...
phpcms2008製作標籤以及標籤模板教程
標籤設定教程 我們從簡單到複雜 第一種 中文標籤 這種再簡單不過了,就是通過後台設定標籤引數呼叫 通過選擇讀取段來進行呼叫,這裡設定都是中文字,我們都是中國人,也就不多說了。欄目 常用變數表示 catid 可以用這個變數呼叫,也可以指定到某個欄目下面,用變數呼叫,它會根據當前頁面的欄目來獲取id從而...