渗透测试网站安全代码分析方法
1.6. WAF
1.6.1. 简介
1.6.1.1. 概念
WAF(Web Application Firewall,Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供加固的产品。 在市场上,有
相关博文 1.6. WAF 1.6.1. 简介 1.6.1.1. 概念 WAF(Web Application Firewall,Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供加固的产品。 在市场上,有各种价格各种功能和选项的WAF。在一定程度上,WAF能为Web应用提供安全性,但是不能保证完全的安全。 1.6.1.2. 常见功能 1.6.1.3. 布置位置 按布置位置,WAF可以分为云WAF、主机防护软件和硬件防护。云WAF布置在云上网站安全代码,请求先经过云服务器而后流向主机。主机防护软件需要主机预先安装对应软件,如mod_security、ngx-lua-waf等,对主机进行防护。硬件防护指流量流向主机时,先经过设备的清洗和拦截。 1.6.2. 防护方式 WAF常用的方法有关键字检测、正则表达式检测、语法分析、行为分析、声誉分析、机器学习等。 基于正则的保护是最常见的保护方式。开发者用一些设定好的正则规则来检测载荷是否存在攻击性。基于正则的防护较为简单,因此存在一些缺点。例如只能应用于单次请求,而且正则很难应用到一些复杂的协议上。 基于语法的分析相对正则来说更快而且更准确,这种分析会把载荷按照语法解析成的符号组,然后在符号组中寻找危险的关键字。这种方式对一些载荷的变式有较好的效果,但是同样的,对解析器要求较高。 基于行为的分析着眼的范围更广一些,例如攻击者的端口扫描行为、目录baopo、参数测试或者一些其他自动化或者攻击的模式都会被纳入考虑之中。 基于声誉的分析可以比较好的过滤掉一些可疑的来源,例如常用的VPN、匿名代理、Tor节点、僵尸网络节点的IP等。 基于机器学习的WAF涉及到的范围非常广,效果也因具体实现和场景而较为多样化。 除了按具体的方法分,也可以根据白名单和黑名单的使用来分类。基于白名单的WAF适用于稳定的Web应用,而基于黑名单则适合处理已知问题。 1.6.3. 扫描器防御 1.6.4. WAF指纹 1.6.5. 绕过方式 1.6.5.1. 基于架构的绕过 1.6.5.2. 基于资源的绕过 1.6.5.3. 基于解析的绕过 1.6.5.4. 基于规则的绕过 2.1. 域名信息 2.1.1. Whois Whois 可以查询域名是否被注册,以及注册域名的详细信息的数据库,其中可能会存在一些有用的信息,例如域名所有人、域名注册商、邮箱等。 2.1.2. 搜索引擎搜索 搜索引擎通常会记录域名信息,可以通过 site:域名的语法来查询。 2.1.3. 第三方查询 网络中有相当多的第三方应用提供了子域的查询功能,下面有一些例子,更多的网站可以在 8.1 工具列表 中查找。 2.1.4. ASN信息关联 在网络中一个自治系统(Autonomous System, AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。 一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,这个号码被称为自治系统号(ASN)。因此可以通过ASN号来查找可能相关的IP,例如: whois -h whois.xxx.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq nmap -- targets-asn ---args targets-asn.asn=15169 2.1.5. 域名相关性 同一个企业/个人注册的多个域名通常具有一定的相关性,例如使用了同一个邮箱来注册、使用了同一个备案、同一个负责人来注册等,可以使用这种方式来查找关联的域名。一种操作步骤如下: 2.1.6. 网站信息利用 网站中有相当多的信息,网站本身、各项安全策略、设置等都可能暴露出一些信息。 网站本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取网站,收集站点中的其他子域信息。这些信息通常出现在Java文件、资源文件链接等位置。 网站的安全策略如跨域策略、CSP规则等通常也包含相关域名的信息。有时候多个域名为了方便会使用同一个SSL/TLS证书,因此有时可通过证书来获取相关域名信息。 2.1.7. 证书透明度 为了保证HTTPS证书不会被误发或伪造,CA会将证书记录到可公开验证、不可篡改且只能附加内容的日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。因此可以通过查询已授权证书的方式来获得相关域名。 2.1.8. 域传送漏洞 DNS域传送(zone transfer)指的是冗余备份服务器使用来自主服务器的数据刷新自己的域(zone)数据库。这是为了防止主服务器因意外不可用时影响到整个域名的解析。 一般来说,域传送操作应该只允许可信的备用DNS服务器发起,但是如果错误配置了授权,那么任意用户都可以获得整个DNS服务器的域名信息。这种错误授权被称作是DNS域传送漏洞。 2.1.9. Passive DNS Passive DNS被动的从递归域名服务器记录来自不同域名服务器的响应,形成数据库。利用Passive DNS数据库可以知道域名曾绑定过哪些IP,IP曾关联到哪些域名,域名最早/最近出现的时间,为测试提供较大的帮助。Virustotal、passivetotal、CIRCL等网站都提供了Passive DNS数据库的查询。 2.1.10. SPF记录 SPF(Sender Policy Framework)是为了防止垃圾邮件而提出来的一种DNS记录类型,是一种TXT类型的记录,用于登记某个域名拥有的用来外发邮件的所有IP地址。通过SPF记录可以获取相关的IP信息。 2.1.11. CDN 2.1.11.1. CDN验证 可通过多地ping的方式确定目标是否使用了CDN 等。 2.1.11.2. 域名查找 使用了CDN的域名的父域或者子域名不一定使用了CDN,可以通过这种方式去查找对应的IP。 2.1.11.3. 历史记录查找 CDN可能是在网站上线一段时间后才上线的,可以通过查找域名解析记录的方式去查找真实IP。 2.1.12. 子域baopo 在内网等不易用到以上技巧的环境,或者想监测新域名上线时,可以通过批量尝试的方式,找到有效的域名,以上等内容基础全面性比较覆盖网站安全方便的渗透测试方法,如果对此有需求可以联系专业的网站安全公司来处理解决,防止被入侵被攻击之类的安全问题。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |