Lxblog 是 PHPWind 开发的一套基于 PHP+MySQL 数据库平台架构的多用户博客系统,强调整站与用户个体间的交互,拥有强大的个人主页系统、独立的二级域名体系、灵活的用户模板系统、丰富的朋友圈和相册功 能。但是该blog系统在安全性上并不让人满意,本文就来分析lxblog一个变量未初始化造成的sql注入漏洞。
我们先来分析一下这个漏洞,看代码:
=======================code==================================
/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;
……//省略部分代码
=======================code==================================
当 然,在文件的之一行有 !function_exists('usermsg') && exit('Forbidden'); 这样一段代码的限制,我们不能直接访问该文件,但是可以通过user_index.php来include这个文件执行,看具体代码
=======================code==================================
//user_index.php
<?php
……//省略部分代码
require_once(R_P.'user/global.php');
require_once(R_P.'user/top.php');
if (!$action) {
……//省略部分代码
} elseif ($action && file_exists(R_P."user/$action.php")) {
$basename = "$user_file?action=$action";
require_once(Pcv(R_P."user/$action.php"));
//通过提交$action=tag即可以调用到存在漏洞的文件
我们都知道马云提出的电商即将消失,新零售即将来临的观点让新零售被越来越多的人关注,也开始了零售行业的又一轮变革。 什么叫新零售 简单点说新零售就是与传统店铺,线上线下融合形成的一...
大家,你是否还记得这个人吗? 那时候视频一出去,可谓是人尽皆知 开发者Yushi Liang对他说的粉絲,他的总体目标是逃出电脑浏览器沙盒,并且他早已与Alexander Kochkov协作完...
如今世界上实行了社会主义制度的国家有哪些?目前世界上社会主义国家共有5个,即中华人民共和国、朝鲜民主主义人民共和国、越南社会主义共和国、老挝人民民主共和国和古巴共和国,在了解这5名社会主义国家以前,我...
成都伴游联系方式-空降papa优质服务 伴游描述:最近有很多朋友在商务预约网后台留言,想了解关于成都伴游联系方式信息。于是小编通过百度、知乎、文库等途径,总结了以下关于成都伴游联系方式的全部内容。希望...
刘家良...
一个加盟项目标投资用度是许多加盟商在选择加盟项目标时候,首先城市思量的一个问题,而南北船埠零食加盟项目,作为如今零食行业备受遍及存眷的加盟品牌,自然而然选择咨询这个项目标人就增多了,各人都想要通过加盟...