• 23
网页挂马是一种常见的网络攻击方式,对网络信息安全构成威胁。黑客通过各种手段获取管理员账号,登陆并修改页面内容。网页挂马检测技术,可以避免恶意网页的危害,保护用户利益。本文对网页挂马技术做出概述,基于Python网络爬虫进行抓取,对抓取内容进行漏洞分析,深入研究web网页应用漏洞原理、检测方法。
1  引言
web网页挂马指的是把一个木马程序上传到一个网站,然后用木马生成器生成一个网马,最后反传回空间。黑客通过SQL注入,敏感文件的扫描,程序0day等方式获得网站管理员的账号,的后台,目的是通过数据库备份与恢复或者上传某个漏洞获得一个webshell。通过获得的webshell在网页上进行
修改,也可以在页面中加入恶意HTML代码。也可以直接通过弱口令来获取FTP,可直接对网站的页面进行修改(刘洁,我国网页篡改及挂马检测技术专利分析:中国科技信息,2018)。
web网页一旦被挂马就面临着安全问题,检测技术至关重要。检测技术有如下三种:
(1)特征匹配。将网页挂马的脚本按脚本病毒处理进行检测。
(2)主动防御。浏览器创建某项任务,被提问是否运行时,多数用户会选择是,网页木马因此被植入,这就是典型的网页挂马现象。
(3)脚本行为分析。通过浏览器等主机的行为动作来判断网页是否含有木马。
本文是基于Python语言实现网络爬虫对网页进行漏洞检测,需要建立特征知识库匹配URL信息,本文主要研究特征匹配检测技术,将网页的源码进行特征值匹配,检测是否存在漏洞。本文研究内容也是网络安全研究的热点之一。
2  网页挂马技术
网页挂马是在可编辑文件中,或HTML代码头部中加入一段代码,来实现跳转到另一个网站,访问指定的HTML,然后通过漏洞攻破系统下载木马,进而隐藏下载木马并运行。
下面介绍几种网页挂马方式:
(1)js文件挂马
将js脚本的代码写在网页中,访问者在浏览网页时,恶意代码会通过主机打开网页木马的窗口,潜伏运行。首先将以下代码document.write(“<iframe width=’0’ height=’0’
src=’http //www.baidu/muma.htm’></iframe>”);
保存为xxx.js,则js文件代码为<script language=javascript src=xxx.js></script>
(2)body挂马
body挂马可以在打开正常页面地址的时候,自动跳转到网马页面。<body onload=”window.location=’地址’;”></body>(3)css挂马
css是层叠样式表的缩写,最主要的目的是将文件的结构与文件的显示分隔开来。
(4)框架挂马
用户打开网页时,同时打开另一个网页,这个网页中可能存在大量木马。如果网页使用iframe,就会js代码加密软件
有iframe属性,网页就会被挂马。<iframe src=地址 width=0 height=0></iframe>
(5)js变形加密
当对方管理员发现js文件后,就能够查看源代码,从而发现网马地址,但如果将js文件进行了加密,网马地址便很难发现。
3  网络爬虫设计
网络爬虫是按照一定规则、自动抓取网页信息的程序或者脚本。对于出现漏洞的网页,进行建立知识库,正则表达式与特征值对比进行排查。用户成功登陆系统配置扫描任务,后台爬虫程序会进行URL,IP等信息收集,通过正则匹配,获取有价值的信息,进而存储在文件中(禹立宏,何养育,常见WEB攻击原理与防范:电子技术与软件工程,2016)。
本文采用Python3.6对某网页进行爬虫,对各大小企业的名称,背景,新闻动态,商标信息,评论进行抓取。
在Python3.6中,使用Beautifulsoup4从HTML或XML文件中提
网页挂马检测技术研究
沈阳理工大学信息科学与工程学院  朱梦菲  李爱华  李帛航
• 24
取数据,urllib 组件抓取网页,Beautifulsoup4能够通过转换器实现通用的文档导航,查或者修改文档的方式。BeautifulSoup4配合Request 使用,能大大提高爬虫效率。BeautifulSoup4将复杂HTML 文档转换成一个复杂的树形结构,每个节点都是Python 对象,所有对象可以归纳为4种:Tag,NavigableString,BeautifulSoup,Comment 。
4  漏洞检测分析
4.1  XSS漏洞检测
XSS 又叫CSS(Cross Site Script),意为跨站脚本攻击。恶意攻击者向web 页面里注入恶意的HTML 代码,用户浏览该页面之时,嵌入该页面的恶意HTML 代码就会被执行,从而达到恶意的目的(林桠泉,漏洞战争:软件漏洞分析精要:电子工业出版社,2016)。
关于XSS 漏洞检测技术:手工输入一些XSS 的payload 加入到URL 参数中,然后查URL 的源码中是否存在这个参数,存在则可以证明页面存在XSS 漏洞了。4.2  SQL注入漏洞检测
SQL 注入漏洞,指的是没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection ,即SQL 注入。
检测思路:
(1)先尝试在地址栏加个单引号,页面/....?id=113'看返回的页面是否有变化,如果有变化,说明这个网页可能存在漏洞。
(2)再尝试在地址栏后面加上and 1=1,页面/....?id=113 and 1=1看看页面有没有变化,如果显示正常,而加上and 1=2,网页显示不正常(王清,0day 安全:软件漏洞分析技术(第2版):电子工业出版社,2011)。
总之,加上一些让能让数据库报错的东西,比如单引号,and1=2这样的。在链接上加上payloads ,根据返回的页面是否有数据库报错语句来判断是否存在SQL 注入漏洞。
5  系统实现
为了实现基于Python 网络爬虫的web 漏洞分析,首先需要做的是采用网络爬虫技术抓取海量信息,建立特征知识库进行正则匹配提取到有用的信息,存储到文件(孙汇中,网页木马检测关键技术研究:北方工业大学,2016)。其次对这些信息中的URL 进行二次爬取,获取完整的URL 信息,并对源码进行分析,与特征知识库进行比对分析,是否存在漏洞和漏洞类型。
爬虫某网页抓取结果如图5.1
所示。
图5.1 爬取结果
二次筛选和爬取,获取有益的URL 信息,将URL 存储成文件形式,举例如下:
inanovate/jit/index.html www.7ly www.sofmit/www.zhenyumould/fstsw.45.00it/www.ween-semi/
经过对上述URL 的二次筛查是否存在XSS 、SQL 注入漏洞,得出结果如图5.2
所示。
图5.2 漏洞分析结果
并对www.jiayihudong/网页进行源代码解析,不仅匹配到了规则库,又检测到程序含有测试漏洞。
6  小结
基于Python 研究了网页挂马检测技术,了解网页被挂马的几种方式,以及网页挂马检测技术的研究学习,并将网络爬虫抓取下来的网页进行正则特征值的匹配,建立特征知识库,对是否存在XSS 、SQL 注入漏洞进行分析。
相对于传统的木马检测技术,本次检测在一定程度上提高了检测的效率。同时,在木马特征库的维护上,实现自动添加新的木马特征值,从而减少用户手动添加带来的麻烦,有助于广大用户的使用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。