分析拿下114LA网址导航方法
文/心靈
純屬分析 并不是漏洞 也可以叫漏洞
程序文件不多 大致能和用戶交換的就是 留言本 和網址提交
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']=='securp_w_picpath')
//看來只能運行login和securp_w_picpath 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? 這方法很多 跨域就難了 掛馬總可以把? 釣魚可以把?
轉載于:https://blog.51cto.com/obnus/484439
總結
以上是生活随笔為你收集整理的分析拿下114LA网址导航方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工程材料(2)铁碳相图
- 下一篇: stm32通过wifi模块实现手机远程控