信息收集(Web 安全)

一,概述

渗透测试(Pe***ration Testing)是一种评估计算机系统、网络或应用程序安全性的方法。通过模拟攻击者的行为,渗透测试旨在发现系统中存在的安全漏洞和弱点,以便组织可以及时修复这些问题,从而提高其安全性

渗透测试一般的流程如下:

       在这其中,想要做好渗透的整个过程,首先要做好信息收集,就像是房子的地基一样,所以信息收集在渗透测试中就显得尤为重要;

二,域名信息收集

1,什么是域名

       首先来看IP地址,IP地址是一组用于在网络上标识和定位设备的数字标识符。它可以用来识别设备的位置和连接到网络的方式。IP地址通常由四个十进制数构成,每个数的取值范围是0到255,192.168.1.1, IP地址可以是公共的,用于在互联网上进行通信,也可以是私有的,用于在局域网内进行通信。

       而域名是用于在互联网上标识和定位特定网站或服务的文字标识符。域名通常由多个部分组成,以点号分隔,比如www.example.***。域名的最后一部分被称为顶级域名如.***、.org、.***等。域名的作用是将人类可读的名称映射到计算机网络中的IP地址,从而方便用户访问互联网上的各种资源。例如,当用户在浏览器中输入一个域名时,浏览器会通过域名系统(DNS)将域名解析为相应的IP地址,然后连接到该IP地址对应的服务器上获取网页内容。

2,域名的分类

域名可以根据其结构和用途进行分类,以下是一些常见的域名分类:

  1. 顶级域名(TLD):顶级域名是域名中最高级别的部分,通常表示国家、地区或特定类型的组织。例如,.***、.org、.*** 是常见的通用顶级域名,而像.***(中国)、.uk(英国)、.jp(日本)是表示国家或地区的顶级域名。

  2. 二级域名:二级域名是位于顶级域名下面的部分,通常用于特定的组织、公司或个人。例如,在example.***中,“example”就是二级域名。

  3. 子域名:子域名是位于二级域名之下的部分,可以用于对网站内容进行更细分或组织。例如,在www.example.***中,“www”就是子域名。

  4. 国际化域名(IDN):国际化域名使用非ASCII字符集,允许域名使用非拉丁字母的字符,以便支持不同语言和文化背景的用户。

  5. 基于目的的域名:有些域名是专门用于特定目的的,例如.edu用于教育机构,.gov用于政府机构,.mil用于军事机构等。

3,与域名相关联的信息

会涉及到域名的所属人的姓名,邮箱,电话......

https://wanwang.aliyun.***/   //阿里云域名查询
https://whois.chinaz.***/     //站长之家域名查询
https://whoissoft.***/
https://webwhois.***nic.***/    //国家域名管理机构

在 kali-Linux 中,直接使用  whois +域名 命令即可查询相关信息

可以使用ICP备案查询

       ICP备案(Inter*** Content Provider Recordal)是中国互联网管理部门要求在中国境内提供互联网信息服务的网站必须进行备案登记。备案登记是指网站所有者向中国国家互联网信息办公室提交备案申请,经审核通过后,获得备案号并在网站上进行公示的过程。

       如果你想查询一个网站是否已经完成了ICP备案登记,你可以访问中国国家互联网信息办公室的备案管理系统网站,需要注意的是,根据中国的相关法规,未经备案登记的网站是不允许在中国境内提供互联网信息服务的。因此,如果你在中国境内运营网站,需要确保你的网站已经完成了ICP备案登记。

http://www.beian.miit.gov.***/

4,子域名的查询

       子域名是位于主域名之下的域名部分,通常用于对网站内容进行更细分或组织。子域名的格式通常为"subdomain.domain.***",其中"subdomain"是子域名,"domain.***"是主域名。

查询子域名:

1,枚举(按照顺序,进行尝试)

2,字典猜解

