【整理】【信息收集】web渗透测试

随笔3个月前发布 成陌
41 0 0
一、WAF探测
   1.1 什么是WAF
   1.2 WAF常见的部署方式:
   1.3 WAF的作用
   1.4 如何触发waf
   1.5 WAF的分类
   1.6 如何探测WAF

二、操作系统识别

三、Git信息收集
    3.1 Git信息泄露原理
    3.2 github搜索技巧
    3.3 Git信息泄露利用方式






原创 LULU 红队蓝军

一、WAF探测

1.1 什么是WAF

Web应用程序防火墙(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称:WAF)是一种用于保护Web应用程序的安全设备。Web应用程序是指通过Web浏览器或其他Web客户端访问的应用程序。

1.2 WAF常见的部署方式:

【整理】【信息收集】web渗透测试

1.3 WAF的作用

WAF的目的是保护Web应用程序免受黑客、网络攻击和数据泄漏等安全威胁的攻击。
WAF可以过滤HTTP/HTTPS协议流量,防护Web攻击,但不能过滤其他协议流量,如FTP、PoP3协议。

WAF主要是通过内置的很多安全规则来进行防御。

1、流量识别
WAF识别来自客户端的请求,并对请求进行分析。WAF可以检查请求头、请求体、Cookie、URL参数等信息,并识别其中的攻击。

2、攻击检测
WAF对识别的请求进行攻击检测。WAF可以使用多种技术来检测攻击,例如正则表达式、特征匹配、行为分析等。WAF可以检测多种攻击,包括SQL注入、XSS、CSRF、命令注入等。

3、攻击响应
WAF根据检测结果采取相应的措施,例如拦截请求、阻止访问、记录事件等。WAF可以使用多种技术来响应攻击,例如重定向、报错、拦截等。

4、对Web应用进行安全审计
WAF记录所有请求和响应的详细信息,包括请求头、请求体、响应头、响应体等。WAF可以将日志发送给中央日志管理系统,以便进行分析和审计。

5、阻止SQL注入、xss、csrf、rce、源码/错误信息泄露、文件包含漏洞进行攻击、PHP代码注入、利用Shellshock漏洞进行攻击、利用Session会话ID不变的漏洞进行攻击、根据判断IP地址归属地来进行IP阻断等

1.4 如何触发waf

1、关键字:比如SQL注入漏洞SELECT、 UPDATE、DELETE、DROP、 UNION、 OR、AND、sleep、 #、 '、 " 、;等
2、违反内容安全策略(CSP):尝试违反Web应用程序设定的内容安全策略
3、异常流量模式:如DDoS攻击,通过发送大量请求来攻击器。
4、使用特定的HTTP方法:如使用不常见的HTTP方法可能被WAF视为可疑行为。
5、请求参数异常:如参数名或值过长,或者包含不寻常的字符组合。如:本地文件包含漏洞 file=../../../../../etc/passwd
6、数据包大小异常:发送超出正常范围的数据包大小,可能会触发WAF的规则。
7、使用黑名单中的User-Agent:某些User-Agent字符串可能与已知的爬虫或恶意工具相关联。

1.5 WAF的分类

硬WAF

1、硬件WAF通常是一种独立设备,由厂商安装,它可以与网络交换机、路由器等设备集成,拦截来自外部网络的流量,并对Web应用程序进行保护
2、适用于高流量的Web应用程序

软WAF

1、软件WAF通常是一种安装在服务器上的应用程序,可以通过修改Web服务器或代理服务器的配置文件实现。软件WAF可以与多种Web服务器和应用程序框架集成,部署在Apache、Nginx、IIS等Http Server中
2、适用于多种Web应用程序

云WAF

1、云WAF通常是一种基于云的服务,可以将Web应用程序的流量转发到云端进行处理。云WAF可以提供全球分布的节点,从而提高Web应用程序的可用性和性能。市面上常见的阿里云、腾讯云、华为云、百度云等
2、适用于高可用性和高性能的Web应用程序

常见waf厂商

国内:宝塔、安恒,绿盟,启明星辰,360磐云、长亭、安全狗、阿里云、腾讯云、华为云、百度云

国外:飞塔,梭子鱼,Imperva

1.6 如何探测WAF

WAFw00f

介绍:WAFw00f是一个用于探测网站是否存在Web应用程序防火墙的工具,它通过发送正常和异常的HTTP请求,结合特征分析和算法推理,来识别不同类型的WAF

用法:wafw00f https://www.xxxx.com

namp

介绍:网络扫描工具,它包含了一些WAF指纹识别的脚本,可以用来探测WAF的存在

