信息收集(四)服务器信息收集
信息收集(一)域名信息收集
信息收集(二)IP信息收集
信息收集(三)端口和目录信息收集
WAF指纹识别
什么是WAF
WAF的全称是(Web Application Firewall )Web 应用防火墙用来过滤HTTP/HTTPS的请求,
在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。所以,我们需要手动进行WAF的绕过,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。本文主要从绕过WAF过程中需要注意的角色和点出发,尝试理解它们的运作,构建一个简单的知识框架。
首先,WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型WAF指的是硬件型WAF、云WAF、软件型WAF之类的;而嵌入型WAF指的是网站内置的WAF。非嵌入型WAF对Web流量的解析完全是靠自身的,而嵌入型WAF拿到的Web数据是已经被解析加工好的。所以非嵌入型的受攻击机面还涉及到其他层面,而嵌入型WAF从Web容器模块型WAF、代码层WAF往下走,其对抗畸形报文、扫操作绕过的能力越来越强。当然,在部署维护成本方面,也是越高的。
WAF的工作原理
WAF(Web Application Firewall) 可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。
WAF的主要难点是对入侵的检测能力,尤其是对Web服务入侵的检测,WAF最大的挑战是识别率。对于已知的攻击方式,可以谈识别率,但是对于未知的攻击手段,WAF是检测不到的。
基于规则库匹配的WAF
目前市面上大多数的WAF都是基于规则的WAF。即WAF对接数据收到的包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。
对于这种WAF,它的工作过程是这样的:解析HTTP请求——>匹配规则——>防御动作——>记录日志
具体实现如下:
- 解析http请求:协议解析模块
- 匹配规则:规则检测模块,匹配规则库
- 防御动作:return 403 或者跳转到自定义界面,或者不返回任何数据,或者拉黑IP
- 日志记录:记录到elk中
WAF识别
wafw00f识别WAF
WAFW00F 允许对保护网站的 Web 应用程序防火墙 (WAF) 产品进行识别和指纹识别
下载地址:wafw00f下载地址
下载文件之后,进入目录,执行以下命令安装
python setup.py install
进入wafw00f路径,执行
python main.py "url"
探测目标网站WAF
CMS指纹识别
在渗透测试中,对服务器进行指纹识别是相当重要的·,因为指纹识别出相应的Web容器或者CMS,才能查找与其相应的漏洞,然后才能进行相应的渗透操作,CMS又称整站系统
什么是指纹识别?
指纹识别指的是通过关键特征,识别出目标的CMS系统、服务 器、开发语言、操作系统、CDN、WAF的类别版本等等
潮汐指纹识别CMS
潮汐指纹:http://finger.tidesec.net/
whatweb工具识别CMS
kali中自带该工具
whatweb "url"
wappalyzer 插件识别CMS
在浏览器的插件扩展中直接搜索添加该插件
wappalyzer自动识别CMS信息