可以使用 Layer 暴力猜解子域名

       子域名的利用:可以将子域名当作是域名,对子域名进行查询,或者相对来说,子域名对应的网站安全性相对来说要弱一点,可以对子域名先下手;

5,DNS查询

        DNS(Domain Name System)是互联网中用于将域名转换为对应 IP 地址的分布式数据库系统。它充当了互联网的“电话簿”,将易记的域名映射到实际的 IP 地址,这样用户就可以通过输入域名来访问网站,而不需要记住复杂的 IP 地址。

DNS的主要功能包括以下几点:

  1.  域名解析:将用户输入的域名转换为对应的 IP 地址,以便在互联网上定位和访问特定的服务器或设备。
  2.  域名管理:DNS还允许域名所有者管理其域名的DNS记录,包括A记录(用于将域名映射到IPv4地址)、AAAA记录(用于将域名映射到IPv6地址)、***AME记录(用于将域名映射到另一个域名)、MX记录(用于指定邮件服务器地址)等。
  3. 分布式数据库:DNS系统采用分布式数据库的方式进行管理,这意味着不同的DNS服务器会相互复制和同步域名和IP地址的映射关系,以提高系统的可靠性和稳定性。

DNS系统由多个层次的域名服务器组成,包括根域名服务器、顶级域名服务器、权威域名服务器和本地域名服务器等。当用户输入一个域名时,本地域名服务器会首先查询它的缓存,如果找不到对应的IP地址,就会向更高级别的域名服务器发出查询请求,直到找到对应的IP地址为止。

总之,DNS是互联网中至关重要的基础设施,它为用户提供了方便的域名访问方式,并且为互联网的正常运行提供了重要的支持。

从浏览器输入域名到页面发生变化这一过程中,到底发生了什么

其中较为重要的一步就是 DNS 查询,将对应的域名解析为 IP 地址;

在注册域名的时候,必须要设置的一项是DNS 服务器;

下面给出常见域名的记录类型信息:

可以使用一些在线网站进行查询

http://www.jsons.***/nslookup/   //在线域名解析记录
https://sitereport.***craft.***/

例如使用 jsons 在线工具 查询 baidu.***,可以得到以下结果:

三,IP信息收集

1,DNS服务器

DNS服务器(Domain Name System)是一种用于将域名转换为对应的IP地址的服务器。而DNS服务器的类型主要有以下四类:

  1. 递归DNS服务器:递归DNS服务器负责处理DNS查询请求,它会向其他DNS服务器发出请求,直到找到所需的IP地址或者域名解析。递归DNS服务器通常由互联网服务提供商或者企业网络内部设置。

  2. 授权DNS服务器:授权DNS服务器存储特定域名的IP地址信息,它们负责管理特定域名下的所有主机记录。当递归DNS服务器无法直接解析域名时,它会向授权DNS服务器发送请求。

  3. 反向DNS服务器:反向DNS服务器用于将IP地址转换为对应的域名。它通常用于验证邮件服务器的IP地址是否与其域名匹配,以及用于安全审计和网络故障排除。

  4. 缓存DNS服务器:缓存DNS服务器会暂时存储最近查询过的域名解析结果,以便在后续查询中能够快速响应,减轻网络流量和提高解析速度。

2,ping 命令(在Windows和Linux系统中通用)

Ping命令是一种网络工具,通常用于测试主机之间的连接性和测量网络延迟。

例如 ping baidu.***

可以看出 baidu.*** (110.242.68.66),查到了baidu.*** 的一个IP;

3,nslookup 命令

通过nslookup 也可以查到 baidu.*** 的一个 IP;

或者可以使用在线网站查询:

https://ipwhois.***nic.***.***/
https://ip138.***/

输入刚才ping到的baidu.***的IP;

4,CDN服务

CDN(Content Delivery ***work)是一种用于加速内容传输和提高网站性能的服务。CDN服务提供商会在全球各地部署大量的服务器节点,这些节点存储着网站的静态内容,例如图片、视频、脚本文件等。当用户访问网站时,CDN会将这些静态内容缓存到离用户最近的服务器节点上,从而加快内容的传输速度和减少网络延迟。

