joomla对象注入漏洞

影响版本

from Joomla 1.5 up until 3.4.5

此漏洞无需登录,前台即可代码执行

一、session反序列化

php函数session_set_save_handler()
官方手册介绍如下:
参数 read()
read(string $sessionId)
如果会话中有数据,read 回调函数必须返回将会话数据编码(序列化)后的字符串。 如果会话中没有数据,read 回调函数返回空字符串。

readmore

2015年12月15日 | | 未分类

评论关闭

CVE-2015-2546:从补丁比对到Exploit

本月微软安全公告MS15-097修复了Microsoft Graphics组件中多个内核漏洞。其中Win32k内存损坏特权提升漏洞:CVE-2015-2546(https://technet.microsoft.com/zh-CN/library/security/ms15-097.aspx)引起了笔者的注意。该漏洞是FireEye在9月8日发布的一份攻击报告(https://www.fireeye.com/content/dam/fireeye-www/blog/pdfs/twoforonefinal.pdf)中发现的,攻击者利用该漏洞可获得系统SYSTEM权限。

查看微软公告对该漏洞的描述:“如果 Windows 内核模式驱动程序不正确地处理内存中的对象,则 Windows 中存在多个特权提升漏洞。成功利用这些漏洞的攻击者可以在内核模式下运行任意代码。”没有太多有效信息,笔者遂尝试通过补丁比对来还原这个漏洞的细节。

CVE-2015-2546影响从win7 ~win10的众多windows版本。鉴于win7上win32k的符号比较齐全,笔者选择安装win7 sp1 32位系统的补丁进行比对。
PatchDiff2得到的结果: readmore

2015年9月25日 | | 未分类

评论关闭

UnityGhost的检测和回溯

0x1 问题描述和速查方法

此次XcodeGhost病毒并不仅仅只篡改Xcode的dmg安装文件,百度安全实验室发现Unity3D也同样被插入了恶意代码。Unity是由Unity Technologies开发的用于创建诸如三维视频游戏、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,Unity可发布游戏至Windows、OS X、Wii、iPhone、Windows phone 8和Android平台。但目前安全实验室搜集到的样本只有感染iOS app,还未发现感染安卓或是Windows平台代码

目前我们观察到Unity OS X平台和Windows平台的安装包版本4.x至5.1.x(范围可能更大), 64/32位版本均有被修改的现象,被修改后文件均没有数字签名,在文件安装前可以很容易的区分开,对于OS X下dmg文件中包含的pkg文件,可以使用 pkgutil –check-signature Unity.pkg来进行检查。这里附上Windows和OS X下正确版本数字签名校验的截图:

1 readmore

2015年9月23日 | | 未分类

评论关闭

TruSSH Worm分析报告

最近百度X-Team捕获到一个利用SSH弱口令漏洞构建僵尸网络的蠕虫,该蠕虫具有自动扫描、自动传播、并依托公共社交网络服务作为获取Command and Control(后文简称C&C)控制信息等特点;蠕虫作者为保证控制方式的独享性,上线地址的变化性以及隐蔽性做了大量工作,C&C上线地址能够做到每天一换。根据其上线特点,我们将此蠕虫命名为:TruSSH Worm。目前此蠕虫已经在全世界范围内大规模传播。鉴于此蠕虫的编写和控制方式有些特殊,特拿出来和大家分享。

1.蠕虫主体特征

所有的蠕虫主体执行文件均通过upx壳进行压缩,但通过破坏upx header等方式防止upx –d的自动化脱壳,这在linux类的恶意样本中并不多见。

1111

readmore

2015年9月15日 | | 未分类

评论关闭

意外的0day之旅

不知道大家留意没有,昨天的xteam blog中的crash,其实隐含着一个然并卵的0day。这个“0day”,算是我们在构造样本中的副产物。

先看看原始漏洞的情况:在处理mpeg tx3g tag时,chunk_size是64位uint,与size之和溢出,导致实际分配比size小的内存。而后面的memcpy会导致heap overflow,写入的data应该是来自文件内容可控的。

如下是代码:

platform/frameworks/av/+/android-5.1.1_r8/media/libstagefright/MPEG4Extractor.cpp readmore

2015年7月30日 | | CVE分析

评论关闭

关于libStagefright系列漏洞分析

文章对应着CVE-2015-{1538,1539,3824,3826,3827,3828,3829}7个CVE,具体映射关系目前不明。此次安全漏洞号称影响“95%”安卓手机的安全。通过跟进此次漏洞的攻击面来看,这种说法毫不夸张,外界报道的关于一个彩信就直接打下机器的说法也是可信的。但这也仅仅是众多攻击面中的一条而已。

1. 攻击面分析
libStagefright默认会被mediaserver使用,也就是说,如果恶意的视频文件有机会被mediaserver处理到,该漏洞就有机会触发,举例:

 如文件管理app,如果视频被存放在sdcard,那么打开文件管理app,下拉列表到露出视频,就会触发缩略图解析,漏洞触发
 图库app,点击本地图片会出现缩略图,如果视频在sdcard,或者download目录,这时候也会触发。
 微信同样受到影响。通过微信发送的视频,点击也会导致media server崩溃。此外,收到的视频即使用户不点击,后面在微信中发送图片时,也会造成前面gallery,文件管理器同样的效果,也会触发缩略图过程并溢出。

readmore

2015年7月29日 | | CVE分析

评论关闭

聊一聊chkrookit的误信和误用

很久不写文章了。BSRC在约稿以及个人最近吐槽模式的开启,索性就借着劲头写点东西缓解缓解。

chkrookit以及rkhunter基本上已经成为类unix系统的应急响应中的标配了。大多数处理安全事件基本上上机器的第一步都是来个两连发。但很多是以失望结束,或者出了结论又不知道如何是好。这篇文章或许能够解决你们的部分困惑。这篇文章主要是讲chkrootkit,rkhunter回头有空再吐槽。

首先对工具我们应该有一个明确的认识。工具是死的,人是活的,攻防本身就是人与人的对抗。挑战的对象是活生生的人而不是预定义好的程序时,机械的依靠某个工具,真正上战场了注定要悲剧。对于用于实际对抗中使用的工具,什么时间用,能够解决什么问题,对它的期望如何。我们心里应该很清楚,甚至我们有多大程度可以相信它的结论,欺骗或者bypass它的成本是什么样子也都需要了解。

言归正传,这篇文章我们先聊聊chkrootkit: http://www.chkrootkit.org。从README中我们了解到最近一次更新是:04/30/2014,而前一次更新是09年…看看CHANGELOG,大概也能够明白它都有哪些功能,代码目录的命名很好的反应出了这一点:

1

chkrootkit本身是一个shell脚本。运行 chkrootkit –l 可以看到所有的检测集。注意chkrootkit脚本这几个字的重点飘红。一般来说,这种开源脚本调用外部命令方式工作的安全检查程序,按照经验注定是悲剧的节奏(注意定语)。而且上机器后看都不看运行环境就执行这类检测程序极易被反补一刀[1][2] readmore

WordPress 4.2.2修复4.2.1中的截断Xss 补丁分析

漏洞分析

在该次补丁的描述中,其中一条是修复了在4.2.1版本中的补丁bypass之后的xss问题,借此机会,下面分析一下在针对xss产生过程中所用的不同截断方法多次修复之后目前的具体验证流程。

补丁引入了两个开关变量
wp422/wp-includes/wp-db.php 2612行

 $truncate_by_byte_length = 'byte' === $value['length']['type'];
 $needs_validation = true;

readmore

2015年5月8日 | | 未分类

评论关闭

WordPress 4.2.2中修复的DOM XSS

漏洞分析

此次发现在4.2.2中已修复了一个dom型xss
\wp-content\themes\twentyfifteen\genericons\example.html   334行

页面加载完毕自动调用该函数 readmore

2015年5月8日 | | 未分类

评论关闭

WordPress <=4.2.1 存储型 xss

We noticed that the latest patch of WordPress (4.2.1) which fixed XSS vul can be bypassed. Details as follows.

The code in wp-includes\wp-db.php, function get_col_length added a check of submitted comment length vs limitation of data type.

protected function process_field_lengths( $data, $table ) {
foreach ( $data as $field =&gt; $value ) {
if ( '%d' === $value['format'] || '%f' === $value['format'] ) {
// We can skip this field if we know it isn't a string.
// This checks %d/%f versus ! %s because it's sprintf() could take more.
$value['length'] = false;
} else {
$value['length'] = $this-&gt;get_col_length( $table, $field );
if ( is_wp_error( $value['length'] ) ) {
return false;
}
}
<span style="color: #ff0000;">if ( false !== $value['length'] &amp;&amp; mb_strlen( $value['value'] ) &gt; $value['length'] ) {</span>
return false;
}
$data[ $field ] = $value;
}
return $data;
}

readmore

2015年5月8日 | | 未分类

评论关闭