如何进行Web渗透测试
首先可以明确的告诉你,DedeCMS的0day漏洞很多,而且也有一年多时间没有维护了。所以网上“流传”DedeCMS不安全、漏洞多是真实的情况,但这也洽洽说明dedecms在以前的确很火。
DedeCMS后台功能上是很齐全的,而且操作起来简单,用来二次开发也比较容易,所以在前几年受到不少套网站的程序员的热爱。正因为如此,再加上它是开源的,所以不少人发现漏洞后就开始攻击基于这款CMS的网站,每次一曝出漏洞,受到影响的网站很多。
考虑到现在官方也没维护了,所以建议大家选择其它CMS,比如PHPCMS在安全性上就给DedeCMS要好得多;而且现在PHP版本都比较高了,DedeCMS在这些高版本的PHP环境下运行会存在一些兼容性问题。
如果你的网站现在用的就是DedeCMS那建议作好安全加固措施,比如:
若网站没有交互,可以全站生成静态页,然后静态页单独部署,将后台和前台分离,这样别人无法攻击动态脚本;
源码目录权限严格控制,避免权限过大导致的非法文件可以上传或者可执行。
综上,DedeCMS不建议选择。
不知道你的问题是不是已经得到了解决。我觉得我来回答很有发言权。因为我前段时间也出现了这样的现象。
你看看你的主页的源代码是不是如下这样的,网站标题、关键词、描述都发生了变化,多了如图所示的代码在网站里面。这个就是病毒代码,但是删除之后,过段时间有出现了这样的情况。那是因为删除只是一时的,并没有解决网站漏洞的根本原因。
其实出现这种现象是网站被“跨站脚本攻击(XSS)”了。具体的跨站脚本攻击(XSS)的意思你百度就知道了,有这个漏洞的百科词条。我用的也是dedecms网站,那么具体解决方法就是防范跨站脚本攻击(XSS)漏洞。只有修复了漏洞,才会不再生成这样的病毒sj代码出来。
1、跨站脚本攻击(XSS)的防范方法,X-Frame-Options头设置,具体方法篇幅比较大,参考百度经验《X-Frame-Options头未设置,如何设置?》
2、跨站脚本攻击(XSS)的防范方法,Cookie没有HttpOnly标志,需要设置HttpOnly,参考百度经验《Cookie没有HttpOnly标志咋办?IIS设置HttpOnly》
3、跨站脚本攻击(XSS)的防范方法,dedecms版本升级,dedecms是免费的开源网站,用的用户多,存在的漏洞也多,要不断的打补丁,升级版本。
把以上三点都做好了,你的网站就不会出现跳转到别人网站去的现象了,因为防范了“跨站脚本攻击(XSS)”,别人就不会攻击你的网站,在你网站里面加病毒代码了。我是一个热爱分享的网站站长,可以关注我,跟我一起进步。
什么是渗透测试?
渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。
如何进行Web渗透测试?
完整web渗透测试框架当需要测试的web应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目标是要保证交付给客户的安全测试服务质量。
1、立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;
系统分析&威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;
制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;
测试执行&漏洞挖掘:测试用例执行&发散测试,挖掘对应的安全问题or漏洞;
问题修复&回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;
项目总结评审:项目过程总结,输出文档评审,相关文档归档。
2、Web应用的渗透测试流程
主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用,下面仔细分析一下各个阶段流程:
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
脚本语言的类型:常见的脚本语言的类型包括:php、asp、aspx、jsp等
测试方法:
1 爬取网站所有链接,查看后缀
2 直接访问一个不存在页面后面加不同的后缀测试
3 查看robotstxt,查看后缀
服务器的类型:常见的web服务器包括:apache、tomcat、IIS、ngnix等
测试方法:
1 查看header,判断服务器类型
2 根据报错信息判断
3 根据默认页面判断
目录的结构:了解更多的目录,可能发现更多的弱点,如:目录浏览、代码泄漏等。
测试方法
1 使用字典枚举目录
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robotstxt是否泄漏
使用的开源软件:我们如果知道了目标使用的开源软件,我们可以查找相关的软件的漏洞直接对网站进行测试。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
数据库类型:对于不同的数据库有不同的测试方法。
测试方法
1 使应用程序报错,查看报错信息
2 扫描服务器的数据库端口(没做NAT且防火墙不过滤时有效)
所有链接页面:这个跟前面的获取目录结构类似,但是这个不只是获取网站的所有功能页面,有时候还可以获取到管理员备份的源码。
测试方法
1 使用字典枚举页面
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robotstxt是否泄漏
用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
关于开源软件的漏洞发现
开源的软件:常见的开源软件有wordpress、phpbb、dedecms等
开源的框架:常见的开源框架有Struts2、 Spring MVC、ThinkPHP等
中间件服务器:常见的中间件服务器有jboss、tomcat、Weblogic等
数据库服务:常见的数据库服务mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
对于开源软件的测试方法
1 通过指纹识别软件判断开源软件的版本信息,针对不同的版本信息去开放的漏洞数据库查找相应版本的漏洞进行测试
2 对于默认的后台登录页、数据库服务端口认证等入口可以进行简单的暴力破解、默认口令尝试等操作
3 使用开源的漏洞发现工具对其进行漏洞扫描,如:WPScan
关于自主开发的应用
手动测试:这个阶段,我们需要手工测试所有与用户交互的功能,比如:留言、登入、下单、退出、退货、付款等操作
软件扫描:使用免费的软件扫描,如:appscan、wvs、netsparker,burp等
可能存在的漏洞
Owasp关键点
代码安全之上传文件
代码安全之文件包含
代码安全之SSRF
逻辑漏洞之密码重置
逻辑漏洞之支付漏洞
逻辑漏洞之越权访问
平台安全之中间件安全
三、漏洞利用
针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试
手工测试
手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。手工测试不需要额外的辅助工具,可由测试者独立完成,实现起来比较简单。但这种方法高度依赖于测试者,需要测试者对目标比较了解。手工测试可用于Web应用程序、浏览器及其他需要用户交互的程序。
这种方式对于有特殊过滤等操作,或者网络上没有成型的利用工具的时候可以使用。
工具测试
网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。
一经常检查网站数据
一般被挂马的网站大部分是长期无人管理维护的网站,尤其是一些企业网站,包括前文提到的我的2个被挂马的网站就是由于一些原因长期没有管理维护的原因,后来是域名要到期了续费之后顺便检查下了网站就发现被挂黑链了。目前黑链市场依然还很火爆,所以尽量定期抽出时间检查下你不常更新的网站。
二dedecms系统漏洞
由于dedecms的流行,用dedecms仿站成了被黑客攻击的目标之一,从dedecms51到现在的57,依然有部分漏洞,用dedecms做的网站要注意以下几点,
1修改默认后台(dede)路径
2删除install安装目录
3如果不需要使用会员可以直接删除member目录
大部分黑客入侵dedecms网站就是利用会员投稿功能,上传木马文件。
三禁止重要文件和目录被执行、写入
dedecms系统网站可以做如下设置
1以下目录:data、templets、uploads、a设置可读写不可执行权限。
2以下目录:include、member、plus、dede设置为可读可执行不可写入权限。
目前很多使用discuz和phpwind制作的网站也被入侵就是由于重要目录和文件权限没有设置好。
四网站被入侵以后如何处理
1用备份文件覆盖
2没有备份的话,找出最近被修改的文件,查看这些文件是否包含恶意代码。
3找出网站程序多出的文件,重点注意网站根目录是否有未知文件。
五ftp和服务器安全设置
建议使用linux服务器,ftp和服务器用户名和密码要设置复杂点,尽量用字母+数字+特殊符号,使用独立服务器或者vps的要详细了解服务器安全配置方面的教程,确保服务器安全。
0条评论