浅析LxBlogV6变量未初始化漏洞.pdfVIP

  • 2
  • 0
  • 约5.23千字
  • 约 3页
  • 2017-09-12 发布于重庆
  • 举报
2009 年第3 期 前置知识:无 关键词:脚本、LxBlog、防注入 浅析LxBlog V6 变量未初始化漏洞 文/ 图 Flyh4tXi40shui LxBlog 是PHPWind 开发的一套基于PHP+MySQL 数据库平台架构的多用户博客系统,强 调整站与用户个体间的交互,拥有强大的个人主页系统、独立的二级域名体系、灵活的用户 模板系统、丰富的朋友圈和相册功能。但该 Blog 系统在安全性上并不让人满意,本文就来 分析其一个变量未初始化造成的SQL 注入漏洞。 我们先来分析一下这个漏洞,存在问题的代码如下: /user/tag.php ?php !function_exists(usermsg) exit(Forbidden); !in_array($type,$item_type) exit; 线 //$type、$item_type 均没有初始化 require_once(R_P.mod/charset_mod.php); foreach ($_POST as $key = $value) { 处 防 ${utf8_.$key} = $value; ${$key} = $db_charset != utf-8 ? convert_charset(utf-8,$db_charset,$value) : $value; } 客 出 if ($job == add) { ……//省略部分代码 明 黑 }elseif($job==modify){ $tagnum={$type}num; 注 $touchtagdb=$db-get_one(SELECT k.tags,i.uid FROM pw_{$type} k LEFT JOIN pw_items i ON i.itemid=k.itemid WHERE k.itemid=$itemid); //$type 带入查询语句操作数据库 请 $touchtagdb[uid]!=$admin_uid exit; ……//省略部分代码 载 当然,在文件的第一行有“!function_exists(usermsg) exit(Forbidden);”这样一段代 码的限制,我们不能直接访问该文件,但可以通过user_index.php 来include 这个文件执行, 转 具体代码如下: //user_index.php ?php ……//省略部分代码 require_once(R_P.user/global.php); require_once(R_P.user/top.php); if (!$action) { ……//省略部分代码 2009 年第3 期 } elseif ($action file_exists(R_P.user/$action.php)) { $basename = $user_file?action=$action; require_once(Pcv(R_P.user/$action.php)); //通过提交$action=tag 即可以调用到存在漏洞的文件 } 看到这个地方,应该已经可以触发该漏洞了,但依然要考虑到是否会受到register_global 的影响,幸好user_index.php 在开始的时候包含了user/global.php 这个文件。再看看这个文 件为我们提供了什么,代码如下: //user/global.php ? ……//省略部分代码 if (!in_array($action,array(blogdata,comment,itemcp,post,userinfo))) { //blogdata,comment,

文档评论(0)

1亿VIP精品文档

相关文档