文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>分析拿下114LA网址导航方法

分析拿下114LA网址导航方法

时间:2011-01-21  来源:心灵

纯属分析 并不是漏洞 也可以叫漏洞
程序文件不多 大致能和用户交换的就是 留言本 和网址提交
2个都详细看了几次 按本小菜看来是没有使用可能性
但看完下列分析或许可能用到
现在只剩下后台可以找了
admin/index.php 必须经过这里才能使用里面的文件
所以从这里下手
经典对白 看代码 index.php
<?
require '../init.php';
if(empty($_GET['c']) || ($_GET['c']=='login' and (empty($_GET['a']) || $_GET['a']=='login')) || $_GET['c']=='securimage')
//看来只能运行login和securimage 2个 一个是登录 一个是验证码
{}
else
{
mod_auth::instance(); //看权限检测
session_write_close();
}
load_controller();
?>
看文件 mod_auth
$auth = mod_login::instance();
if(!$auth->is_login())
{
header("location: ./index.php?c=login");
}
//经测试这里不能用关闭脚本方法去绕过 因为还有别的地方验证
!$auth 就是instance转过来 那段不用看了 没什么作用


主要是is_login 看下
public function is_login()
{
$cookie = array_var($_COOKIE, AUTH_KEY . '_admin_auth');
//获取COOKIE头 注AUTH_KEY为114la
if (isset($cookie) and !empty($cookie))
//判定是否为空.....
{
$cookie_data = explode(':', base64_decode($cookie));
//重点 解密这段东西并变成数组 用;分开
if (count($cookie_data) == 3)
//如果有3组数据
{
$current_cookie_auth = $cookie_data [1];
if ($current_cookie_auth == $this->())
//get_user_agent 就是
//return md5(AUTH_KEY . '_' . $_SERVER ['HTTP_USER_AGENT']);
//AUTH_KEY 是114la 然后加个_ 再加浏览器版本 然后MD5加密 这里可以自己结构了
{
$current_cookie_username = $cookie_data [0];
$current_cookie_password = $cookie_data [2];
//看到没? 账号密码是保存在COOKIES里的
if (self::verify_login_in($cookie_data [0], $cookie_data [2]))
//下面就是 存在后给予管理员权限的代码 忽略不看了
//下面是 verify_login_in 检测代码
$password_md5 = md5($password);
$select = "select * from ylmf_admin_user where
`name`='$username' and `password`='$password_md5' ";
if (app_db::query($select))
//以上是自动登录代码
然后就是看114la_admin_auth 是如何加密的

看登录验证代码


if (self::verify_login_in($username, $password))
//$username, $password是POST提交的 全宇宙的登录方式都基本这样
{
$auth_key = self::get_user_agent();
//上面解析了 //get_user_agent 就是
//return md5(AUTH_KEY . '_' . $_SERVER ['HTTP_USER_AGENT']);
//AUTH_KEY 是114la 不是随机生成的
$auth_password = $password;
$auth_username = $username;
//上面2个不用解析了
self::update_login($username);
//记录登录记录
$cookie_value = base64_encode($auth_username . ':' . $auth_key . ':' . $auth_password);
//重点...账号 + 114la +密码.....
$cookie_expire = time () + 3600; //20分钟
//这里没用的 不用理
$cook_pre = AUTH_KEY . '_admin_auth';
//cookies前缀
$_COOKIE[$cook_pre] = $cookie_value;
//这里也不需要理会
setcookie(AUTH_KEY . '_admin_auth', $cookie_value, $cookie_expire, PATH_COOKIE);
//写入COOKIE
return true;
}


看来解密方式非常简单 就是explode(':', base64_decode($cookie));
这样既获得管理员明文账号密码

怎么获得管理员的COOKIES? 就是提交网址功能!
在提交的主页里加一段获取COOKIES 然后记录在文件的代码就行了 这里不多说 很简单(注意:不能跨域获取!)
因为管理员必须要登录后台才能查看提交网址 所以必然只有管理员才看到你的网址并打开 并具有那个ll4la_admin_auth的COOKIES
99%的人审核网站肯定会打开看一下 还有一个就是看都不看就通过....就是白痴他祖先

注 :并不是利用XSS盗COOKIES 因为这套程序暂时没发现XSS漏洞 因为能给你使用的只有留言本和提交网址
而是引导管理员打开你的PHP网站来获得需要的COOKIES

获取管理员COOKIES 0DAY 就是社会工程学 因为提交网址收录的 必然管理员已经登录(具有条件了)才能看到 看到后必然打开你的网址才看下能否值得收录
利用方式很明显了 这需要针对性!

PS:你的网站如何获得目标网站COOKIES? 这方法很多 跨域就难了 挂马总可以把? 钓鱼可以把?

标签分类:

相关阅读 更多 +
排行榜 更多 +
全民飞机空战手机版

全民飞机空战手机版

飞行射击 下载
弗拉格职业射手手机版

弗拉格职业射手手机版

飞行射击 下载
反射单元2

反射单元2

飞行射击 下载