指纹信息
概念
网站的指纹信息是一种对目标网站的识别技术,通过识别网站所使用的服务器、运行的脚本、安装的CMS等信息对目标进行精准的分类和定位。这有助于安全研究人员在安全测试中快速了解目标网站的基本信息,以搜索相关漏洞。
常见的指纹检测对象
CMS信息:大汉CMS、织梦、帝国CMS、phpcms、ecshop等;
前端技术:HTML5、jquery、bootstrap、pure、ace等;
Web服务器:Apache、lighttpd, Nginx, IIS等;
应用服务器:Tomcat、Jboss、weblogic、websphere等;
开发语言:PHP、Java、Ruby、Python、C#等;
操作系统信息:linux、win2k8、win7、kali、centos等;
CDN信息:CDN,如cloudflare、360cdn、365cyd、yunjiasu等;
WAF信息:waf,如Topsec、Jiasule、Yundun等;
IP及域名信息:IP和域名注册信息、服务商信息等;
端口信息:软件或平台还会探测服务器开放的常见端口。
CMS:
全称是:“内容管理系统”
作用是:加快网站开发的速度,减少开发成本。
内容管理系统(CMS)是一种帮助网站所有者轻松创建、编辑、管理并发布内容的应用程序。它允许用户通过一个用户友好的界面来进行网页设计和网站内容的更新,而无需具备专业的编程知识。
CMS漏洞成因:
软件漏洞:
CMS软件自身存在的设计或编码错误,导致攻击者可以利用这些漏洞进行攻击。
配置不当:
系统管理员没有正确配置CMS系统,如设置过于宽松的权限或使用默认的登录凭证。
组件或插件缺陷:
许多CMS系统依赖插件和组件来扩展功能,这些第三方插件的缺陷也可能称为漏洞的来源。
安全意识不足:
管理员和用户对安全意识不足,例如使用弱口令,不定期更新软件等。
软件过时:
未及时更新CMS软件,导致存在安全漏洞的CMS版本未得到修复。
用户交互不当:
对用户输入的数据没有进行过滤和验证,例如在输入数据中嵌入HTML代码或执行SQL语句,可能导致XSS攻击或SQL注入等。
常见CMS漏洞:
SQL注入
攻击者通过输入恶意SQL查询来操控数据库,获取、修改或删除数据。
XSS
攻击者在网页中注入恶意脚本,当其他用户访问时,这些脚本会在用户的浏览器中执行。
文件上传
攻击者可以上传恶意文件(如Web Shell),从而获得服务器的控制权。
拒绝服务攻击
通过发送大量请求使CMS无法正常响应合法用户的请求。
身份验证和会话管理漏洞
不当的身份验证机制可能导致攻击者获取别人账号的访问权限。
敏感信息泄露
不当配置或代码缺陷可能导致敏感数据(如数据库凭证)被暴露。
CSRF攻击
攻击者诱使用户在未授权的情况下执行非法操作,比如恶意转账。
权限提升
攻击者通过漏洞获得更高的访问权限,进行未授权的操作。
第三方插件漏洞
使用的插件存在安全缺陷,攻击者可以利用这些漏洞。
目录遍历
攻击者能够访问本应被限制的服务器文件和目录。
防御措施
定期更新CMS及其插件。
实施强密码策略。
使用防火墙和入侵检测系统。
进行定期的安全审计和渗透测试。
CMS信息收集
在线信息收集网站
CMS识别工具
其他识别CMS方法
#可用的网站和工具太多了,参照大佬的文章
信息收集-CMS识别
前端技术
前端是指网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,合适的动效设计,给用户带来极高的用户体验。前端是用户在点击一个链接或输入一个网页地址时看到的和与之互动的一切。
漏洞成因:
输入验证不足:
用户输入的数据未经过适当的验证和清洗,可能导致XSS\SQL注入等攻击。
用户身份和会话管理不当:
弱认证或不安全的会话处理可能会导致会话劫持火身份验证绕过。
CSRF:
没有使用有效的防护措施,导致恶意脚本能够在用户未授权的情况下执行操作。
不安全的API调用:
前端与后端的API通信未加密,可能导致敏感信息被截获.
依赖漏洞:
使用的第三方库和框架存在已知安全漏洞,没有及时更新。
XSS:
将用户输入的内容直接嵌入页面,允许攻击者注入恶意脚本。
不安全的存储:
在浏览器本地存储敏感信息(如JWT、用户凭证)未加密。
不当的权限控制:
前端应用没有有效地实现权限控制,允许未经授权的用户执行操作。
开放重定向:
应用程序在无验证的情况下允许用户重定向到任意URL,可能引导用户访问恶意网站。
环境配置不当:
开发环境和生产环境之间的配置不一致,可能泄露调试信息等敏感数据。
扩展:
一个JWT通常包含三个部分:头部(Header)、载荷(Payload)和签名(Signature)。
头部 中定义了JWT的算法类型;
载荷 中包含了可用于描述实体相关信息的数据,比如唯一标识符、过期时间等;
签名 是通过对头部和载荷进行签名计算生成的,用于验证JWT的真实性和完整性。
防御措施:
1.实施严格的输入验证和输出编码。
2.使用安全的身份验证和会话管理机制。
3.采用CSRF令牌和保护措施。
4.定期更新依赖的库和框架。
5.实施权限控制并进行安全审计。
WEB服务器
Web服务器一般指的是“网站服务器”,可以向终端提供服务,主要功能是存储、处理和传递网页给用户,传递内容一般是HTML文档,图像、样式表或脚本等,也可以放置文件以供浏览或下载。
web服务器、web中间件、web容器的区别:
Web服务器指运行在互联网上的主机,提供web服务的主机。使用HTTP协议来接收客户端 的请求,并根据请求的内容提供相应的文件、执行指定的操作或者返回处理结果。
Web中间件位于客户机/服务器的操作系统之上,能够实现不同技术之间的资源共享,使应用程序能够跨平台或操作系统环境运行。
Web容器为应用程序提供运行环境,给处于其中的应用程序组件提供运行环境,使其直接跟容器中的环境变量交互,不必关注其它系统问题。
CDN信息
全称 Content Delivery Network),即内容分发网络。
CDN构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
关键技术在于内容的存储和分发,将中心平台的内容存储在其它节点,当用户访问时,无需跨越多个节点直接访问源站,而是访问离他最近的一个CDN节点(也叫“边缘节点”),其实就是缓存了原站内容的代理服务器。
总结:CDN,也就是内容分发网络,主要作用是将中心平台的资源缓存到各个节点,也就是CDN,当用户访问某个资源时,不需要再访问源站,而是访问离他最近的一个CDN。
CDN资源的访问和之前分享过一篇DNS,也就是域名解析过程很类似,也是先访问最近的原边节点,如果边缘节点没有用户需要的资源后,再去访问区域节点,区域节点也没有,最后再到中心节点。
在这个逐层往上查找的过程中,节点缓存的资源数量逐层增加。为了提高访问速度,边缘节点的数量最多但缓存的数据最少;区域节点缓存的数据比边缘节点多,但又比中心节点少。
类似DNS域名解析的话,就是先在历史缓存记录里少,没有再去本地、host文件,再没有继续往本地域名注册商处找,也是逐层往上。
需要注意的是,CDN缓存的内容只有静态页面,就是对实时性要求 不高的资源,比如视频、图片、音乐等,而像火车余票,粉丝数量这些实时变化的资源,就不能作为缓存到CDN里。
IP
信息收集
- ping ip/域名
- nslookup
- 指定dns服务器
- dig @指定dns服务器 域名
- 获取域名详细解析过程
- dig +trace 域名
绕过CDN查找网站真实IP
判断是否使用CDN
使用多地ping服务,查看对应的IP地址是否唯一,如果不唯一大概率使用了CDN(因为有多个缓存节点,所以IP不唯一)
使用nslookup,如果域名解析返回多个IP地址,大概率使用了CDN
使用工具检测
http://www.cdnplanet.com/tools/cdnfinder/
绕过CDN查找网站真实IP
1.查询历史DNS记录(找到网站在使用CDN之前的历史解析记录)
https://viewdns.info/
https://x.threatbook.cn/
2.查询子域名
因为CDN的价格问题,并非所有的网站都会有CDN,在一些访问量很小的子站,或者子站与主站在同一个服务器或者C段内的,可能没有布置有CDN。这时可以通过查询子域名对应的IP来辅助查找网站的真实IP
3.服务器合法服务主动连接
让服务器主动连接我们,然后告诉我们它的IP,不过使用的是合法的服务,如RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
端口信息
在渗透测试中,我收集的端口信息为逻辑端口,主要用于区分服务的端口。
**作用:**端口号的主要是为计算机中特定的进程提供服务。在两台计算机之间进行通信发送数据包时,因为一台计算机上可以提供多种不同的服务,而通信双方的端口是数据包发送和接收的终点。
端口信息收集
windows
netstat -ano
linux
netstat -ntlp
工具收集
nmap
masscan
常见高危端口
20,21(FTP,文件传输协议):由于其明文传输的特征,易受到暴力破解攻击
弱口令
匿名访问
上传后门
远程溢出
跳转攻击
22(SSH,加密的远程登录):如果配置不当火使用弱密码,可能会被黑客利用。
弱口令
28退格漏洞
OpenSSL漏洞
用户名枚举
23(Telent,远程登录协议):由于其明文传输的特征,安全性低。
弱口令
25(SMTP,简单邮件传输协议):可被用于发送垃圾邮件或进行邮件炸弹攻击
弱口令
未经授权访问
邮件伪造
53(DNS,域名解析系统):如果被攻陷,可能导致 DNS欺骗。
DNS区域传输
DNS劫持
DNS欺骗
DNS缓存投毒
DNS隧道
110(POP3,接收邮件):若未配置SSL,可能受到中间人攻击。
弱口令
未经授权访问
135(RCP,远程过程调用协议):易被用于Dos攻击或进行恶意扫描。
137(NetBIOS的UDP端口,网络基本输入/输出系统):可被用于SMB攻击。
139(NetBIOS的TCP端口,网络基本输入/输出系统):可被用于SMB攻击。
445(SMB,Server Message Block协议端口):与139端口相关,易受攻击。
139/445--永恒之蓝
389 (LDAP):轻型目录访问协议,若存在注入漏洞,可能被利用。
弱口令
注入
未经授权访问
3306(Mysql,数据库端口):若未配置好或存在已知漏洞,可能被利用。
弱口令
身份认证漏洞-cve-2012-2122
拒绝服务攻击
phpmyadmin万能密码or弱口令
UDF/MOF提权
3389(RDP)
弱口令
Shitf粘滞键后门
缓冲区溢出
MS12-020
CVE-2019-0708
详细的端口漏洞,参考大佬文章:渗透测试——常见服务端口及对应的漏洞汇总