CDN服务的工作原理是通过将内容分发到多个地理位置的服务器节点上,减少了用户和网站服务器之间的距离,从而提高了内容的加载速度。此外,CDN还可以通过负载均衡和智能路由等技术,帮助网站抵御大流量和分布式拒绝服务(DDoS)攻击,提高了网站的稳定性和安全性。

许多大型网站和应用程序都使用CDN服务来加速内容传输,提高用户体验,并减轻原始服务器的负载压力。常见的CDN服务提供商包括Akamai、Cloudflare、Amazon CloudFront等。

那么怎样才能绕过CDN找到真实的IP地址呢?

(1),使用国外主机解析域名

https://asm.ca.***/zh_***/ping.php
http://host-tracker.***/
http://www.webpagetest.org/
https://dnscheck.pingdom.***/

国内的大部分网站只针对国内设计了CDN ,除了一些超大型公司在全球部署,而国内的中小型公司只在国内部署,所以可以尝试使用国外的DNS查询,有可能会获取到真实的IP地址

(2),查找子域名

可以使用 Layer 暴力猜解子域名,有些可能只会将CDN 部署在一些主要的网站上面,而子域名有可能对应的是真实的IP地址

(3),全网查询

https://whois.chinaz.***/     //站长之家域名查询

(4),DNS历史解析记录

由于若干年之前,访问量过小,并没有使用CDN,所以在若干年之前解析到的IP地址可能就是真实的IP 地址;相关的查询网站有:

https://viewdns.info/iphistory/
https://dnsdb.io/zh-***/
https://x.threatbook.***/
https://site.ip138.***/
https://securitytrails.***/
https://sitereport.***craft.***/?url=github.***

(5),使用SSL证书寻找真实IP

SSL(Secure Sockets Layer)证书是一种用于加密网络通信的数字证书,它通过在客户端和服务器之间建立加密连接来确保数据的安全传输。SSL证书通常用于保护网站、应用程序和其他网络服务的安全,以防止敏感信息在传输过程中被窃取或篡改。

而SSL/TLS证书通常会包括域名,子域名,电子邮件,IP地址等;

四,端口信息收集

1,什么是端口

       端口是计算机网络中用于标识特定服务或应用程序的逻辑通信终点。在TCP/IP协议中,每个端口都与一个特定的服务或协议关联,以便在网络上区分不同的应用程序和服务。

2,扫描端口

首先在Windows系统上

***stat -ano|findstr 3306
//可以使用此命令来查询3306端口是否开放

在Linux操作系统上

***stat -an|grep 3306
//在Linux查询3306端口是否开放

或者可以使用如下的 python 脚本进行批量扫描

import socket, threading

def TCP_connect(ip, port_number, delay, output):
    TCPsock = socket.socket(socket.AF_I***, socket.SOCK_STREAM)
    TCPsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    TCPsock.settimeout(delay)
    try:
        TCPsock.connect((ip, port_number))
        output[port_number] = 'Listening'
    except:
        output[port_number] = ''

def scan_ports(host_ip, delay):

    threads = []        
    output = {}         

    for i in range(10000):
        t = threading.Thread(target=TCP_connect, args=(host_ip, i, delay, output))
        threads.append(t)

    # Starting threads
    for i in range(10000):
        threads[i].start()

    # Locking the script until all threads ***plete
    for i in range(10000):
        threads[i].join()

    # Printing listening ports from small to large
    for i in range(10000):
        if output[i] == 'Listening':
            print(str(i) + ': ' + output[i])

def main():
    host_ip = input("Please enter host IP: ")
    delay = int(input("How many seconds the socket is going to wait until timeout: "))   
    scan_ports(host_ip, delay)
    input("Press Any Key to Exit")

if __name__ == "__main__":
    main()

或者使用软件  Nmap 进行扫描

