2023年7月9日发(作者:)
Web安全-浅析⽹页暗链与挂马攻击⽂章⽬录前⾔近年来,随着国家相关部门对互联⽹安全事件的重视、部分软件开发⼚商安全意识的提⾼,曾经红极⼀时的“挂马”攻击⼿段已经⽇趋减少,特别是 2009 年刑法明确“挂马”事件量刑标准之后,多个曾经猖狂⼀时的 ”挂马” 集团相继落⽹,“挂马”这种风险⾼且收益不稳定的攻击⼿段逐步为⿊⾊产业链所抛弃。⿊⾊产业链是否因为挂马的衰落⽽就此沉寂呢?答案是否定的,攻击⼿段⽇新⽉异,其中“暗链”是近年来较为严重的问题,也是攻击者所钟爱的新⼿法。暗链现状搜索引擎可以⾃动的爬取互联⽹中的信息,并根据⼀系列算法来评判这些信息的价值,当⽤户输⼊所需信息的⼀些特征(即关键词)时,搜索引擎根据这些特征来进⾏检索,并根据它所认定的价值⾼低来对检索到的信息进⾏排序,最终展⽰给⽤户。所以在搜索引擎的搜索结果中排名越靠前,说明搜索引擎认为它的价值越⼤,被⼈访问到的概率也越⼤。于是,⽹站在搜索引擎中有个⽐较靠前的排名成为绝⼤多数站长梦寐以求的事情。然⽽,随着搜索引擎的⼤规模应⽤,⼀些问题也随之出现……2011年6⽉,姚⼥⼠通过百度搜索“去哪⼉⽹”,被欺骗访问到钓鱼⽹站,蒙受经济损失;2011年8⽉,数百名⽹友通过百度搜索“⽉饼团购”,被欺骗访问到钓鱼⽹站,蒙受经济损失;2011年底,蔡先⽣通过百度搜索“亚洲航空”,被欺骗访问到钓鱼⽹站,蒙受经济损失;……在上述案例中,⼈们往往将问题归罪于百度公司的竞价排名策略。“竞价排名”是对搜索结果的⼀种⼈为⼲预,把本来搜索引擎认为价值不⾼的⽹站排在最前⾯,然后根据点击量收取费⽤。百度的竞价排名策略⾃推出以来⼀直为⼈们所诟病,百度也多次因此成为众⽮之的。事实上,即使没有竞价排名,⿊客仍然可以利⽤⼀些攻击⼿段,诱使搜索引擎将⼀个钓鱼⽹站认定为很有价值,并且排在搜索结果⽐较靠前的位置,甚⾄是第⼀位。搜索引擎在判定⼀个⽹站价值时会参考其他⽹站的超链接。如果⼀个⽹站A有指向⽹站B的超链接,则搜索引擎会认为A的所有者认定B是有价值的,并乐意将⾃⼰的权重分给B。通常⼀个⽹站能分给另⼀个⽹站的权重很低,但是如果有⼤量的⽹站都链向该⽹站的话,积少成多,权重还是很可观的。我们可以设想,⿊客仿照某银⾏⽹站开设了⼀个钓鱼⽹站,起初搜索引擎会认定该⽹站没有太⼤价值。但是,如果有⼤量的⽹站都存在超链接指向该钓鱼⽹站,每个⽹站都会分给该⽹站⼀定的权重,该钓鱼⽹站的权重甚⾄可能超过它所仿照的银⾏⽹站,排在该银⾏⽹站的前⾯。当⽤户通过搜索引擎搜索该银⾏⽹站时,可能出于对搜索引擎搜索结果的信任,访问到该钓鱼⽹站,从⽽导致银⾏账号、密码泄漏,甚⾄是经济损失。然⽽⿊客想要获得⼤量⽹站的⽀持绝⾮易事,于是挂“暗链”成为⼀个不错的选择。暗链隐蔽性由此可以看出,“暗链”是⼀种搜索引擎优化的⼿段,⽤于提⾼它所指向的⽹站的搜索排名,是最有效的搜索引擎优化⽅法之⼀。“暗链”正如它的名字所描述的⼀样,是⼀种在⽹页页⾯上不可见或极易被忽视的超链接,并尽量不去破坏⽹页原有的结构。虽然这些超链接在⽹页页⾯上是“不可见”的,但是仍然可以在⽹页源代码中看到,所以搜索引擎仍然可以通过分析⽹页的源代码收录这些链接。然⽽,⼈们毕竟不是搜索引擎,往往不会去关注页⾯上看不到的东西,所以,暗链也很难会被⼈发觉,甚⾄能够与⽹站“长期共存,共同发展”。植⼊暗链的⽅式⼤致有两种:⼀种是web应⽤开发⼚商在应⽤中植⼊的,还有⼀种是⿊客⼊侵⽹站之后植⼊的。从实际检测情况来看,前者的⽐例相对较少。也就是说,如果⼀个⽹站存在暗链,就说明这个⽹站很可能已经被⿊客成功⼊侵,⽹站的注册⽤户信息可能已经泄露,⽹站提供下载的资源可能被绑定了⽊马或后门。然⽽,暗链本质上就是超链接,与我们常见的超链接并没有太⼤的不同,所以暗链并没有对⽤户构成实质性的威胁,安全软件⾃然也不会对暗链进⾏检测,更不会对暗链作出拦截或提⽰。暗链产业链⽬前挂暗链已经形成了⼀条完整的⿊⾊产业链,并有取代挂马成为⾏业“领跑者”的趋势。据数据显⽰,挂马⽹站数量正⽇趋下降,⽽暗链逐步超越挂马成为威胁⽹站安全的头号敌⼈。暗链之所以被⿊产从业者青睐,并逐步取代挂马,主要由于以下⼏个原因:风险低:我国刑法已明确挂马的量刑标准,⽽暗链尚⽆法律依据;投资少:⼏乎零成本,⽽挂马需要⼤量资⾦购买好⽤的⽹马、⽊马;收益稳定:只要约定时间内暗链没有被清除,⿊客就可以获得收⼊;技术含量低:能够⼊侵⽹站即可,⽽挂马涉及到⼊侵⽹站、漏洞发掘、⽊马编写等技术;难以检测:暗链和普通超链接没有太⼤的不同,且没有实质性的威胁,所以程序很难准确的判断是否存在暗链。⽽挂马所使⽤的⽹马和⽊马都可能被杀毒软件拦截。综合以上⼏条优势,很多原本挂马的集团都转型去挂暗链了。在这条产业链中,分⼯明确:有专⼈负责攻击各类型⽹站,有⼈负责收购各类⽹站的权限,有⼈负责每天检查暗链是否被删除,有⼈负责联系客户,有客户购买服务,甚⾄有⼈负责编写⾃动化挂暗链的程序并出售。挂暗链所使⽤的⽹站来源有两种:⼀种是⿊客⾃⼰动⼿,攻击⽹站挂暗链;还有⼀种是收购其他⿊客的权限。有时⼀个⽹站同时被多路⿊客盯上,在页⾯中可以看到多组暗链链接,甚⾄代码中存在“删我链接,我删整站”、“各挂各的,和平共赢”等字样,警告其他⿊客不要删除⾃⼰的链接,由此可以看出不同“暗链”集团间利益冲突很严重。政府()和教育()类⽹站,备受暗链青睐,被挂⽹站数占该类型⽹站总数的30%以上,成为暗链的重灾区。暗链之所以青睐这两类⽹站,原因主要有以下⼏点:搜索引擎对这两类⽹站通常⽐较友好,分配的权重较其他类型的域名更⾼,⽤于搜索引擎优化的效果⾃然更好;这两类⽹站通常⽐较稳定,较少出现没⼏天就消失不见的情况;更新频率低,往往⼏个⽉不会更新⼀次,甚⾄没⼈维护;业务系统通常由当地⼩公司开发和运维,忽视安全问题,导致系统存在⼤量安全漏洞。暗链的危害暗链对于普通⽤户没有实质性的危害,但是暗链所指向的⽹站通常是不正规的⽹站,甚⾄是⾮法⽹站。据统计数据显⽰,暗链所指向的⽹站主要有以下⼏种类型:⽹游私服、医疗、博彩、⾊情、股票内幕信息和⽹游外挂。这些⽹站在通过⼤量暗链增加权重后,会排在搜索结果的前列。1. 当⽤户搜索某⼀特定关键词时,可能被欺骗⾄这些⽹站。例如⽤户通过搜索引擎搜索某个医院或某种疾病的治疗⽅法时,很可能被引导⾄⼀个⾮法⼩诊所,从⽽延误病情,甚⾄危及⽣命!2. 暗链是对搜索引擎的⼀种欺骗,导致搜索引擎的误判,将⾼权重分配给原本没有价值的⽹站甚⾄是钓鱼⽹站。这样极易导致⽤户对搜索引擎的不信任,甚⾄因为误导⽤户造成损失⽽引起法律纠纷。3. 暗链的存在往往标志着该⽹站存在安全漏洞,所以带有暗链的⽹站往往更容易被⿊客⼊侵。此外,带有暗链的⽹站提供下载的资源也是不可信的,可能包含⽊马或后门。4. 暗链对政府⽹站来讲危害更⼤,当⽤户通过搜索引擎搜索某地政府⽹站时,可能从搜索引擎的描述中看到⼀些⾮法的关键词,从⽽影响政府的形象。境外敌对势⼒甚⾄可以根据政府⽹站是否存在暗链来判断⼀个政府⽹站是否存在安全漏洞,并决定是否发起攻击。成功⼊侵后,可以发布虚假政策信息造成群众对政府的不信任,制造政府与群众之间的⽭盾,引发社会事件。暗链的防御暗链⼤都是⽹站被⼊侵之后植⼊的,所以修补安全漏洞、清除后门是防治暗链的根本。单纯清除暗链代码,⿊客仍可以通过漏洞或后门侵⼊⽹站,再次植⼊暗链,甚⾄履⾏承诺——删除整个⽹站。有些⼩⽹站慑于⿊客的威胁,甚⾄不敢删除暗链代码。发现和解决漏洞是困扰站长的两⼤难题。如何判断⽹站被⿊客⼊侵并挂了暗链,分析 Web ⽇志是⼀个不错的选择,通过检索⽇志中的特征词,可以快速定位到漏洞位置。但是分析 Web ⽇志需要有⼀定的经验,很多 Web ⽇志⼚商提供了免费的⽹站安全体检服务,如知道创宇的 ,站长根据要求进⾏注册并完成验证后,可以收到⼀份⽹站的漏洞报告及修补意见,对于没有安全防护经验的站长来说,选择⽹站安全体检服务是个不错的选择。若⼀个⽹站已经被⼊侵过了,单纯修补安全漏洞是不够的。⿊客⼊侵⼀个⽹站之后,往往会留后门,以便下次⼊侵。后门不仅仅限于 Web层⾯,还可能涉及到操作系统层⾯,例如系统隐藏账户、终端服务开启、远程控制软件等。这就需要我们更加深⼊地对⽹站做⼀个全⾯检测。暗链实例⼀个看似正常的⽹站:但是查看其⽹站代码发现多处被修改:下⾯对上⾯的⽹页暗链进⾏分析:1、查看以上博彩⽹站的⽹页源码看到如下:2、这⼀串直接 Unicode 编辑即可看到:3、使⽤了 eval 函数加密的 js 代码,主要的恶意代码:4、打开⾕歌浏览器,然后 F12,打开 Console ⼀栏,直接把这段代码复制进去,去掉开头4个字母 eval,然后回车就可以看解密后的代码:5、这是⼀段通过 16 进制的 script 病毒,可以使⽤ alert 函数来解密,打开记事本写⼊代码:暗链技术暗链是SEO⼿法中相当普遍的⼀种⼿段,笼统地说,它就是指⼀些⼈⽤⾮正常的⼿段获取的其它⽹站的反向链接,最常见的⿊链就是通过各种⽹站程序漏洞获取搜索引擎权重或者PR较⾼的⽹站的Webshell,进⽽在被⿊⽹站上链接⾃⼰的⽹站,其性质与明链⼀致,都是属于为⾼效率提升排名,⽽使⽤的作弊⼿法。暗链分类在学习分析暗链的过程中感觉很多⽂章都没有对暗链有⼀个统⼀的分类,有些⽂章甚⾄把挂马和暗链混为⼀潭,所以我在这⾥先把暗链分为这么两类,以便后续分析:1. HTML 隐藏型暗链——通过 css 或者 JavaScript 代码隐藏暗链,通常是通过 position 为负数,或者将 display 设置为 none 等⽅式来隐藏,⽬的是为了提升⾮法⽹站的 SEO 排名,但是这种暗链由于很容易被检测,所以已经越来越少了,现在的暗链⼤部分都是JS 引⼊型暗链直接跳转。2. JS 引⼊型暗链——通过修改⽹站 title,引⼊外部 JavaScript 代码来将暗链植⼊被害⽹站,当⽤户通过搜索引擎搜索特定关键字时(你懂的)进⼊该⽹站,通过引⼊的外部 JavaScript 代码实现跳转到⾮法⽹站,上⾯演⽰的暗链实例就是这种类型。HTML隐藏型这种类型的暗链通过 CSS 或者 JavaScript 代码对暗链进⾏隐藏。可隐藏 HTML 元素的属性解释把元素隐藏起来,并且会改变页⾯布局,可以理解成在页⾯中把该元素删除掉。当 display 设置为 none,任何对该元素直接的⽤户交互操作都不可能⽣效。该元素隐藏起来了,不会改变页⾯布局,仍占据原有空间,但不会触发该元素已经绑定的事件该元素隐藏起来了但不会改变页⾯布局,如果该元素已经绑定⼀些事件如 click 事件,那么点击该区域也能触发点击事件display:nonevisibility:hiddenopacity:0;filter:alpha(opacity=0)position:absolute;top:-1000px;left:-1000px这个⽅法是通过将 left 和 top 的值设的很⼤,让元素定位到浏览器外⾯,不占据空间且不能点击1、通过 div 中的
display:none 直接来隐藏链接:
2、利⽤ css 中的位置属性来隐藏链接:3、链接颜⾊与背景⾊相同,链接⽂字使⽤低像素:4、利⽤跑马灯 marquee 属性,链接以跑马灯形式迅速闪现,跑马灯的长宽设置很⼩,同时将闪现的频率设置很⼤,使得查看页⾯时不会有任何影响:【⼩结】以上四种是惯⽤的挂暗链的⽅法,但⽬前的搜索引擎也开始对这些⽅法进⾏识别和打击,如果代码没有任何处理的话,那么这些外链将有可能全部被降权。即便如此,这⼏种仍然是⽬前最常见的暗链隐藏⽅法。为了不被搜索引擎识别,攻击者利⽤ JS 向页⾯中写⼊ ccs样式,并设置其属性,见5,6。由于搜索引擎对这种JS代码的内部实质意义还⽆法识别,因此也成为了挂暗链的⼀种常见形式。5、通过 javascript 来控制 html 中 document 的结构来隐藏链接(利⽤ JS 向页⾯中写⼊ ccs 样式): 关键词 6、利⽤JS修改样式属性:7、利⽤遮挡层隐藏暗链,z-index属性可以设置元素的堆叠顺序,z-index值越⼩其堆叠顺序越靠后,因此可以利⽤其它层来遮挡暗链:8、利⽤ iframe 创建隐藏的内联框架(marginWidth、marginHeight 为 0 则⽆法显⽰内联框,可隐藏暗链):9、利⽤重定向机制:在跳转之前的页⾯写⼊不相关的链接,通过快速跳转到正常页⾯,使⽤户⽆法察觉:利⽤ setTimeout 在跳转到正常页⾯ 之前有 0.1s 停留在当前页⾯,页⾯中的暗链不易被察觉。10、利⽤标签插⼊链接。位于⽹页html源码头部内的标签,提供有关页⾯的元信息,是搜索引擎判定⽹页内容的主要根据,攻击者可以在标签中插⼊⼤量与⽹页不相关的词语以及链接。实例演⽰下⾯通过简单的⽰例代码,演⽰下第 1、2、5 种暗链隐藏⽅法,直接上⽰例代码:test for hack seo!
4、进⾏效果演⽰前,先为 chrome 浏览器添加⼀个百度爬⾍的 UA,以便模拟百度爬⾍流量⽹页:其中 User-agent 的值为:Mozilla/5.0 (compatible; Baiduspider/2.0; +/search/)【注意】使⽤ burp 或者 chrome 插件 User-Agent Switcher Options 修改的 UA 是⽆效的,因为它们只是修改了浏览器发送的数据包中的 UA,⽽没有修改浏览器真正的 UA。5、接下来将上⾯准备好的测试页⾯放在本地 Phpstudy ⽹站根⽬录下,然后在⾕歌浏览器中进⾏正常访问,并未发⽣跳转:6、最后使⽤百度爬⾍请求头进⾏访问,可成功跳转到我的博客主页:刷新页⾯如下:⽹页挂马什么是⽹页挂马要解释什么是⽹页挂马,要先从⽊马说起。⼤家知道,⽊马是⼀类恶意程序,和其它的正常⽂件⼀样存在于计算机系统中。这些恶意程序⼀旦运⾏,会连接到远处的控制端,使其享有恶意程序所在系统的⼤部分操作权限,例如给计算机增删密码,浏览、移动、复制、删除⽂件,修改注册表,更改计算机配置等各种有害操作,⽽这些操作往往不被使⽤者察觉。将⽊马与⽹页结合起来成为⽹页⽊马,表⾯看似正常的⽹页,当浏览者浏览该⽹页的同时也运⾏了⽊马程序。⽹页⽊马利⽤系统、浏览器或浏览器相关插件⾃⾝存在的漏洞,⾃动下载已经放置在远端的恶意程序。由于下载过程利⽤了软件上的漏洞,是⾮正常途径,不会被计算机系统或浏览器本⾝所察觉。⽹页挂马指的是攻击者篡改了正常的⽹页,向⽹页中插⼊⼀段代码,当⽤户浏览⽹页的同时执⾏这段代码,将引导⽤户去浏览放置好的⽹页⽊马。使⽤⼀些特别的技术可以使得这段代码的执⾏对⽤户来说不可见。⽹页挂马的危害性浏览器、应⽤软件或系统总是存在各种各样的漏洞,只要这些漏洞能够被利⽤并执⾏任意代码,那么存在漏洞的系统就有可能受到⽹页⽊马攻击。⽹页挂马的技术门槛并不⾼,互联⽹上可以得到很多现成的攻击⼯具。同时⽹页⽊马隐蔽性⾼,挂马所⽤代码在浏览器中的执⾏、⽹页⽊马的执⾏和恶意程序的下载运⾏,⽤户都⽆法察觉。⽹页挂马的传播范围同被挂马⽹页的数量和浏览量成正⽐。各种类型的⽹站都可以成为⽹页挂马的对象。上述这些原因使得⽹页挂马成为攻击者传播⽊马或病毒的最有效⼿段之⼀。⽹页⽊马下载的⽊马病毒通常⽤于盗窃银⾏卡、⽹游、电⼦邮件或即时聊天⼯具(如腾讯QQ)的账号密码,或窃取私密⽂件(如私⼈照⽚视频等)或私⼈信息。这些内容⼀旦泄露,往往会对受害者造成物质或精神上的损失。⽹页挂马的危害性可见⼀斑。常见挂马类型攻击者往往利⽤ SQL 注⼊、⽂件包含、跨站脚本、⽬录穿越等常见的⽹站漏洞获取到⽹站的某些权限,并上传 Webshell 等⿊客⼯具对⽹页进⾏修改,这就是常说的⽹页篡改。⼀般⽹页挂马都是通过⽹页篡改来实现的。⽹页挂马的⽅式有很多,下⾯是⼏种常见的类型。1、 iframe 标签这是最常见的挂马⽅式。只要不破坏原始⽂件的代码逻辑,通常可以插⼊⽂件的任何地⽅,也叫做框架挂马。它所利⽤的代码是:当被挂马的⽹页在浏览器中显⽰时,这段代码也同时被执⾏,指引浏览器去访问加载了⽹页⽊马的页⾯。由于标签的⾼度和宽度都设置为0,⽤户在浏览⽹页时不会察觉到浏览器访问了这个页⾯。2、 Javascript 脚本利⽤ Javascript 脚本可以动态创建⼀个窗⼝并调⽤⽹页⽊马,即如下的代码:在这⾥实际的 “iframe” 标签挂马成为 函数参数,依然有同样的效果。还可以做的更隐蔽⼀些,插⼊⽹页的代码为:('');此时⽂件 相当于在⽹站和⽹页⽊马之间建⽴了⼀个中转站,这个⽂件可以放在攻击者认为更加安全可靠且⽹站浏览者能够访问到的地⽅。此时正常页⾯中就完全是⼀个⼀般的 Javascript 脚本内容,更加难以察觉。3、 结合SQL注⼊如果通过SQL注⼊的⽅法可以直接修改后台数据库的内容,那么攻击者就可以将要插⼊的代码直接写⼊到数据库中。假设某个数据库中存放的是⼴告页⾯,其中每个表项都有⼀个列⽤来存放⼴告页⾯的链接地址。攻击者可以将插⼊的代码放到链接地址中,如:update news set title=’’这样所有调⽤并显⽰该⼴告的⽹页都将被挂马。4、图⽚伪装还可以利⽤图⽚⽊马⽣成器产⽣⼀个含有⽊马的图⽚,并修改图⽚名称,以吸引上⽹者浏览这些图⽚。如图:这⾥的 ⽂件实际上是⼀个⽹页⽊马,当浏览器打开这个图⽚时,该⽊马就会⾃动运⾏。5、URL 欺骗攻击者可以通过各种技术⼿段对实际的⽹页⽊马URL进⾏伪装。下⾯的代码就是⼀种常见的形式。 这段代码执⾏后,页⾯上会显⽰出正常的门户⽹站的链接信息,浏览者不会怀疑。但是当⿏标移动到链接上后,却打开了⽹页⽊马的页⾯。以上是常见的⽹页挂马类型,实际的挂马会根据编程语⾔以及具体⽹站环境的变化⽽有所不同。挂马防御⼿段⽹页⽊马之所以能够攻击成功,是因为⽹站⾃⾝存在漏洞导致⽹页被篡改、浏览器或操作系统存在漏洞、⽹页⽊马的下载执⾏和恶意程序的下载执⾏等⼏⽅⾯因素共同造成的结果,这也是⽹页挂马防御的着眼点。从本质上看,这些因素实际上都是⽹络⾏为,都是在⽹络上传递的数据,因此,要想防御⽹页挂马,就要切断这些恶意数据的传播。我们可以采取⼀些主动的措施(如在⽹络中增加 IPS 设备)来防⽌⽹页被挂马,并利⽤技术⼿段(设定开启适当的 IPS 规则)识别被挂马的⽹页。1、 拦截对⽹站的攻击如果⽹站不被攻击利⽤,那么挂马就⽆从谈起。加强⽹站⾃⾝的安全性是防⽌⽹页被挂马的基本前提。常见的⽹站漏洞包括 SQL 注⼊、跨站脚本、⽂件包含、⽬录穿越等,这些漏洞往往是代码级的,与⽹站本⾝关系很⼤,其中 SQL 注⼊是最常见的攻击⽅式。此外还有⼀些权限设置等⽹站管理⽅⾯的问题也可能给攻击者制造机会,例如对上传⽂件过滤不严可能会使得攻击者上传 Webshell 进⽽篡改⽹页。2、识别被挂马的⽹页如果⽹站已经受到攻击,⽹页被篡改,此时需要识别出被挂马的⽹页,并提⽰⽤户可能存在的风险。⽹页挂马的类型有很多,研究中发现前⽂所列举的都是最常见的⽅式。如果⽹页中存在类似这些挂马类型的代码,则⽹页被挂马的可能性就⽐较⼤。但在某些⽹页中也有⼀些正常功能的实现和⽹页挂马⽅式有类似甚⾄相同的地⽅,因此这种防御⽅式存在⼀定的误报。关于更多⽹页挂马的实现⽅式,可以参考博⽂:。发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688890273a181639.html
评论列表(0条)