【安全】Web渗透测试(全流程)_渗透测试学习流程图
1 信息网络1.1 域名、IP、端口
[*]域名信息查询:信息可用于后续渗透
https://i-blog.csdnimg.cn/blog_migrate/273a1ad8a592f9e4334e9f9a9e64b8da.png
[*]IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常
https://i-blog.csdnimg.cn/blog_migrate/90c5fcb23e224c96323745b1f0da9e91.png
[*]端口信息查询:NMap扫描,确认开放端口
https://i-blog.csdnimg.cn/blog_migrate/46ff85f24bafbed87d14f74619d3a57e.png
发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下
https://i-blog.csdnimg.cn/blog_migrate/518ab48f31bca17ffd3144d247fda1e0.png
发现:是Windows Server 2003体系,OK,到此为止。
1.2 指纹识别
指纹?其实就是网站的信息。好比通过可以访问的资源,如网站首页,查看源代码:
[*]看看是否存在文件遍历的漏洞(如图片路径,再通过…/遍历文件)
[*]是否利用了存在漏洞的框架(如果没有现成的就本身挖)
2 漏洞扫描
2.1 主机扫描
[*]Nessus
经典主机漏扫工具,看看有没有CVE漏洞:
https://i-blog.csdnimg.cn/blog_migrate/57e1147aa6f33c02884aef46493fabe0.png
2.2 Web扫描
[*]AWVS(Acunetix | Website Security Scanner)扫描器
3 渗透测试
涉及工具的学习:
DVWA
Burp Suite
3.1 弱口令漏洞
[*]漏洞形貌
目标网站管理入口(或数据库等组件的外部毗连)利用了容易被推测的简单字符口令、或者是默认体系账号口令。
[*]渗透测试
[*]如果不存在验证码,则直接利用相对应的弱口令字典利用burpsuite 进行爆破
[*]如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别
[*]风险评级:高风险
[*]安全发起
[*]默认口令以及修改口令都应保证复杂度,好比:巨细写字母与数字或特殊字符的组合,口令长度不小于8位等
[*]定期查抄和更换网站管理口令
3.2 文件下载(目录浏览)漏洞
[*]漏洞形貌
一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限定,则恶意用户就能够查看或下载恣意的文件,可以是源代码文件、敏感文件等。
[*]渗透测试
[*]查找可能存在文件包含的漏洞点,好比js,css等页面代码路径
[*]看看有没有文件上传访问的功能
[*]采用…/来测试能否夸目录访问文件
[*]风险评级:高风险
[*]安全发起
[*]采用白名单机制限定服务器目录的访问,以及可以访问的文件类型(警惕被绕过)
[*]过滤【./】等特殊字符
[*]采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。
示例:tomcat,默认关闭路径浏览的功能:
<param-name>listings</param-name>
<param-value>false</param-value>
3.3 恣意文件上传漏洞
[*]漏洞形貌
目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严酷的过滤。
[*]渗透测试
[*]网络网站信息,判定利用的语言(PHP,ASP,JSP)
[*]过滤规则绕过方法:
[*]风险评级:高风险
[*]安全发起
[*]对上传文件做有效文件类型判定,采用白名单控制的方法,开放只允许上传的文件型式;
[*]文件类型判定,应对上传文件的后缀、文件头、图片类的预览图等做检测来判定文件类型,同时留意重定名(Md5加密)上传文件的文件名避免攻击者利用WEB服务的缺陷构造畸形文件名实现攻击目标;
[*]禁止上传目录有执行权限;
[*]利用随机数改写文件名和文件路径,使得用户不能容易访问本身上传的文件。
3.4 命令注入漏洞
[*]漏洞形貌
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用体系命令的web应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的体系命令。
[*] 渗透测试
[*] 风险评级:高风险
[*] 安全发起
[*]拒绝利用拼接语句的方式进行参数传递;
[*]尽量利用白名单的方式(首选方式);
[*]过滤伤害方法、特殊字符,如:【|】【&】【;】【'】【"】等
3.5 SQL注入漏洞
[*]漏洞形貌
目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句查询后台数据库相关信息
[*]渗透测试
[*]手动测试,判定是否存在SQL注入,判定是字符型照旧数字型,是否需要盲注
[*]工具测试,利用sqlmap等工具进行辅助测试
[*]风险评级:高风险
[*]安全发起
[*]防范SQL注入攻击的最佳方式就是将查询的逻辑与其数据分隔,如Java的预处理,PHP的PDO
[*]拒绝利用拼接SQL的方式
3.6 跨站脚本漏洞
[*]漏洞形貌
当应用程序的网页中包含不受信任的、未经恰当验证或转义的数据时,或者利用可以创建 HTML或JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、粉碎网站或将用户重定向到恶意站点。
三种XSS漏洞:
[*]存储型:用户输入的信息被长期化,并能够在页面显示的功能,都可能存在存储型XSS,例如用户留言、个人信息修改等。
[*]反射型:URL参数需要在页面显示的功能都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能。
[*]DOM型:涉及DOM对象的页面程序,包罗:document.URL、document.location、document.referrer、window.location等
[*]渗透测试
示例:
[*]存储型:
[*]反射型:
[*]DOM型:
[*]风险评级:高风险
[*]安全发起
[*]不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度查抄,而且对【<】【>】【"】【'】【&】等字符做过滤
[*]任何内容返回到页面显示之前都必须加以html编码,即将【<】【>】【"】【'】【&】进行转义。
3.7 跨站请求伪造漏洞
[*]漏洞形貌
CSRF,全称为Cross-Site Request Forgery,跨站请求伪造,是一种网络攻击方式,它可以在用户毫不知情的情况下,以用户的名义伪造请求发送给被攻击站点,从而在未授权的情况下进行权限保护内的操纵,如修改暗码,转账等。
[*] 渗透测试
[*] 风险评级:中风险(如果相关业务极其重要,则为高风险)
[*] 安全发起
[*]利用一次性令牌:用户登录后产生随机token并赋值给页面中的某个Hidden标签,提交表单时候,同时提交这个Hidden标签并验证,验证后重新产生新的token,并赋值给hidden标签;
[*]适就地景添加验证码输入:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串;
[*]请求头Referer效验,url请求是否前部匹配Http(s)
页:
[1]