Nmap是一个用于网络探测和安全审计的开源工具。它可以帮助用户发现网络上的主机和服务,以及它们所提供的服务和操作系统信息。Nmap可以用于网络发现、漏洞扫描、网络审计和安全评估等用途。

或者可以使用 kali-Linux 内置的nmap进行扫描;可以直接扫描域名或者IP地址;

其中nmap命令具有以下选项:

-O:激活操作探测;
-P0:值进行扫描,不ping主机;
-PT:是同TCP的ping;
-sV:探测服务版本信息;
-sP:ping扫描,仅发现目标主机是否存活;
-ps:发送同步(SYN)报文;
-PU:发送udp ping;
-PE:强制执行直接的ICMPping;
-PB:默认模式,可以使用ICMPping和TCPping;
-6:使用IPv6地址;
-v:得到更多选项信息;
-d:增加调试信息地输出;
-oN:以人们可阅读的格式输出;
-oX:以xml格式向指定文件输出信息;
-oM:以机器可阅读的格式输出;
-A:使用所有高级扫描选项;
--resume:继续上次执行完的扫描;
-P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
-e:在多网络接口Linux系统中,指定扫描使用的网络接口;
-g:将指定的端口作为源端口进行扫描;
--ttl:指定发送的扫描报文的生存期;
--packet-trace:显示扫描过程中收发报文统计;
--scanflags:设置在扫描报文中的TCP标志。
--send-eth/--send-ip 使用原始以太网发送/构造指定IP发送

3,常见端口号

一般将端口分为以下3类:
(1)公认端口(Well-Known Ports):范围从0到1023
(2)注册端口(Registered Ports):从1024到49151
(3)动态/私有端口(Dynamic/Private Ports):从49152到65535。
下面给出常见的端口号
1.   端口20     FTP数据端口
2.   端口21     FTP控制端口
3.   端口22     SSH端口
4.   端口23     Tel***端口
5.   端口25     SMTP端口
6.   端口53     DNS端口
7.   端口67     DHCP服务端
8.   端口68     DHCP客户端
9.   端口69     TFTP端口
10.  端口79     Finger服务端口
11.  端口80     HTTP端口
12.  端口88     EIGRP协议端口
13.  端口89     ospf协议端口
14.  端口99     Metagram Relay服务端口
15.  端口102    消息传输代理端口
16.  端口109    POP2端口
17.  端口110    POP3端口
18.  端口111    SUN公司的RPC服务端口
19.  端口113    Windows验证服务端口
20.  端口119    NNTP端口
21.  端口123    NTP时间协议端口
22.  端口135    RPC服务端口
23.  端口137    ***BIOS服务端口
24.  端口138    ***BIOS服务端口
25.  端口139    ***BIOS Session Service端口
26.  端口143    IMAP端口
27.  端口161    SNMP端口
28.  端口162    SNMP Trap端口
29.  端口179    BGP端口
30.  端口389    LDAP端口
31.  端口443    HTTPS端口
32.  端口445    SMB服务端口
33.  端口465    SMTPS非官方标准端口
34.  端口512    rexec端口
35.  端口513    rlogin端口
36.  端口514    Syslog端口
37.  端口515    用于 LPD 的 515 TCP 端口
38.  端口520    RIP路由协议端口
39.  端口554    RTSP端口
40.  端口587    SMTPS官方标准端口
41.  端口636    LDAPS端口
42.  端口873    rsync服务端口
43.  端口993    IMAP加密端口
44.  端口995    POP3加密端口
45.  端口1080   Socks代理服务端口
46.  端口1433   SQL Server端口
47.  端口1521   Oracle端口
48.  端口1701   L2TP端口
49.  端口1723   PPTP端口
50.  端口1812   RADIUS认证端口
51.  端口1813   RADIUS计费端口
52.  端口2049   NFS端口
53.  端口2181   zookeeper服务端口
54.  端口2375   Docker默认端口
55.  端口3306   Mysql端口
56.  端口3389   RDP端口
57.  端口5000   sybase/DB2数据库
58.  端口5432   PostgreSQL端口
59.  端口5631   PCAnywhere数据端口
60.  端口5632   PCAnywhere状态端口
61.  端口5900   VNC端口
62.  端口6379   redis端口
63.  端口6380   redis内部端口
64.  端口7001   weblogic端口
65.  端口8069   Zabbix服务端口
66.  端口8080   Tomcat端口
67.  端口8848   nacos端口
68.  端口9092   kafka默认监听端口
69.  端口9200   ElasticSearch 外部通讯端口
70.  端口9300   ElasticSearch 集群通讯端口
71.  端口10050  Zabbix Agent主动发送数据
72.  端口10051  Zabbix Server定期向Agent请求数据
73.  端口11211  memcached端口
74.  端口27017  mongodb端口

