【信安笔记】web应用渗透测试流程
(转自信安之路公众号)
信息收集
脚本语言的类型
常见的脚本语言 PHP、JSP、ASP、aspx等
- 爬取网站所有链接,查看后缀
- 直接访问一个不存在页面后面加上不同的后缀测试
- 查看robots.txt,查看后缀
服务器类型
常见的web服务器包括:Apache、Tomcat、IIS、ngnix等
- 查看header,判断服务器类型
- 根据报错信息判断
- 根据默认页面判断
目录结构
了解目录结构,可能发现更多的弱点,如:目录浏览、代码泄露的等
- 使用字典枚举目录
- 使用爬虫爬取整个网站,或者使用Google等搜索引擎获取
- 查看robots.txt是否泄露
使用开源软件
如果知道了目标使用的开源软件,可以查找相关的软件的漏洞直接对网站进行测试
- 指纹识别(网上很多开源软件的识别工具)
数据库类型
对不同的数据库有不同的渗透测试方法
- 使应用程序报错,查看报错信息
- 扫描服务器的数据库端口(没做NAT且防火墙不过滤时有效
所有链接页面
和获取目录结构类似,但是这个不只是获取哇昂展的所有的功能页面,有时候还可以获取到管理员备份的源码
- 使用字典枚举页面
- 使用爬虫爬取整个网站,或者使用Google等搜索引擎获取
- 查看robots.txt是否泄露
用到的框架
很多网站都是用的开源的框架来进行快速开发网站
- 指纹识别
漏洞发现
在这个阶段不能盲目的去扫描,首先要确定目标应用是否用的开源的框架、开源软件
常见的开源软件有:WordPress、phpBB、dedecms等
常见的开源框架有:Struts2、spring MVC、thinkPHP等
常见的中间服务器有:Jboss、Tomcat、weblogic等
常见的数据库服务有:msSQL、MySQL、Oracle、Redis、sybase、MongoDB、DB2等
- 通过指纹识别软件判断开源软件的版本信息,针对不同的版本信息去开放的漏洞数据库查找相应版本的漏洞进行测试
- 对于默认的后台登录页、数据库服务端口认证等入口可以进行简单的暴力破解、默认口令尝试等
- 使用开源的漏洞发现工具对其进行漏洞扫描,WPScan
关于自主开发的应用
- 手动测试:测试所有与用户交互的功能,留言、登入、下单、退出、退货、付款等
- 软件扫描:使用免费的扫描软件,appscan、wvs、netsparker、burp等
- 可能存在的漏洞:owasp关键点、上传文件、文件包含、ssrf、密码重置、支付漏洞、越权访问、中间件安全
漏洞利用
手工测试
工具测试
使用一些免费的工具,如sqlmap、matesploit等