<?php
//開啟session
session_start()
;//超時時間
@set_time_limit(0
);//設定編碼
header
('content-type:text/html;charset=utf-8');
//錯誤級別,報告警告之外的所有錯誤
error_reporting
(e_all
^e_notice);
//設定時區
date_default_timezone_set
('prc');
//**絕對根路徑
define
('root_path'
,str_replace
('\\'
,'/'
,substr
(dirname
(__file__),
0,-7
)));
//引入配置檔案
require
root_path
.'/config/config.inc.php'
;//引入smarty
require
root_path
.'/public/smarty/smarty.class.php'
;//自動載入類
function
__autoload
($_classname
)elseif
(substr
($_classname,-
5)=='model'
)else
}//單入口
factory:
:setaction()
->
run();
?>
**前面主要進行初始化一些常量和配置,其中autoload函式作用是當你進行初始化類在本頁面不存在時候就會自動呼叫autoload()函式,同時會把名字當做引數傳輸過去。最後執行到入口。呼叫factory類的setaction()方法,並執行run()方法。
進入到factory類中
class
factory}if
(!file_exists
(root_path
.'/controller/'
.ucfirst
($_a).
'action.class.php'))
$_a=
'login'
;eval
('self::$_obj = new '
.ucfirst
($_a).
'action();');
return self:
:$_obj;}
static
public
function
setmodel()
static
public
function
geta()
return
'login';}
}
可以看到先是呼叫了geta()方法獲取傳遞的引數,然後通過in_array()判斷變數值是否在陣列中。如果在陣列中則判斷是否有session標記,否則跳轉到登陸頁面。
接著判斷檔案是否存在。然後通過eval()來例項化。亮點來了,看到eval()函式,就想到命令執行漏洞。那如果想要利用eval()函式那就要繞過file_exists()函式,這樣才能讓$_a可控。
而file_exists()函式中可以有一些特殊的字元例如:; . /等,而當file_exists()函式遇到…/時就會返回到上一級。而file_exists()函式有個小bug當遇到;/…/時會返回上一級且不會再判斷其後的路徑或檔案。
payload:
factory()
;phpinfo()
;//../
其中factory();是為了閉合前面new字元,不然程式會報錯,後面緊接著執行phpinfo();函式。
eval()函式在執行時其中有多個函式,則第乙個必須執行正確,第乙個以後也必須是函式,但是正確與否都可以執行。
eval
('phpinfo();phpinfo();fdsfsdfds'
.'asdasdsa();');
//成功執行
eval
('asdasdsa();phpinfo();fdsfsdfds'
.'asdasdsa();');
//執行失敗
實驗總結
本次實驗主要掌握**執行挖掘和利用方法。
DVWA 命令執行審計
使用post方式接受表單,isset 判斷是否傳入,將傳入的 ip賦值給 target 使用php name獲取主機資訊,用 stristr 判斷是否是 win系統 通過if進行判斷是否為空後,使用shell exec 執行並將所有輸出流作為字串返回 此執行過程無任何過濾。將ip的值賦給變數targ...
Linux使用audit審計使用者執行命令
注 本文基於centos 6.5編寫 audit作為審計元件,除了可以監控檔案的修改,還可以監控系統呼叫的執行。受snoopy啟發,通過audit監控execve 系統呼叫,同樣可以實現使用者操作的記錄。audit作為基本元件會隨著系統一起安裝,就不再介紹安裝方式了,反正也可以直接yum安裝。新增如...
開始 執行 輸入的命令集錦 菜鳥必讀)
nslookup ip位址偵測器 explorer 開啟資源管理器 logoff 登出命令 tsshutdn 60秒倒計時關機命令 lusrmgr.msc 本機使用者和組 services.msc 本地服務設定 oobe msoobe a 檢查xp是否啟用 notepad 開啟記事本 cleanmg...