五,目录扫描

1,什么是目录扫描

部署网站所产生的敏感文件(如配置文件,数据库的账号及密码,目录等)不可以被访问者所访问;

而目录扫描是指通过计算机程序或工具自动扫描文件系统中的目录,以查找特定类型的文件或特定内容。目录扫描通常用于安全审计、文件管理、数据备份和恢复等操作。扫描的内容可以包括文件名、文件大小、文件类型、文件权限等信息,也可以根据特定的搜索条件来进行扫描。目录扫描可以帮助用户快速找到所需的文件,也可以帮助系统管理员或安全人员发现潜在的安全风险或问题。

目录扫描一般会泄露以下信息:

  1. 文件名:扫描可以显示目录中的所有文件和文件夹的名称,包括隐藏文件和系统文件。
  2. 文件类型:扫描可以确定文件的类型,例如文本文件、图像文件、可执行文件等。
  3. 文件大小:扫描可以显示文件的大小,这可能暴露一些敏感的信息,比如大型数据库备份文件或大型日志文件。
  4. 目录结构:扫描可以显示目录的结构和层次,这可能会透露组织的文件组织和架构。
  5. 文件权限:扫描可以显示文件的权限设置,包括对文件的读取、写入和执行权限。
  6. 潜在的安全漏洞:扫描可以揭示系统中可能存在的潜在漏洞或安全风险,如未经授权的文件或目录访问权限。

2,目录被泄露的原因

(1),配置不当

当未设置首页文件时,会获取该文件夹内所有目录,所以在配置过程中,需要配置网站首页;

(2),本地文件包含

使用函数 include(" ") 进行本地文件的包含时;若该文件为恶意文件,则会被执行;

或者 include(" ") 包含过程中,若没有对文件的路径进行限制,则可以根据文件的相对路径,返回

到上一级或者多级目录,进行目录扫描;

include("../../..")

​payload:http://localhost/dvwa/vulnerabilities/fi/?page=../../phpinfo.php

这样就会产生严重的后果;

例如,在我 D: 下有这样一个文件 ceshi.txt

然后通过相对路径,返回D: ;

http://localhost/dvwa/vulnerabilities/fi/?page=../../../../../../../ceshi.txt

可以将 ceshi.txt 中的文件输出到网页中

按照这样的思路,所有的文件都暴露在外!!!

3,常见的敏感文件及目录

(1),robots.txt

robots.txt 文件是一个文本文件,用于指示网络爬虫哪些页面可以被抓取或不可以被抓取。网站管理员可以通过robots.txt文件来控制搜索引擎爬虫的访问权限,以保护网站的隐私和安全。robots.txt 文件通常放置在网站的根目录下,并包含一些指令,如允许或禁止特定的爬虫访问某些页面或目录。搜索引擎爬虫在访问网站时会首先查看robots.txt文件,然后根据其中的指令来确定哪些页面可以被抓取。

通常我们可以尝试访问不可以被网络爬虫抓取的页面,从而得到有用的信息;

(2),sitemap.xml

