<?php |
$username = "360" ; //设置用户名 |
$password = "360" ; //设置密码 |
ob_start(); |
set_time_limit(0); |
error_reporting (E_ALL & ~E_NOTICE); |
$md5 = md5(md5( $username ).md5( $password )); |
$realpath = realpath ( './' ); |
$selfpath = $_SERVER [ 'PHP_SELF' ]; |
$selfpath = substr ( $selfpath , 0, strrpos ( $selfpath , '/' )); |
define( 'REALPATH' , str_replace ( '//' , '/' , str_replace ( '\\' , '/' , substr ( $realpath , 0, strlen ( $realpath ) - strlen ( $selfpath ))))); |
define( 'MYFILE' , basename ( __FILE__ )); |
define( 'MYPATH' , str_replace ( '\\' , '/' , dirname( __FILE__ )). '/' ); |
define( 'MYFULLPATH' , str_replace ( '\\' , '/' , ( __FILE__ ))); |
define( 'HOST' , "http://" . $_SERVER [ 'HTTP_HOST' ]); |
?> |
<html> |
<head> |
<title>360网站卫士-PHP-DOS攻击脚本专杀工具></title> |
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> |
<style> |
body{margin:0px;} |
body,td{font: 12px Arial,Tahoma;line-height: 16px;} |
a {color: #00f;text-decoration:underline;} |
a:hover{color: #f00;text-decoration:none;} |
.alt1 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#f1f1f1;padding:5px 10px 5px 5px;border-right: 1px solid #ddd;} |
.alt2 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#f9f9f9;padding:5px 10px 5px 5px;border-right: 1px solid #ddd;} |
.focus td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#d6e9c6;padding:5px 10px 5px 5px;} |
.head td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#e9e9e9;padding:5px 10px 5px 5px;font-weight:bold;} |
.head td span{font-weight:normal;} |
</style> |
</head> |
<body> |
<?php |
if (!(isset( $_COOKIE [ '360wzb' ]) && $_COOKIE [ '360wzb' ] == $md5 ) && !(isset( $_POST [ 'username' ]) && isset( $_POST [ 'password' ]) && (md5(md5( $_POST [ 'username' ]).md5( $_POST [ 'password' ]))== $md5 ))) |
{ |
echo '<center><img src="http://wangzhan.360.cn/statics/img/logo.png?1381994291" title="360网站卫士" border="0"><br/>PHP-DOS攻击脚本专杀工具<br/><br/><br/><br/><form id="frmlogin" name="frmlogin" method="post" action="">用户名: <input type="text" name="username" id="username" /> 密码: <input type="password" name="password" id="password" /> <input type="submit" name="btnLogin" id="btnLogin" value="登陆" /></form></center>' ; |
} |
elseif (isset( $_POST [ 'username' ]) && isset( $_POST [ 'password' ]) && (md5(md5( $_POST [ 'username' ]).md5( $_POST [ 'password' ]))== $md5 )) |
{ |
setcookie( "360wzb" , $md5 , time()+60*60*24*365, "/" ); |
echo "登陆成功!" ; |
header( 'refresh: 1; url=' .MYFILE. '?action=scan' ); |
exit (); |
} |
else |
{ |
setcookie( "360wzb" , $md5 , time()+60*60*24*365, "/" ); |
$action = isset( $_GET [ 'action' ])? $_GET [ 'action' ]: "" ; |
|
if ( $action == "logout" ) |
{ |
setcookie ( "360wzb" , "" , time() - 3600); |
Header( "Location: " .MYFILE); |
exit (); |
} |
?> |
<div style= "width:1000px;margin:0px auto;border: 1px solid #ccc;" > |
<table border= "0" cellpadding= "0" cellspacing= "0" width= "100%" > |
<tbody> |
<tr class = "head" > |
<td><img src= "http://wangzhan.360.cn/statics/img/logo.png?1381994291" title= "360网站卫士" border= "0" ></td> |
</tr> |
<tr class = "head" > |
<?php |
$v = file_get_contents ( 'http://data.wangzhan.360.cn/version.php' );//检查版本更新 |
$v = explode ( '|' , $v ); |
?> |
<td>PHP-DOS攻击脚本专杀工具 <span style= "float: right;" >您的IP:<?php if ( $_SERVER [ 'SERVER_ADDR' ]){ echo $_SERVER [ 'SERVER_ADDR' ];} else { echo $_SERVER [ 'LOCAL_ADDR' ];}?> | 系统时间:<?php echo date ( "Y-m-d H:i:s" );?></span></td> |
</tr> |
<tr class = "head" > |
<td align= "center" ><?php if ( $v [2]){ echo "发现新版本,请立即更新到 V2.0 <a href='http://wangzhan.360.cn/statics/360doskill.zip'>点击下载</a>" ;} else { echo "当前已是最新版本" ;}?></td> |
</tr> |
</tbody></table> |
<br> |
<?php |
$dir = isset( $_POST [ 'path' ])? $_POST [ 'path' ]:MYPATH; |
$dir = substr ( $dir ,-1)!= "/" ? $dir . "/" : $dir ; |
?> |
<form name= "frmScan" method= "post" action= "" > |
<table width= "100%%" border= "0" cellspacing= "0" cellpadding= "0" > |
<tr> |
<td width= "45" style= "vertical-align:middle; padding-left:5px;" >扫描路径:</td> |
<td width= "690" > |
<input type= "text" name= "path" id= "path" style= "width:600px" value= "<?php echo $dir?>" > |
<input type= "submit" name= "btnScan" id= "btnScan" value= "开始扫描" ></td> |
</tr> |
</table> |
</form> |
<?php |
if (isset( $_POST [ 'btnScan' ])) |
{ |
$start =time(); |
$list = "" ; |
|
if (! is_readable ( $dir )) |
$dir = MYPATH; |
$count = $scanned =0; |
find( $dir ); |
$end =time(); |
$spent = ( $end - $start ); |
?> |
<div style= "padding:10px; background-color:#ccc" >扫描: <?php echo $scanned ?> 文件 | 发现: <?php echo $count ?> 行恶意代码 | 耗时: <?php echo $spent ?> 秒 | 请站长手动删除以下恶意文件</div> |
<table width= "100%" border= "0" cellspacing= "0" cellpadding= "0" > |
<tr class = "head" > |
<td width= "15" align= "center" >No.</td> |
<td width= "350" >恶意文件</td> |
<td width= "100" >所在行号</td> |
<td width= "300" >详细内容</td> |
</tr> |
<?php |
echo $list ; |
?> |
</table> |
<center><br /><br />此页面是由 <A HREF= "http://wangzhan.360.cn" target= "_BLANK" >360网站卫士</a>提供的PHP-DOS攻击脚本专杀工具页面,使用反馈请联系:<a href= "mailto:dongfang-s@360.cn?subject=DOS-feedback" >dongfang-s@360.cn</a>.<br /><br /> |
Copyright©2011-2013 360网站卫士 <br /></center> |
<script src= "http://data.wangzhan.360.cn/version.php" ></script> |
<?php |
} |
} |
ob_flush(); |
?> |
</div> |
</body> |
</html> |
<?php |
$self = basename ( $_SERVER [ 'PHP_SELF' ]); |
function cut_str( $string , $sublen , $start = 0, $code = 'UTF-8' ) { |
if ( $code == 'UTF-8' ) { |
$pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/" ; |
preg_match_all( $pa , $string , $t_string ); |
if ( count ( $t_string [0]) - $start > $sublen ) return join( '' , array_slice ( $t_string [0], $start , $sublen )) . "..." ; |
return join( '' , array_slice ( $t_string [0], $start , $sublen )); |
} else { |
$start = $start * 2; |
$sublen = $sublen * 2; |
$strlen = strlen ( $string ); |
$tmpstr = '' ; |
for ( $i = 0; $i < $strlen ; $i ++) { |
if ( $i >= $start && $i < ( $start + $sublen )) { |
if (ord( substr ( $string , $i , 1)) > 129) { |
$tmpstr .= substr ( $string , $i , 2); |
} else { |
$tmpstr .= substr ( $string , $i , 1); |
} |
} |
if (ord( substr ( $string , $i , 1)) > 129) $i ++; |
} |
if ( strlen ( $tmpstr ) < $strlen ) $tmpstr .= "..." ; |
return $tmpstr ; |
} |
} |
function find( $directory ) { |
$self = basename ( $_SERVER [ 'PHP_SELF' ]); |
global $list , $count , $scanned ; |
$mydir = dir( $directory ); |
while ( $file = $mydir -> read()) { |
if (( is_dir ( "$directory/$file" )) && ( $file != "." ) && ( $file != ".." )) { |
find( "$directory/$file" ); |
} else { |
if ( $file != $self ){ |
if ( $file != "." && $file != ".." && preg_match( "/.php/i" , $file )) { |
$fd = realpath ( $directory . "/" . $file ); |
$fp = fopen ( $fd , "r" ); |
$scanned +=1; |
$i = 0; |
while ( $buffer = fgets ( $fp , 4096)) { |
$i ++; |
if ((preg_match( '/(pfsockopen|fsockopen)\("(udp|tcp)/i' , $buffer )) || (preg_match( '/Php 2012 Terminator/i' , $buffer )) || (preg_match( '/[\$_GET|\$_REQUEST]\[\'rat\']/i' , $buffer )) || (preg_match( '/Tcp3 CC.center/i' , $buffer )) || (preg_match( '/xdos.s/i' , $buffer )) || (preg_match( '/儏摓煁晜泟/i' , $buffer ))) { |
$count += 1; |
$j = $count % 2 + 1; |
$buffer = htmlspecialchars(cut_str( $buffer ,80,0)); |
$list .= "<tr class = 'alt$j' onmouseover= 'this.className=\"focus\";' onmouseout= 'this.className=\"alt$j\";' > |
<td> $count </td> |
<td> $fd </td> |
<td>第 $i 行</td> |
<td> $buffer </td> |
</tr>"; |
} |
} |
fclose( $fp ); |
} |
} |
} |
} |
$mydir -> close(); |
} |
?> |