用法:nmap www.xxx.com --script=http-waf-detect.nse

SQLMap

介绍:主要用于检测和利用SQL注入漏洞,但它也包含了一些WAF指纹识别的功能。

用法:sqlmap -u "xxx.com?id=1" --identify-waf

go-test-waf

这是一个使用Go语言编写的WAF测试工具,可以自动测试WAF的拦截能力和规则配置。

用法:通过DockerHub库直接获取,拉取项目库docker pull wallarm/gotestwaf

二、操作系统识别

常见的服务器操作系统:linux,windows

识别操作系统常见方法

1、看字母大小写windows对大小写不敏感,Linux敏感。

2、看ping值,Linux系统的TTL值为64,Windows系统的TTL值为128。(TTL表示本地主机通过网络连接目标主机时经过路由器的个数情况,因ping的域名不同导致2的N次方变化不同)

linux

【整理】【信息收集】web渗透测试

windows
【整理】【信息收集】web渗透测试

3、nmap -O ip或者域名 //对目标主机的操作系统进行扫描

【整理】【信息收集】web渗透测试

4、抓包:某些中间件只能用于特定的操作系统,如IIS只能用于windows,nginx不能用于windows,通过应答包的server字段,我们能获取目标中间件信息,从而来判断目标服务器操作系统类型。

三、Git信息收集

在渗透测试的信息收集阶段,可以去Github搜索与目标有关的信息,开发人员将代码上传到代码库的时候,有可能连一些重要的配置信息也上传了。

比如将包含了账号密码、密钥等配置文件的代码上传了,导致攻击者能发现并进一步利用这些泄露的信息,就是一个典型的GitHub敏感信息泄露漏洞。
【整理】【信息收集】web渗透测试

3.1 Git信息泄露原理

1、把私有仓库/隐私文件提交到了github

2、部署项目的时候,不小心把.git文件一起打包进去,放到web网站下,如.java,.class

.git/logs/HEAD 存储了git的log信息,可以找到历史的commit项
.git/index 缓存git add的文件,暂存区
.git/refs/stash git stash 把代码存入缓存区
.git/refs/heads/master 记录了master的commit的hash
.git/objects/pack/.pack

3.2 github搜索技巧

kali in:file    搜索文件中包含kali的代码
kali in:path    搜索路径中包含kali的代码
kali in:path,file    搜索路径,文件中包含kali的代码
filename:config.php language:php 搜索config.php文件,且语言为php
kali topics:>5 标签数量大于5
kali size:<1000    文件大小小于1000的(找字典文件)
kali stars:10..50    收藏数量在10到50间
kali pushed:>2021-08-25    搜索在2021年8月15号之后的
kali create:>=2021-06-01    创建时间
kali pushed:<2021-01-01 -language:java (-表示不要)

3.3 Git信息泄露利用方式

1、找到.git

通过目录扫描来发现敏感文件和目录
查看robots.txt文件,可能存在./git
利用搜索引擎,intitle:”Index of /.git” 或者Google中搜索site:example.com inurl:.git

2、把.git下载到本地

使用http请求下载

- 如果找到了公开的.git目录,可以直接通过浏览器或命令行工具(如wget或curl)访问.git目录下的文件和子目录

假设发现了公开的.git目录,其URL为 http://example.com/.git/
wget --recursive --no-parent --no-host-directories http://example.com/.git/

Git协议克隆仓库

假设要克隆一个名为 “example.git的仓库,URL 为https://github.com/username/example.git`,我们可以执行以下命令

git clone https://github.com/username/example.git

使用专门的工具

有一些工具如`GitHack`、`GitDorker`等,它们专门设计用来利用`.git`目录泄露的问题,可以自动化下载和恢复Git仓库的过程。

手动下载

如果自动化工具不适用,可以手动浏览`.git`目录,逐个下载文件和目录。这通常涉及到下载`HEAD`、`config`、`index`、`logs`、`objects`和`refs`等关键组件

举例:结合google语法,GitHub上做信息收集。

以下是一个靶场DC7的网站
【整理】【信息收集】web渗透测试

基于该信息,通过谷歌语法进行查询
【整理】【信息收集】web渗透测试

通过GitHub,能够找到数据库的用户名和密码泄露
【整理】【信息收集】web渗透测试

也能够将.git下载到本地

wget --recursive --no-parent --no-host-directories https://github.com/Dc7User/staffdb.git

【整理】【信息收集】web渗透测试

❗注意:在没有明确授权的情况下,不应该尝试下载他人的.git目录。

参考🔗

https://mp.weixin.qq.com/s/KJ1SU3MrgAMVge-2FKwonQ


© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...