sitemap.xml 文件是一个XML格式的文件,用于列出网站上所有可供搜索引擎抓取的页面。它提供了网站的结构化信息,包括页面的URL、最后更新时间、页面的重要性等。搜索引擎可以使用sitemap.xml 文件来更有效地抓取和索引网站上的页面,从而提高网站在搜索引擎结果中的排名。sitemap.xml 文件对于大型网站或者含有深层链接的网站尤为重要,因为它可以帮助搜索引擎更全面地了解网站的结构和内容。

(3),hta***ess

hat***ess这个文件通常用于配置网站的安全设置和重定向规则,包括访问控制和其他重要的配置信息。

(4),wp-config.php

wp-config.php文件包含了WordPress网站的数据库连接信息、加密密钥等重要的配置信息,需要特别注意保护。

(5),env

env文件通常包含了敏感的环境变量和配置信息,比如数据库连接信息、API密钥等。

(6), /admin、/administrator、/login等目录

这些目录通常是网站后台管理的入口,需要特别保护以防止未经授权的访问。

(7),/backup、/logs、/temp等目录

这些目录通常包含了敏感的备份文件、日志文件或临时文件,需要限制访问权限以防止泄露敏感信息

(8),网站的源码(可以进行代码审计等操作)和程序的安装路径

/install 等目录下;

(9),php探针

PHP探针通常是一个简单的PHP脚本,用于对服务器环境进行诊断和测试。它可以提供服务器的关键信息,如PHP版本、MySQL版本、服务器操作系统、安装的扩展和模块等。PHP探针还可以用于测试服务器的性能和配置,以便管理员可以及时发现和解决潜在的问题。

PHP探针通常是一个单独的PHP文件,可以通过浏览器访问。它可以帮助网站管理员快速了解服务器的配置和性能,并且可以用于排查一些常见的服务器问题。然而,需要注意的是,由于PHP探针可以提供服务器的敏感信息,因此在生产环境中使用时需要谨慎,确保其不会被未经授权的人员访问到。

通常在 phpinfo.php文件下;

(10),网站的文本编辑器

富文本编辑器是一种用于在网页上创建和编辑富文本内容的工具,它通常提供了类似于Word处理软件的功能,如字体样式、颜色、列表、链接等。在Web开发中,常见的富文本编辑器包括:

1. TinyMCE:TinyMCE 是一个功能强大且高度可定制的富文本编辑器,它支持多种浏览器和平台,并提供了丰富的插件和主题。

2. CKEditor:CKEditor 是一个流行的富文本编辑器,它具有丰富的功能和可扩展性,适用于各种Web应用程序。

3. Froala Editor:Froala Editor 是一个现代化的富文本编辑器,具有直观的用户界面和丰富的功能,适用于Web开发。

4. Quill:Quill 是一个现代化的富文本编辑器,它具有清晰的界面和易于使用的API,适合用于构建富文本编辑功能。

这些富文本编辑器提供了丰富的功能和可定制性,可以帮助开发人员在网站中实现富文本内容的编辑和展示。选择富文本编辑器时,可以根据项目需求、性能要求和用户体验来进行选择。

但是,对于市面上的某些富文本编辑器存在一定的漏洞;

富文本编辑器可能存在一些安全漏洞,这些漏洞可能会导致恶意用户利用编辑器进行跨站脚本攻击(XSS)或其他安全问题。一些常见的富文本编辑器漏洞包括:

1. 跨站脚本攻击(XSS):富文本编辑器中的用户输入内容未经过充分的过滤和转义,导致恶意用户可以插入恶意脚本代码,从而在其他用户的浏览器中执行恶意代码。

2. 文件上传漏洞:一些富文本编辑器允许用户上传文件,如果未经过充分的验证和过滤,可能会导致恶意用户上传恶意文件或脚本,从而导致安全问题。

3. CSRF(跨站请求伪造):富文本编辑器中的操作未经过适当的CSRF保护,可能导致攻击者利用受害者的身份执行恶意操作。

4. 恶意插件和扩展:一些富文本编辑器允许用户安装第三方插件和扩展,如果这些插件未经过严格的审核和验证,可能会存在安全风险。

