/var/www/html/include/web_concent.php 不存在
/etc/httpd/conf/httpd.conf 不存在
/usr/local/apache/conf/extra 不存在
/usr/local/apache/conf/httpd.conf 不存在
/usr/local/apache2/conf/httpd.conf 存在。
并找到了目标站的路径。路径:/home/wwwroot/zhaosheng.axhu.cn/
有了路径我们就好读网站源码了。直接读后台文件:admin/index.php本来想构造下万能密码的,想起来了GPC为on。
好嘛,那我们找到验证后台的SQL语句来。找出表名和字段名。
表名:web_user 字段名:username,password。工具增加表名和字段名,很快得出了结果。
但是密码是加密的,当时没注意以为是md5加密。去解密的时候提示不符合。直接明文试下也失败了。
这个时候,去尝试了下用mysql的root密码社工失败。
暂时陷入了僵局...
继续读后台文件看能发现什么验证饶过不,或是能否发现些包含,eval等。结果还是没收获。
最后回到后台验证页面,刚发现了他的验证并不是在这个文件里完成的,而是在包含的别的文件里完成。
一路读代码跟踪代码到公共函数文件里。 后台文件code:
<?php/********************************************
/ 作者:匿名
/ 时间:不详
/ 作用:用户登录
********************************************/
require'./include/common.inc.php';
$username = $_POST['username'];
$password = $_POST['password'];
if(!empty($username) && !empty($password) && !empty($web_auth_key)){
$UserInfo =UserLogin($username,$password);
if($UserInfo) {
//保存用户信息
SetUserInfo($UserInfo);
//修改登陆次数和状态
$sql="UPDATE web_user SET
Online=1,Logincount=Logincount+1,Lasttime='".$PHP_DATE."' WHERE
Username='".$username."'";
$db->sql_query($sql);
//添加日志
AddLog("登录系统");
省略代码....?>
最后跟到global.func.php发现公共函数里有个加密解密函数。
/**
*加密,分别能加密和解密。通过传入$operation = 'ENCODE'|'DECODE' 来实现。
*/
functionauthcode($string,$operation='ENCODE') {
if($operation=='ENCODE'){
$OutTxt = "";
for ($x=0;$x<strlen($string);$x++) {
$nr= ord($string[$x]);
if($nr < 128) {
$nr += 128;
}
elseif($nr > 127) {
$nr -= 128;
}
$nr= 255 - $nr;
$OutTxt.= sprintf("%02x", $nr);
}
return $OutTxt;
}else{
$OutTxt = "";
for ($x=0;$x<(strlen($string)/2);$x++){
$nr= hexdec($string[$x * 2] . $string[($x * 2) + 1]);
$nr= 255 - $nr;
if($nr < 128) {
$nr += 128;
}
elseif($nr > 127) {
$nr -= 128;
}
$OutTxt.= chr($nr);
}
return $OutTxt;
}这下好了,我们把得的密码放本地来解密就ok!
登录后台: