如何进行Web渗透测试
什么是渗透测试?
渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。
如何进行Web渗透测试?
完整web渗透测试框架当需要测试的web应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目标是要保证交付给客户的安全测试服务质量。
1、立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;
系统分析威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;
制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;
测试执行漏洞挖掘:测试用例执行发散测试,挖掘对应的安全问题or漏洞;
问题修复回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;
项目总结评审:项目过程总结,输出文档评审,相关文档归档。
2、Web应用的渗透测试流程
主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用,下面仔细分析一下各个阶段流程:
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
脚本语言的类型:常见的脚本语言的类型包括:php、asp、aspx、jsp等
测试方法:
1 爬取网站所有链接,查看后缀
2 直接访问一个不存在页面后面加不同的后缀测试
3 查看robots.txt,查看后缀
服务器的类型:常见的web服务器包括:apache、tomcat、IIS、ngnix等
测试方法:
1 查看header,判断服务器类型
2 根据报错信息判断
3 根据默认页面判断
目录的结构:了解更多的目录,可能发现更多的弱点,如:目录浏览、代码泄漏等。
测试方法
1 使用字典枚举目录
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robots.txt是否泄漏
使用的开源软件:我们如果知道了目标使用的开源软件,我们可以查找相关的软件的漏洞直接对网站进行测试。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
数据库类型:对于不同的数据库有不同的测试方法。
测试方法
1 使应用程序报错,查看报错信息
2 扫描服务器的数据库端口(没做NAT且防火墙不过滤时有效)
所有链接页面:这个跟前面的获取目录结构类似,但是这个不只是获取网站的所有功能页面,有时候还可以获取到管理员备份的源码。
测试方法
1 使用字典枚举页面
2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取
3 查看robots.txt是否泄漏
用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。
测试方法
指纹识别(网络上有很多开源的指纹识别工具)
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
关于开源软件的漏洞发现
开源的软件:常见的开源软件有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等。
想问一下大家都是怎么做渗透测试的呢?
这个要根据个人的实际情况来决定的,比如你先要去了解什么是渗透测试:
1、渗透测试属于信息安全行业,准确的说是网络计算机/IT行业
2、现在你知道了它的行业属性,那么你是否具备一些这个行业的知识呢?
3、具备的话学习起来比较简单,直接去学习渗透测试实战就行,不具备接着往下看
4、现在知道它行业属性,你大概就能清楚需要些什么样的基础知识了;下面是我从非计算机网络相关专业的同学想要学习渗透测试必须掌握的知识。
5、前期入门大概需要掌握或者说了解以下知识点:
1)了解基本的网络知识,例如什么是IP地址(63.62.61.123)去掉点是扣扣学习群,IP地址的基本概念、IP段划分、什么是A段、B段、C段等2)广域网、局域网、相关概念和IP地址划分范围。
3)端口的基本概念?端口的分类?
4)域名的基本概念、什么是URL、了解TCP/IP协议、
5)了解开放式通信系统互联参考模型(OSI)
6)了解http(超文本传输协议)协议概念、工作原理
7)了解WEB的静态页面和WEB动态页面,B/S和C/S结构
8)了解常见的服务器、例如、Windows server2003、Linux、UNIX等
9)了解常见的数据库、MySQL、Mssql、、Access、Oracle、db2等
10)了解基本的网络架构、例如:Linux + Apache + MySQL + php
11)了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言
12)了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi等
然后你想学习入门,需要学习以下最基础的知识:
1、开始入门学习路线
1)深入学习一种数据库语言,建议从MySQL数据库或者SQL Server数据库、简单易学且学会了。
其他数据库都差不多会了。
2)开始学习网络安全漏洞知识、SQL注入、XSS跨站脚本漏洞、CSRF、解析漏洞、上传漏洞、命令执行、弱口令、万能密码、文件包含漏洞、本地溢出、远程溢出漏洞等等
)工具使用的学习、御剑、明小子、啊D、穿山甲(Pangolin)、Sqlmap、burpsuite抓包工具等等
2、Google hacker 语法学习
3、漏洞利用学习、SQL注入、XSS、上传、解析漏洞等
4、漏洞挖掘学习
5、想成为大牛的话、以上都是皮毛中的皮毛,但前提是以上的皮毛都是最基础的。
6、Linux系统命令学习、kali Linux 里面的工具学习、Metesploit学习
7、你也可以找一些扣扣群去和大佬交流,比如上面的IP去掉点就是,里面有很多的教程。
8、没事多逛逛安全论坛、看看技术大牛的文章、漏洞分析文章等
渗透测试的七个步骤
渗透测试的七个步骤
第一步:确定要渗透的目标,也就是选择要测试的目标网站。
第二步:收集目标网站的相关信息,比如操作系统,数据库,端口服务,所使用的脚本语言,子域名以及cms系统等等。
第三步:漏洞探测。利用收集到的信息,寻找目标的脆弱点。
第四步:漏洞利用,找到对方系统的弱点后,进一步攻克对方系统,拿到目标系统的权限。
第五步:渗透目标内网的其他主机,把获得的目标机器权限当作跳板,进一步攻克内网其他主机。
第六步:验证漏洞与修复漏洞。
第七步:清楚渗透痕迹,编写测试报告。
什么是网络渗透测试,高级渗透测试方法
网络渗透测试:
渗透测试是一种最老的评估计算机系统安全性的方法。在70年代初期,国防部就曾使用这种方法发现了计算机系统的安全漏洞,并促使开发构建更安全系统的程序。渗透测试越来越多地被许多组织用来保证信息系统和服务的安全性,从而使安全性漏洞在暴露之前就被修复。
高级渗透测试方法:
模拟黑客攻击对业务系统进行安全性测试。通过模拟黑客攻击的方式(无需网站代码和服务器权限),对企业的在线平台进行全方位渗透入侵测试,比黑客更早发现可导致企业数据泄露、资产受损、数据被篡改等漏洞,并协助企业进行漏洞修复,保护企业数据安全。
如何对网站进行漏洞扫描及渗透测试?
注册一个账号,看下上传点,等等之类的。
用google找下注入点,格式是
Site:XXX.com inurl:asp|php|aspx|jsp
最好不要带 www,因为不带的话可以检测二级域名。
大家都知道渗透测试就是为了证明网络防御按照预期计划正常运行而提供的一种机制,而且够独立地检查你的网络策略,一起来看看网站入侵渗透测试的正确知识吧。
简单枚举一些渗透网站一些基本常见步骤:
一 、信息收集
要检测一个站首先应先收集信息如whois信息、网站真实IP、旁注、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息有哪些等等
二、收集目标站注册人邮箱
1.用社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。2.用邮箱做关键词,丢进搜索引擎。3.利用搜索到的关联信息找出其他邮进而得到常用社交账号。4.社工找出社交账号,里面或许会找出管理员设置密码的习惯 。5.利用已有信息生成专用字典。6.观察管理员常逛哪些非大众性网站,看看有什么东西
三、判断出网站的CMS
1:查找网上已曝光的程序漏洞并对其渗透2:如果开源,还能下载相对应的源码进行代码审计。
3.搜索敏感文件、目录扫描
四、常见的网站服务器容器。
IIS、Apache、nginx、Lighttpd、Tomcat
五、注入点及漏洞
1.手动测试查看有哪些漏洞
2.看其是否有注入点
3.使用工具及漏洞测试平台测试这个有哪些漏洞可利用
六、如何手工快速判断目标站是windows还是linux服务器?
Linux大小写敏感,windows大小写不敏感。
七、如何突破上传检测?
1、宽字符注入
2、hex编码绕过
3、检测绕过
4、截断绕过
八、若查看到编辑器
应查看编辑器的名称版本,然后搜索公开的漏洞
九、上传大马后访问乱码
浏览器中改编码。
十、审查上传点的元素
有些站点的上传文件类型的限制是在前端实现的,这时只要增加上传类型就能突破限制了。
扫目录,看编辑器和Fckeditor,看下敏感目录,有没有目录遍及,
查下是iis6,iis5.iis7,这些都有不同的利用方法
Iis6解析漏洞
Iis5远程溢出,
Iis7畸形解析
Phpmyadmin
万能密码:’or’='or’等等
等等。
每个站都有每个站的不同利用方法,自己渗透多点站可以多总结点经验。
还有用google扫后台都是可以的。
0条大神的评论