为了减少这些漏洞的风险,开发人员应该注意以下几点:

  1. 对用户输入进行严格的过滤和转义,以防止XSS攻击。
  2. 限制文件上传的类型和大小,并对上传的文件进行严格的验证和处理。
  3. 实施CSRF保护机制,确保编辑器中的操作是经过授权的。
  4. 仔细审核和验证第三方插件和扩展,确保其安全性。

定期更新富文本编辑器的版本,以获取最新的安全修复和漏洞修复也是非常重要的。

(11),对于Linux操作系统

若获取相应的权限之后搜索 /etc/passwd 和 /etc/shadow (用于存放被加密过的密码)的目录

4,文件扫描(主要依赖于字典的强大程度)

文件扫描是指对计算机系统中的文件进行搜索、分析和检测的过程,用于查找特定的文件、检测恶意软件、进行安全审计等。以下是一些常见的文件扫描思路:

  1. 关键字扫描:根据用户提供的关键字或字符串,在文件系统中进行全文搜索,以查找包含这些关键字的文件。这种扫描思路通常用于搜索特定的文本内容或代码片段。
  2. 文件类型扫描:通过检查文件的文件头部分或文件扩展名,来确定文件的类型。这种扫描思路可用于查找特定类型的文件,如图像、文档、可执行文件等。
  3. 病毒扫描:使用病毒扫描引擎对文件进行扫描,以检测文件中是否包含已知的病毒、恶意软件或其他安全威胁。这种扫描思路通常用于确保文件系统的安全性。
  4. 文件属性扫描:检查文件的属性信息,如创建时间、修改时间、文件大小等,以便进行文件系统的审计和监控。
  5. 文件完整性扫描:通过计算文件的哈希值或数字签名,来验证文件的完整性,以确保文件在传输或存储过程中未被篡改。
  6. 遍历扫描:对整个文件系统进行递归遍历,以便对所有文件进行扫描和检测。这种扫描思路通常用于全面的安全审计和检测工作。

以上是一些常见的文件扫描思路,不同的扫描需求和场景可能需要选择不同的扫描方法和工具。在实际应用中,通常会结合多种扫描思路和技术,以实现全面的文件扫描和安全检测。

在kali-Linux 中,内置的 dirb 有目录扫描的功能

或者有kali 内置的diebuster 进行目录扫描

5,进行防御

  1. 设置 WAF/IDS;
  2. 对访问的频率进行限制;
  3. 删除敏感文件,不要放在网站的根目录下;
  4. 过滤关键字(例如可能是字典的文件名);

六,CMS指纹识别

1,什么是CMS指纹识别

        CMS指纹识别是指通过分析网站的特定特征来确定其所使用的内容管理系统(CMS)。内容管理系统是用于创建和管理数字内容的软件应用程序,如WordPress、Joomla、Drupal等。通过识别网站所使用的CMS,安全专家和黑客可以更好地了解网站的结构和潜在的漏洞,从而进行进一步的安全评估和攻击。

        CMS指纹识别通常通过分析网站的页面源代码、HTTP响应头、URL结构、特定文件和目录结构等方式来识别。一些专门的工具和服务,如Wappalyzer、BuiltWith、WhatCMS等,可以帮助用户自动识别网站所使用的CMS。这种信息对于网络管理员、安全研究人员和黑客来说都是有用的,因为它可以帮助他们更好地了解目标网站的技术架构和潜在的安全风险。

2,目前主流的CMS

主流的CMS包括但不限于以下几种:

  1. WordPress:WordPress是一种用于建立网站和博客的免费开源内容管理系统,拥有丰富的插件和主题,易于使用和定制。
  2. Joomla:Joomla是另一种流行的开源内容管理系统,它提供了许多扩展和模板,适用于创建各种类型的网站。
  3. Drupal:Drupal是一个功能强大的开源内容管理平台,适用于企业级网站和应用程序的开发。
  4. Magento:Magento是专门用于电子商务网站的开源内容管理系统,提供了丰富的电子商务功能和定制选项。
  5. Shopify:Shopify是一个基于订阅的软件即服务电子商务平台,适用于创建在线商店和电子商务网站。
  6. Squarespace:Squarespace是一个集成式网站构建工具,提供了易于使用的界面和美观的设计模板。

