一.端口信息收集
1.端口基础认知
A.端口简介
在 Internet 环境中,各主机依据 TCP/IP 协议实现数据包的发送与接收。数据包凭借目的主机的 IP 地址,在互联网络里完成路由选择,进而精准地传至目标主机。然而,当目的主机同时运行多个程序时,如何将接收到的数据准确无误地传递给对应的程序进程,成为了亟待解决的问题。端口机制应运而生,用以化解这一难题。
在网络技术范畴内,端口涵盖两层含义:
- 物理端口:实际存在的端口,像集线器、路由器、交换机、ADSL Modem 等设备上用于连接其他设备的端口。
- 逻辑端口:主要用于区分不同服务,常见于 TCP/IP 协议体系中,其范围从 0 至 65535 。其中 0 为保留端口,总共允许 65535 个端口存在。例如,用于网页浏览服务的 80 端口,负责 FTP 服务的 21 端口。在本文语境下,所提及的端口均特指 TCP/IP 协议中的逻辑端口 。
B.协议端口
依据提供服务类型的差异,端口可划分为以下两类:
- TCP 端口:TCP 是一种面向连接且可靠的传输层通信协议。它在给目标主机发送信息后,会通过接收返回的应答,确认信息是否成功送达。
- UDP 端口:UDP 是一种无连接且不可靠的传输层协议。向目标主机发送信息后,不会主动去确认信息是否到达。
由于 TCP 协议和 UDP 协议相互独立,所以它们各自的端口号也彼此独立 。
C.端口类型
- 周知端口:即那些广为人知的端口号,范围处于 0 - 1023 之间。例如 80 端口对应 WWW 服务 。
- 动态端口:通常不会固定分配给某种特定服务,范围在 49152 - 65535 。
- 注册端口:范围是 1024 - 49151 ,主要用于分配给用户进程或程序 。
D.渗透测试常用端口
- 相关参考:渗透基础 | 黑客常用端口利用总结 - ZM思 - 博客园
-
端口号 端口说明 常见攻击技巧 补充说明 21 ftp:文件传输协议 爆破、嗅探、溢出、后门 利用工具如 owasp 的 Bruter、hydra,msf 中的 ftp 爆破模块;利用 vsftpd 2 到 2.3.4 版本后门漏洞;因明文传输可借助 Cain 在局域网嗅探 22 ssh:远程连接 爆破、OpenSSH 漏洞利用、28 个退格攻击 使用 hydra、msf 中的 ssh 爆破模块;利用 openssh 特定版本用户枚举漏洞 CVE-2018-15473 等 23 telnet:远程连接 爆破、嗅探 可通过工具进行弱口令爆破,在局域网中能实施嗅探获取登录信息 25 smtp:邮件服务 邮件伪造 通过伪造邮件源信息,进行钓鱼等攻击 53 DNS:域名系统 DNS 区域传输、DNS 劫持、DNS 缓存投毒、DNS 欺骗、利用 DNS 隧道技术刺透防火墙 恶意获取 DNS 区域数据;篡改 DNS 解析结果;污染 DNS 缓存;搭建 DNS 隧道突破网络限制 67/68 dhcp 劫持、欺骗 非法获取或分配 IP 地址,干扰正常网络配置 110 pop3 爆破 对用户账号密码进行暴力破解 139 samba 爆破、未授权访问、远程代码执行 尝试破解密码访问共享资源;利用漏洞执行远程代码 143 imap 爆破 通过爆破手段获取用户邮箱登录权限 161 snmp 爆破 对简单网络管理协议进行弱口令爆破 389 ldap 注入攻击、未授权访问 构造恶意语句获取或修改 LDAP 目录数据;在未授权情况下访问敏感信息 512/513/514 linux r 直接使用 rlogin 在信任关系下,可直接利用 rlogin 命令进行连接操作 873 rsync 未授权访问 未设置访问控制时,可非法访问数据 1080 socket 爆破(进行内网渗透) 通过爆破突破内网相关服务的访问限制 1352 lotus 爆破(弱口令)、信息泄露(源代码) 尝试破解弱密码登录系统;获取程序源代码,分析潜在漏洞 1433 mssql 爆破(使用系统用户登陆)、注入攻击 利用工具对系统用户进行密码破解;通过构造 SQL 语句实施注入攻击 1521 oracle 爆破(TNS)、注入攻击 对 Oracle 数据库连接服务进行口令爆破;在交互中进行 SQL 注入 2049 nfs 配置不当 因 NFS 配置缺陷,可导致非法访问文件系统 2181 zookeeper 未授权访问 未经授权即可访问 Zookeeper 服务,获取关键信息 3306 mysql 爆破、拒绝服务、注入 使用工具破解密码;通过发送大量请求导致服务不可用;构造 SQL 注入语句 3389 rdp 爆破、shift 后门 暴力破解远程桌面登录密码;利用 shift 键组合触发特定漏洞获取权限 4848 glassflsh 爆破(控制台弱口令)、认证绕过 对控制台密码进行破解;绕过正常认证机制访问 5000 sybase/DB2 爆破、注入 针对数据库登录进行爆破;实施 SQL 注入攻击 5432 postgresql 缓冲区溢出、注入攻击、爆破(弱口令) 利用缓冲区溢出漏洞;构造注入语句;尝试破解弱密码 5632 pcanywhere 拒绝服务、代码执行 发送大量请求导致服务崩溃;利用漏洞执行恶意代码 5900 vnc 爆破(弱口令)、认证绕过 破解登录密码;绕过身份验证机制 6379 redis 未授权访问、爆破(弱口令) 无密码或弱密码时,可非法访问 Redis 服务并进行数据操作 7001 weblogic java 反序列化、控制台弱口令、控制台部署 webshell 利用反序列化漏洞执行任意代码;破解控制台密码;上传恶意 WebShell 80/443/8080 web 常见 web 攻击、控制台爆破、对应服务器版本漏洞 SQL 注入、XSS 攻击等;对服务器控制台进行密码破解;利用服务器特定版本已知漏洞 8069 zabbix 远程命令执行 利用漏洞在 Zabbix 服务器上执行系统命令 9090 websphere 控制台 爆破(控制台弱口令)、java 反序列化 破解控制台登录密码;利用反序列化漏洞攻击 9200/9300 elasticsearch 远程代码执行 通过构造恶意请求,在 Elasticsearch 服务上执行远程代码 11211 memcache/memcached 未授权访问 未设置安全访问策略时,可非法访问数据 27017 mongodb 爆破、未授权访问 破解数据库登录密码;在无权限情况下访问 MongoDB 数据库
2.常见端口详细介绍
A.FTP - 21
-
介绍:FTP(文件传输协议)采用 TCP 端口 20 和 21 ,其中 20 用于传输数据,21 用于传输控制信息 。
- ftp 基础爆破:可借助 owasp 的 Bruter、hydra 工具,以及 msf 中的 ftp 爆破模块 。
- ftp 匿名访问:用户名使用 “anonymous”,密码为空或者填写任意邮箱地址 。
- vsftpd 后门:在 vsftpd 2 到 2.3.4 版本中存在后门漏洞,攻击者能够借此漏洞获取 root 权限 。
- 嗅探:因 ftp 使用明文传输,可利用 Cain 工具进行渗透,但嗅探操作需在局域网环境下,且需要对网关进行欺骗或监听 。
- ftp 远程代码溢出:存在远程代码溢出的风险 。
- ftp 跳转攻击:有遭受跳转攻击的可能 。
相关参考链接:
- ProFTPD 1.3.3c 远程命令执行:记录一次对本地ftp服务器的渗透_1433端口-CSDN博客
- FTP 跳转攻击:FTP主动模式下利用PORT命令的安全风险-CSDN博客
B.SSH - 22
-
介绍:SSH(secure shell)是当前较为可靠的协议,专门为远程登录会话和其他网络服务提供安全保障 。
- 弱口令攻击:可使用 hydra 工具以及 msf 中的 ssh 爆破模块 。
- SSH 后门:参考链接:渗透基础-SSH后门分析总结 - SecPulse.COM | 安全脉搏
- openssh 用户枚举 CVE - 2018 - 15473:参考链接:OpenSSH用户枚举漏洞(CVE-2018-15473)分析-安全KER - 安全资讯平台
C.WWW - 80
-
介绍:80 端口是为超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息 。
- 中间件漏洞:例如 IIS、apache、nginx 等中间件存在的漏洞 。
- 利用 web 应用程序漏洞:通过 80 端口,借助 web 应用程序常见的漏洞进行攻击 。
D.NetBIOS SessionService – 139/445
-
介绍:139 端口用于提供 windows 文件和打印机共享及 UNIX 中的 Samba 服务;445 端口同样用于提供 windows 文件和打印机共享 。
- 双端口开放利用:若同时开放 139 和 445 端口,可尝试利用 MS17010 溢出漏洞发动攻击 。
- 单 445 端口开放利用:若仅开放 445 端口,可尝试利用 MS06040、MS08067 溢出漏洞进行攻击 。
- 利用IPC$连接实施渗透 。
E.MySQL - 3306
-
介绍:3306 是 MYSQL 数据库默认的监听端口。
- mysql 弱口令破解:破解弱密码登录数据库 。
- 恶意函数执行:通过弱口令登录 mysql 后,上传构造的恶意 UDF 自定义函数代码,再调用注册的恶意函数执行系统命令 。
- SQL 注入:利用 SQL 注入手段获取数据库敏感信息,还可借助 load_file () 函数读取系统文件,并将恶意代码导出到指定路径 。
F.RDP - 3389
-
介绍:3389 是 windows 远程桌面服务默认监听的端口。
- RDP 暴力破解攻击:通过暴力破解密码尝试登录 。
- MS12_020 死亡蓝屏攻击:利用该漏洞发起攻击 。
- RDP 远程桌面漏洞(CVE - 2019 - 0708):利用此漏洞进行攻击 。
- 开启 RDP 相关操作:可通过 MSF 开启 RDP 、利用注册表开启 RDP 。
G.Redis - 6379
-
介绍:Redis 是开源的可基于内存且可持久化的日志型数据库 。
- 爆破弱口令:尝试破解弱密码 。
- 未授权访问结合 ssh key 提权:若存在未授权访问情况,可结合 ssh key 实现提权 。
- 主从复制 rce:利用主从复制机制实现远程代码执行 。
H.Weblogic - 7001
-
介绍:WebLogic 是美国 Oracle 公司出品的一款基于 JAVAEE 架构的 application server ,主要用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用 。
- 弱口令与爆破:弱密码一般为 weblogic/Oracle@123 或 weblogic ,可通过爆破获取权限 。
- 管理后台部署 war 包后门:在管理后台部署带有后门的 war 包 。
- weblogic SSRF:存在 SSRF 漏洞可被利用 。
- 反序列化漏洞:存在反序列化漏洞 。
I.Tomcat - 8080
-
介绍:Tomcat 服务器是一款开源的轻量级 Web 应用服务器,在中小型系统和并发量较小的场景中应用广泛,是开发和调试 Servlet、JSP 程序的首选 。
- Tomcat 远程代码执行漏洞(CVE - 2019 - 0232):利用该漏洞实现远程代码执行 。
- Tomcat 任意文件上传(CVE - 2017 - 12615):利用此漏洞实现任意文件上传 。
- tomcat 管理页面弱口令 getshell:通过破解管理页面弱口令获取 shell 权限 。
3.端口扫描
A.NMAP 简介
-
介绍:Network Mapper(NMAP)是一款开源的网络探测和安全审核工具 。
- 相关参考:nmap 参考指南(中文版):https://nmap.org/man/zh/
B.功能介绍
- 检测网络存活主机(主机发现):通过特定方式判断网络中哪些主机处于活动状态 。
- 检测主机开放端口(端口发现或枚举):扫描目标主机上开放的端口 。
- 检测相应端口软件(服务发现)版本:识别开放端口所对应的软件及其版本 。
- 检测操作系统,硬件地址,以及软件版本:获取目标主机的操作系统、硬件地址等信息 。
- 检测脆弱性的漏洞(nmap 的脚本):利用 nmap 自带的脚本检测目标主机是否存在特定漏洞 。
C.端口状态
- Open:端口处于开启状态,数据能够到达主机,并且有程序在该端口上进行监控 。
- Closed:端口关闭,数据可到达主机,但没有程序在该端口监听 。
- Filtered:数据无法到达主机,返回结果为空,表明数据被防火墙或 IDS 过滤 。
- UnFiltered:数据可以到达主机,然而无法识别端口当前的状态 。
- Open|Filtered:端口无返回值,这种情况主要出现在 UDP、IP、FIN、NULL 和 Xmas 扫描中 。
- Closed|Filtered:仅在 IP ID idle 扫描中出现 。
D.基础用法
-
全面扫描示例:nmap -A -T4 192.168.1.1
- -A:表示全面扫描或综合扫描,尽可能获取更多信息 。
- -T4:设置扫描速度,总共有 6 级(T0 - T5) 。
- 若未指定端口,默认扫描 1 - 1024 端口以及 nmap - service 文件中定义的端口 。
-
单一主机扫描:nmap 192.168.1.2
-
子网扫描:nmap 192.168.1.1/24
-
多主机扫描:nmap 192.168.1.1 192.168.1.10
-
主机范围扫描:nmap 192.168.1.1 - 100
-
IP 地址列表扫描:nmap –iL target.txt,从指定文件(target.txt)中读取 IP 地址列表进行扫描 。
-
扫描除指定 IP 外的所有子网主机:nmap 192.168.1.1/24 --exclude 192.168.1.1
-
扫描除文件中 IP 外的子网主机:nmap 192.168.1.1/24 --excludefile xxx.txt
-
扫描特定主机上的指定端口:nmap –p 80,21,23 192.168.1.1,扫描 192.168.1.1 主机上的 80、21、23 端口 。
-
扫描全部端口:
nmap -sS -v -T4 -Pn -p 0 - 65535 -oN FullTCP -iL liveHosts.txt
-
-sS:SYN 扫描,也叫半开放扫描,它无需建立完整的 TCP 连接,执行速度快、效率高(一个完整的 tcp 连接需要 3 次握手,而 -sS 选项不需要 3 次握手) 。
- 优点:Nmap 发送 SYN 包到远程主机,不会产生实际会话,目标主机几乎不会将连接记入系统日志(可防止对方察觉扫描行为),扫描速度快、效率高,在实际工作中使用频率较高 。
- 缺点:需要 root/administrator 权限才能执行 。
-
-Pn:扫描前无需使用 ping 命令,适用于防火墙禁止 ping 命令的情况 。
-
-iL:从指定文件(liveHosts.txt)中导入需要扫描的主机列表 。
-
-
扫描常用端口及服务信息:nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt
-
系统扫描:nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt
-
版本检测:nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt
-
NMAP 漏洞扫描:nmap.exe -p445 -v --script smb - ghost 192.168.1.0/24,针对 192.168.1.0/24 网段的 445 端口,利用 smb - ghost 脚本进行漏洞扫描 。
二.网站信息收集
1.操作系统信息收集
A.判断方法
-
Ping 判断:
-
Windows 的 TTL 值一般为 128,Linux 则为 64。通常 TTL 大于 100 的系统一般为 Windows,几十的为 Linux。
-
通过发送 Ping 请求,观察返回的 TTL 值,可初步判断目标系统的操作系统类型。
-
-
Nmap -O 参数:
-
使用 Nmap 工具的 -O 参数,可以对目标主机的操作系统进行检测。
- 命令示例:namp -O ip
-
Nmap 会根据不同操作系统的特征,分析目标主机可能的操作系统类型。
-
-
大小写敏感性:
- Windows 系统大小写不敏感,而 Linux 系统区分大小写。
- 在后续信息收集和渗透测试中,可根据这一特性,通过一些命令执行结果或文件操作结果来进一步验证操作系统类型。
2.网站服务与容器类型信息收集
A.判断方法
-
F12 查看响应头 Server 字段:
-
打开浏览器的开发者工具(F12),查看响应头中的 Server 字段。
-
该字段会显示服务器使用的容器类型,如 apache、nginx、tomcat、IIS 等。
-
-
Whatweb 工具:
- 可访问whatweb | Kali Linux Tools。
- 该工具能自动检测网站的服务器信息和应用程序信息,帮助识别网站所使用的容器类型。
-
Wappalyzer 插件:
- 安装在浏览器中的插件,方便用户快速查看网站使用的技术栈,包括容器类型。
B.利用容器类型信息
根据识别出的容器类型及其版本,考虑其可能存在的漏洞,尤其是解析漏洞,可提前做好防范或寻找渗透机会。
3.脚本类型信息收集
A.常见脚本类型
- php
- jsp
- asp/aspx
- python
B.重要性
明确网站使用的脚本语言,才能更有针对性地进行文件扫描、文件上传等操作,为后续渗透测试或安全维护工作提供依据。
4.数据库类型信息收集
A.SQL 注入前的数据库类型判断重要性
- 介绍:在进行 SQL 注入之前,需要判断数据库的类型,因为不同数据库处理函数的方式有细微差别,只有确定数据库类型,才能根据其特点选择合适的函数,有助于更有效地实现 SQL 注入。
B.常见数据库类型及其特点
-
Oracle:
- 默认端口:1521。
- 常用于 java 开发的网站,具有独特的函数和处理逻辑。
-
MySQL:
- 默认端口:3306。
- 常与 php 等脚本语言搭配使用,在网站开发中广泛应用。
-
SQL Server:
- 默认端口:1433。
- 通常与 asp 或.net 网站相关联。
-
Postgresql:
- 默认端口:5432。
- 拥有自身的数据库特性和函数处理方式。
-
Mongodb:
- 默认端口:27017。
- 一种非关系型数据库,在现代网站开发中逐渐普及。
-
Access:
- 文件型数据库,不需要端口。
- 多在 asp 环境中使用。
C.数据库类型判断方法
相关参考:SQL注入如何判断数据库类型_sql注入判断数据库类型-CSDN博客
-
根据特有函数判断:
- 不同数据库具有各自特有的函数,通过执行一些测试性的 SQL 语句,观察函数的执行结果或报错信息,来推断数据库类型。
-
根据特殊符号进行判断:
- 不同数据库对特殊符号的处理和支持可能不同,可据此进行判断。
-
根据数据库对字符串的处理方式判断:
- 不同数据库在处理字符串时可能有不同的规则和函数,如字符串拼接、截取等操作的语法和函数不同。
-
根据数据库特有的数据表来判断:
- 不同数据库可能拥有自身特有的系统表,尝试查询这些表,若能成功,可辅助判断数据库类型。
-
根据盲注特别函数判断:
- 在盲注过程中,不同数据库有其独特的盲注函数,利用这些函数的特性和结果判断数据库类型。
5.CMS 识别
A.CMS 简介
-
介绍:CMS(内容管理系统)用于网站内容文章管理,常见的 CMS 包括 WordPress、Joomla、Drupal、dedecms(织梦)、Discuz、phpcms 等。
- CMS识别:yunsee.cn-2.0
B.CMS 检测识别工具
- CMSeeK:GitHub - Tuhinshubhra/CMSeeK: CMS Detection and Exploitation suite - Scan WordPress, Joomla, Drupal and over 180 other CMSs
- Joomscan:GitHub - OWASP/joomscan: OWASP Joomla Vulnerability Scanner Project https://www.secologist.com/
- wpscan:GitHub - wpscanteam/wpscan: WPScan WordPress security scanner. Written for security professionals and blog maintainers to test the security of their WordPress websites. Contact us via contact@wpscan.com
- TPscan:GitHub - Lucifer1993/TPscan: 一键ThinkPHP漏洞检测
6.敏感文件和目录信息收集
A.常见敏感文件或目录
-
robots.txt:
- 是一个纯文本文件,网站管理者在其中声明不想被搜索引擎访问的部分,或指定搜索引擎只收录的内容。搜索引擎访问站点时,先检查该文件并按其内容确定访问范围,若不存在则按链接抓取。
- 可提供一些关于网站目录结构的信息,帮助攻击者寻找敏感目录。
-
crossdomain.xml:
- 跨域策略文件,是一个 xml 文档文件,主要为 web 客户端(如 Adobe Flash Player 等)设置跨域处理数据的权限。
- 重点查看 allow-access-from 字段可获取网站目录信息,可使用 GoogleHacking 语法:inurl:crossdomain filetype:xml intext:allow-access-from。
-
sitemap.xml:
- 是 XML 文件,网站管理员通过它通知搜索引擎网站上可供抓取的网页,列出网站网址及元数据(更新时间、更改频率、重要程度等)。
- 可使用 GoogleHacking 语法:inurl:sitemap filetype:xml查找。
-
后台目录:
- 通常是网站管理员登录管理的入口,是攻击的重点目标,可能包含大量敏感信息和管理权限。
-
网站安装目录:
- 可能包含网站的安装文件和配置文件,泄露后可能导致网站重新部署或被篡改。
-
网站上传目录:
- 是文件上传功能的存储位置,若权限设置不当,可能被利用上传恶意文件。
-
mysql 管理页面:
- 可能泄露数据库管理信息,存在被入侵数据库的风险。
-
phpinfo:
- 可能暴露服务器的 PHP 配置信息,包括已启用的模块、版本等,给攻击者提供信息。
-
网站文本编辑器:
- 可能存在编辑器漏洞,被利用进行文件上传或代码执行。
-
测试文件:
- 可能包含未清理的测试信息,为攻击者提供线索。
-
网站备份文件:
- 包括.rar、.zip、.7z、.tar、.gz、.bak 等,可能泄露网站源码和数据,攻击者通过猜解文件路径下载,导致敏感信息泄露。
-
DS_Store 文件:
- 可能泄露网站目录结构信息。
-
vim 编辑器备份文件(.swp):
- 可能包含部分未保存的编辑信息,也可能导致源码泄露。
-
WEB-INF/web.xml 文件:
- 是 Java 的 Web 应用的安全目录中的文件,包含重要信息,找到该文件可推断 class 文件路径,反编译 class 文件可得到网站源码。
B.敏感文件和目录挖掘方法
-
工具挖掘:
- 使用御剑、BBscan 等工具,能自动化查找敏感文件和目录。
-
手工挖掘:
- 在 robots.txt 中查找敏感目录;
- 查看 F12 源代码链接处;
- 通过图片属性路径发现隐藏目录;
- 结合域名和常见后台管理地址,使用御剑进行扫描;
- 手动输入常见后台管理地址访问;
- 在不同端口寻找,如http://www.xxx.com:8080;
- 在网站分目录下寻找,如http://www.xxx.com/test/admin/manage.php;
- 在子域名下寻找,如http://admin.xxx.com/login。
7.源代码泄露信息收集
A.常见源代码泄露源
-
Github 泄露:
-
开发人员将代码上传到网站,未删除重要信息(如邮箱、SVN 信息、内部账号密码、数据库连接信息、服务器配置信息等)。
-
可通过在 Github 上搜索公司的特定信息,如公司域名,查看是否有相关信息泄露。
-
可使用以下 GoogleHacking 语法搜索:
- site:Github.com smtp
- site:Github.com smtp @qq.com
- site:Github.com smtp @126.com
- site:Github.com smtp @163.com
- site:Github.com smtp @sina.com.cn
- site:Github.com smtp password
- site:Github.com String password smtp
- site:Github.com sa password
- site:Github.com root password
- site:Github.com User ID='sa';Password
- site:Github.com svn
- site:Github.com svn username
- site:Github.com svn password
- site:Github.com svn username password
- site:Github.com inurl:sql
- site:Github.com password
- site:Github.com ftp ftppassword
- site:Github.com 密码
- site:Github.com 内部
-
这类漏洞主要靠人员安全意识防护,无其他防护方法。
-
-
.git 泄露:
- 大量开发人员使用 git 进行版本控制和自动部署,若配置不当,将.git 文件部署到线上环境,会引起泄露,导致网站源码泄露。
- 渗透测试人员或攻击者可审计代码,挖掘文件上传、SQL 注入等 web 安全漏洞。
- 防护方法包括部署时删除.git 文件夹或在 nginx 配置中屏蔽.git 目录访问。
- GoogleHacking 语法:".git" intitle:"index of"。
- 可使用工具:GitHub - lijiejie/GitHack: A `.git` folder disclosure exploit,通过.git 文件夹下的文件重建还原工程源代码。
-
.svn 泄露:
- 类似于.git,使用 svn checkout 功能更新代码,若未删除.svn 版本控制目录,恶意用户可利用该目录下的文件恢复源码,获取数据库密码、源码漏洞等信息。
- 防护:部署时删除该文件。
- GoogleHacking 语法:".svn" intitle:"index of"。
- 工具:GitHub - admintony/svnExploit: SvnExploit支持SVN源代码泄露全版本Dump源码。
-
WEB-INF/web.xml 泄露:
- 包含 WEB-INF/web.xml(Web 应用程序配置文件,描述 servlet 和其他应用组件及命名规则)、WEB-INF/database.properties(数据库配置文件)、WEB-INF/classes/(存放 Java 类文件)、WEB-INF/lib/(存放库文件)、WEB-INF/src/(存放源代码)。
- 找到 web.xml 文件,可推断 class 文件路径,下载 class 文件并反编译得到网站源码。
8.目录扫描探测
A.目的
- 介绍:通过目录扫描可发现网站的目录和页面数量,探索网站整体结构,还能扫描敏感文件、后台文件、数据库文件和信息泄漏文件等。
B.扫描方式
-
使用目录字典暴力猜解:
- 使用字典文件对可能存在的目录或文件进行暴力猜解,根据返回的响应状态码(如 200 或 403)判断是否存在。
-
使用爬虫爬取:
- 利用爬虫爬取页面上的所有链接,对每个链接再次爬行,收集域名下的所有链接,总结页面信息。
C.目录扫描工具
所有工具都在下方网盘里
链接:https://pan.baidu.com/s/1D-ZvNe6lkEKeUy-TspAXBg?pwd=pvci
提取码:pvci
- feroxbuster
- dirb
- dirsearch
- dirmap
- dirBuster
- 御剑后台扫描工具
9.网站 WAF 识别
A.WAF 定义
- 介绍:WAF(Web Application FireWall)是用于保护网站、防止黑客和网络攻击的安全防护系统,是最有效、最直接的 Web 安全防护产品。
B.WAF 功能
- 防止常见的各类网络攻击,如 SQL 注入、XSS 跨站、CSRF、网页后门等;
- 防止各类自动化攻击,如暴力破解、撞库、批量注册、自动发贴等;
- 阻止其它常见威胁,如爬虫、0 DAY 攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄漏、应用层 DDOS、远程恶意包含、盗链、越权、扫描等。
C.WAF 识别方法
-
wafw00f 工具:
- 可访问GitHub - EnableSecurity/wafw00f: WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.或wafw00f | Kali Linux Tools。
- 专门用于检测网站是否部署了 WAF 以及识别 WAF 的类型。
-
Nmap 脚本:
- nmap –p80,443 --script http-waf-detect ip
- nmap –p80,443 --script http-waf-fingerprint ip
-
看图识 WAF:
- 参考链接:干货 | 常见WAF拦截页面总结