这些CMS都有其独特的特点和适用场景,用户可以根据自己的需求和技术水平选择最适合的CMS来构建网站。(大部分使用PHP编写,且使用MYSQL 的数据库)

3,CMS指纹识别

CMS指纹识别的目的就是根据该网站的特征判断该网站所用的CMS

(1),可以使用kali-Linux 内置的命令进行扫描

whatweb + 域名

可以扫描到该网站使用的 CMS 是WordPress

(2),可以使用浏览器的插件进行扫描

例如使用Edge浏览器的 whatruns

可以直接在进入网站的时候进行扫描

扫描的到该网站的CMS 是WordPress

七,CDN指纹识别

CDN指纹识别就是判断CDN的提供商

(1),在线网站

https://tool.chinaz.***/

(2),kali-Linux的内置工具

lbd + 域名

八,WAF指纹识别

1,什么是WAF

       WAF 是 Web 应用程序防火墙(Web Application Firewall)的缩写。它是一种安全技术,用于保护 Web 应用程序免受恶意攻击,如 SQL 注入、跨站脚本攻击和其他常见的 Web 攻击。WAF 通过监视、过滤和阻止对 Web 应用程序的未经授权访问或恶意流量,帮助提高 Web 应用程序的安性。

2,WAF的作用及知名厂商

  1. 防御Web应用程序攻击:WAF能够检测和阻止常见的Web应用攻击,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。

  2. 保护数据安全:WAF可以帮助防止敏感数据泄露,通过监控和过滤传输到和从Web应用程序的数据流量。

  3. 防止恶意流量:WAF可以过滤掉恶意的网络流量,包括恶意爬虫、恶意脚本和其他恶意行为。

  4. 减少安全漏洞:WAF可以帮助识别和修复Web应用程序中的安全漏洞,从而提高整体安全性。

3,WAF指纹识别

WAF指纹识别是一种技术,用于识别Web应用程序防火墙(WAF)的类型和特征。通过分析网络流量和应用程序的响应,安全专家可以识别WAF产品所使用的规则、策略和行为模式。这种识别可以帮助攻击者了解目标系统的防护措施,以便他们能够调整攻击策略,绕过WAF的防护,从而对目标系统进行攻击。

对于安全专家和WAF厂商来说,WAF指纹识别也是一种有用的技术,可以帮助他们了解攻击者可能使用的绕过策略,并及时更新WAF规则和策略,以提高对新型攻击的防护能力。

使用kali-Linux 内置的工具

wafw00f + 域名

可以查询出该网站所使用的 waf 是 Jiasule;

九,总结

信息收集在渗透测试中非常重要,因为它可以帮助渗透测试人员了解目标系统的结构、技术架构、漏洞和安全风险。通过信息收集,渗透测试人员可以收集到关于目标系统的各种信息,包括网络拓扑、开放端口、服务版本、操作系统类型、应用程序和数据库等信息。这些信息可以帮助渗透测试人员确定攻击面,找到潜在的漏洞和安全风险,并为后续的攻击和渗透测试活动做好准备

另外,信息收集也可以帮助渗透测试人员了解目标系统的业务流程、人员组织结构和安全策略,从而更好地模拟真实的攻击场景,评估目标系统的安全性,为客户提供更准确的安全建议和改进建议。

总之,信息收集是渗透测试中的第一步,也是非常重要的一步,它为后续的渗透测试活动提供了基础和方向,帮助渗透测试人员更好地发现和利用目标系统的漏洞和安全风险。

转载请说明出处内容投诉
CSS教程_站长资源网 » 信息收集(Web 安全)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买