基础概念与信息收集
基础概念与信息收集
ccb基础概念与信息收集
1. 基础概念
域名
域名
互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
网域名称系统
网域名称系统(Domain Name System)有时也简称为域名(DNS),是互联网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库。
二级域名或多级域名
顶级域名
又叫一级域名,一串字符串中间一个点隔开,例如baidu.com。顶级域名是互联网DNS等级之中的最高级的域,它保存于DNS根域的名字空间中。
二级域名
实际上就是一个一级域名以下的主机名,一串字符串中间两个点隔开,例如www.baidu.com。二级域名就是最靠近顶级域名左侧的字段。
三级域名
二级域名的子域名,特征是包含三个点,例如mp.weixin.qq.com。
渗透时域名扫描
进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,然后可以由此横向到主网站。
比如layer子域名探测。
同源规则
如果域名或 IP 地址、端口与协议都相同,那么就会被判定为同源。
DNS
本地Hosts与DNS的关系
Hosts文件主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。
Hosts文件是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
CDN是什么?与DNS的关系?
CDN的全称是Content DeliveryNetwork,即内容分发网络。
基本思路
是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上(单纯只使用DNS解析,直接PING就会显示出自己的真实IP,如果又使用CDN,PING出来的IP就不是用户的真实IP而是CDN服务器的IP节点。需要绕过CDN后去找真实IP地址。)
使用CDN的目的
使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
常见的DNS安全攻击
DDoS攻击
分布式拒绝服务攻击,可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用。攻击者可以伪造自己的DNS服务器地址,同时发送大量请求给其他服务器(频繁的DNS解析请求)。其他服务器的回复会被发送到被伪造服务器的真实地址(真实IP对应的受害者收到大量回复),造成该服务器无法处理请求而崩溃。攻击者同样可以通过利用DNS协议中存在的漏洞,恶意创造一个载荷过大的请求,造成目标DNS服务器崩溃。
DNS缓存中毒(DNS欺骗)
向DNS服务器注入非法网络域名地址替换合法地址(修改合法URL在DNS服务器上的缓存为非法地址),将流量从合法服务器引导至虚假服务器上的攻击方式,而且以后响应的域名请求将会受黑客所控。当这些非法地址进入DNS服务器缓存,用户的浏览器或者邮件服务器访问合法URL时就会自动跳转到DNS指定的非法地址。这种攻击往往被归类为域欺骗攻击(pharming attack),由此它会导致出现很多严重问题。首先,用户往往会以为登陆的是自己熟悉的网站,而它们却并不是。与钓鱼攻击采用非法URL不同的是,这种攻击使用的是合法的URL地址。
域名劫持(DNS重定向)
通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。域名劫持一方面可能影响用户的上网体验,用户被引到假冒的网站进而无法正常浏览网页,而用户量较大的网站域名被劫持后恶劣影响会不断扩大;另一方面用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
DNS查询嗅探
利用对DNS的配置信息获取网络环境的信息,为之后的攻击做准备。
为此,需要对DNS服务器需要采取特别的安全保护措施,在防火墙网络中,分开设置内部DNS服务器和外部DNS服务器,连接外部服务的外部DNS服务器上不留有对外禁止访问的内部网络系统的服务器,做到内外网络服务器分割。
ARP欺骗
ARP协议
在一个局域网内,广播ARP请求包,通过交换机,到达目标IP地址的PC机,从而获取对方的MAC地址。获取到之后会将IP和MAC地址的对应关系存入ARP缓存表,减少大量广播,降低网络拥塞。
在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP病毒,则感染该ARP病毒的系统将会试图通过”ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
比如在攻击机上执行如下命令,就是在告诉主机192.168.42.236,网关192.168.42.2的MAC地址是我,这样网络中就会充斥着这个ARP响应包,使得主机192.168.42.236的网络请求发送到攻击机,无法上网。
1
arpspoof -i eth0 -t 192.168.42.236 192.168.42.2
本机劫持
本机的计算机系统被木马或流氓软件感染后,也可能会出现部分域名的访问异常。
后门
概念
指绕过安全控制而获取对程序或系统访问权的方法。最主要的目的就是方便以后再次秘密进入或者控制系统。
分类
网页后门
一般都是通过服务器上正常的web服务来构造自己的连接方式,便于控制网站,比如现在非常流行的ASP、cgi脚本后门等。
线程插入后门
利用系统自身的某个服务或者线程,将后门程序插入到其中(最流行)。
扩展后门
所谓的“扩展”,是指在功能上有大的提升,比普通的单一功能的后门有更强的使用性,这种后门本身就相当于一个小的安全工具包,能实现非常多的常驻见安全功能,适合新手使用。
C/S后门(客户端服务器后门)
和传统的木马程序类似的控制方法,采用“客户端/服务端”的控制方式,通过某种特定的访问方式来启动后门进而控制服务器。可以进行脱库、盗取信息。
特点
即使管理员通过改变所有密码之类的方法来提高安全性,仍然能再次侵入,使再次侵入被发现的可能性减至最低。大多数后门设法躲过日志,大多数情况下即使入侵者正在使用系统也无法显示他已在线。
web
WEB的组成框架模型
网站原码、操作系统、中间件(搭建平台,提供服务的)、数据库。
各个层面对应的安全测试
通信层
主要测试通信协议的安全,系统开放的端口,其中操作系统提供网络层和数据链路层协议,存在问题的可能性较小,一般关注开源协议已存在漏洞即可,无需重点关注。应用层服务与协议一般由产品形态决定,产品中可以自定义配置相关协议与参数,需要重点关注与测试。
应用层
应用层包含开发人员开发代码,为整个安全测试的核心模块。主要包括web安全测试,源码安全测试。其中web安全测试从web访问服务的维度,偏向黑盒,进行安全测试。源码安全测试从代码的维度,偏向白盒,进行安全测试。
系统层
主要测试操作系统安全,数据库服务安全,web服务器安全,以及其他一些中间件的安全。
管理层
主要包括产品资料的安全测试,安全策略制定,协调各个层面的安全测试以及安全风险的整体评估。
2. 数据包扩展
http/https数据包
概念
HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。
原理
HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML文件、图片文件、查询结果等。HTTP协议一般用于B/S架构,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
特点
http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。
无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
无状态:无状态是指协议对于事务处理没有记忆,服务器并不知道用户身份。如果后续处理需要前面的信息,则必须重传。(或者借助cookie
URI和URL的区别
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
URI:Uniform Resource Identifier 统一资源标识符。用来标示一个具体的资源,可以通过 URI 知道一个资源是什么。
URL:Uniform Resource Location 统一资源定位符。用来定位具体的资源的,标示了一个具体的资源位置,即通过URL知道一个资源在哪里。互联网上的每个文件都有一个唯一的URL。
HTTP报文组成
HTTP报文由三部分组成:状态行(请求行 | 响应行)、首部、主体。
HTTP报文以状态行开始,跟在后面的是HTTP首部,首部由多个首部字段构成,每行一个首部字段;HTTP首部后是一个空行,然后是报文主体。
状态行和首部中的每行都是以回车符(\r,%0d,CR)和换行符(\n,%0a,LF)结束,这是因为HTTP规范中行应该使用CRLF结束。另外,首部和主体之间由一空行隔开,或者可以理解为HTTP首部的最后一个字段有两个CRLF。
与状态行和首部不同的是,主体是可选的,也就是说报文中不一定要有主体;另外状态行和首部是ASCII文本,主体可包含文本或二进制数据。
HTTP报文分为请求报文和响应报文;请求报文向服务器传达请求,响应报文将请求的结果返回给客户端。以下两图,分别是请求报文以及响应报文的结构图。
请求报文包括一下内容:
- 请求头:一些键值对,浏览器与web服务器之间都可以发送,特殊的某种含义
HOST:主机或域名地址
Accept:指浏览器或其他客户可以接受的MIME文件格式,servlet可以根据它判断并返回适当的文件格式
User-Agent:是客户浏览器名称
Host:对应网址URL中的web名称和端口号
Accept-Language:指出浏览器可以接受的语言种类,如en或者en-us,指英语
connection:用来告诉服务器是否可以维持固定的HTTP连接、http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接
Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,他可以记载服务器相关的用户信息,也可以用来实现会话功能
Referer:表明产生请求的网页URL,这个属性可以用来跟踪web请求是从什么网站来的。
Content-Type :用来表明request的内容类型,可以用HttpServeletRequest的getContentType()方法取得。
Accept-Charset:指出浏览器可以接受的字符编码
Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件传递速度。浏览器在接收到web响应之后再解码,然后再检查文件格式 - 空行:请求头与请求体之间用一个空行分开
最后一个请求头标之后是空行,发送回车符和退行,通知服务器以下不再有头标 - 请求体:要发送的数据(一般post提交时候会用)
使用POST传送,最常使用的是Content-Type和Content-Length头标
常见请求方法
GET:请求指定的页面信息,并返回实体主体。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。post请求必须包含content-type和content-length请求头字段。
HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
PUT:从客户端向服务器传送的数据取代指定的文档的内容。
DELETE:请求服务器删除指定的页面。
get和post的区别
get请求:
post请求:
- 编码和请求方式不同:get通过URL显式的请求,只能是ASCII码。post不会显示在URL,请求的参数存放在请求实体body中(例如提交表单或者上传文件),在报文内部,且编码不唯一;post比get更加安全;
- 请求的数据量不同:get请求的数据有限,不超过2k-4k(视浏览器而定),而post没有上限;
- 缓存性:get会进行缓存,而post没有;
- 可刷新性:get请求可刷新,由于有本地缓存,不会重复请求,而post请求在刷新时会重新提交请求;
- get多用来查询,请求参数放在url中,不会对服务器上的内容产生作用;post请求可能会导致新的资源的建立和/或已有资源的修改。
HTTPS
HTTP很多信息是明文传输,因此不适合用来传输一些敏感信息,比如:各种账号、密码等信息,使用http协议传输隐私信息非常不安全。存在以下问题:
请求信息明文传输,容易被窃听截取。(机密性)
数据的完整性未校验,容易被篡改。(完整性)
没有验证对方身份,存在冒充危险。(不可抵赖性)
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份(SSL安全套接字层位于传输层和应用层之间),并为浏览器和服务器之间的通信进行加密。
HTTPS的缺点
HTTPS协议多次握手,导致页面的加载时间延长近50%;
HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
申请SSL证书需要钱,功能越强大的证书费用越高。
SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。
HTTP和HTTPS的区别
- 申请证书:https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
- 传输数据:http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
- 端口:http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- 安全性:http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
3. 网站搭建安全
搭建环境:ASP、PHP、ASPx、JSP、PY、JAVAWEB等环境。
WEB源码中敏感文件:后台路径,数据库配置文件,备份文件等
IP或域名解析存在的安全问题:在进行网站的目录扫描时,要注意域名访问的时候一般只会指向某个目录(网站所在目录),而IP访问的时候指向的是上一级根目录(包含更多文件,特别是网站源码的备份文件),域名和IP两者访问的路径是不同的。
常见安全测试中的安全防护:
(1)身份验证和访问控制,基于用户的限制(用户名密码、借助域控)
(2)限制IP地址的访问(黑名单或白名单)
(3)安全通信,使用客户端证书
后门是否给予执行权限
(1)设置相关权限,限制来宾用户的权限,导致连接了后门也看不到任何东西,它属于防护技巧,也是测试里经常碰到的问题;
(2)设置了执行权限,如果没有执行权限,文件不给执行,代码就无法正常执行,后门就无法正常使用
绕过思路
将后门试着放在其他可以执行的目录。比如,网站根目录或者其他有脚本存放的目录下面。
判断网站中间件:
响应包的server字段会显示中间件。
4. web源码安全
5. 系统及数据库安全
操作系统层面
识别操作系统
方法一:网站路径修改大小写
windows对大小写不敏感,也就是说你在网页中可以替换网站路径的大小写进行测试;
方法二:nmap扫描
没有网站可以用于测试时,可以使用nmap扫描主机,获得主机的一些信息。如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14──(root💀kali)-[~/桌面]
└─# nmap -O 10.1.1.10
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-07 21:06 CST
Nmap scan report for 10.1.1.10 (10.1.1.10)
Host is up (0.0011s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:0C:29:13:E9:61 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop备注:不是所有的系统都可以用这种方式扫描出操作系统的类型、在windows的一些高版本中nmap也无法探测其操作系统类型。
方法三:TTL值
不同的操作系统的默认TTL值(网络中数据包的生存周期,经过多少次路由后自动丢弃,经过一次路由就减一)是不同的, 所以我们可以通过TTL值来判断主机的操作系统,但是当用户在注册表中修改了TTL值的时候,就会误导我们的判断,所以这种判断方式也不一定准确。下面是默认操作系统的TTL:
1
2
3
4
5WINDOWS NT/2000 TTL:128
WINDOWS 95/98 TTL:32
UNIX TTL:255
LINUX TTL:64
WIN7 TTL:64比如,使用ping命令可以看到TTL为53,可以估计出TTL值原本为64,经过了11次路由。
1
2
3
4
5
6C:\Users\cbcao>ping baidu.com
正在 Ping baidu.com [110.242.68.66] 具有 32 字节的数据:
来自 110.242.68.66 的回复: 字节=32 时间=42ms TTL=53
来自 110.242.68.66 的回复: 字节=32 时间=42ms TTL=53
来自 110.242.68.66 的回复: 字节=32 时间=42ms TTL=53
来自 110.242.68.66 的回复: 字节=32 时间=42ms TTL=53方法四:特殊端口 如(22 / 139 / 445 / 1433 / 3389)
识别操作系统的意义
不同操作系统对应着不同的漏洞、不同的利用条件。
数据库层面
识别数据库的常见方法
方法一:根据搭配的语言进行识别
1
2
3
4
5
6默认的语言搭配的数据库
组合类型 asp + access/mssql
组合类型 php + mysql
组合类型 aspx+mssql
组合类型 jsp +mysql/oracle
组合类型 Python + MongoDB方法二:根据端口号进行识别
1
2
3
4
5
6
7
8
9
10常见的数据库默认端口号
关系型数据库
mysql 3306
sqlserver 1433
oracle 1521
psotgresql 5432
非关系型数据库
MongoDB 27017
Redis 6379
memcached 11211识别数据库的意义
数据库的不同表示的结构也是不同、写法结构也不一样、所以产生的漏洞也不一样。
不同的数据库的攻击方式也不完全一样。
数据库漏洞的影响
数据库权限、网站权限、修改网页内容
漏洞演示
https://vulhub.org/#/environments/mysql/CVE-2012-2122/
首先kali中进入metasploit:
msfconsole
然后搜索mysql漏洞:
search mysql
选择一个准备利用的漏洞,使用该模块:
然后按照rhost选项配置攻击机IP、线程数threads,接着执行run即可:
最后得到数据库密码的hash值:
1
2
3
4
5
6
7[+] 10.1.1.133:3306 - 10.1.1.133:3306 Saving HashString as Loot: root:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
[+] 10.1.1.133:3306 - 10.1.1.133:3306 Hash Table has been saved: /root/.msf4/loot/20210608111341_default_10.1.1.133_mysql.hashes_091970.txt
[*] 10.1.1.133:3306 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
md5在线解密
https://www.cmd5.com/
第三方层面
如何判断有哪些第三方平台或软件:nmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17nmap -O -sV 10.1.1.130
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-08 09:26 CST
Nmap scan report for 10.1.1.130 (10.1.1.130)
Host is up (0.00085s latency).
Not shown: 978 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp open exec?
513/tcp open login?
514/tcp open tcpwrapped识别第三方平台或软件的意义
不同的第三方软件或工具存在不同的漏洞、识别到更多的信息对收集到的漏洞也就越多。
渗透第三方平台或软件的目标
直接获取到软件的权限便于进一步的提权和攻击
漏洞演示
https://vulhub.org/#/environments/phpmyadmin/CVE-2018-12613/
首先进入该漏洞的目录,启动phpmyadmin:
1
2
3[root@hdss7-11 CVE-2018-12613]# pwd
/opt/vulhub/vulhub-master/phpmyadmin/CVE-2018-12613
[root@hdss7-11 CVE-2018-12613]# docker-compose up -d成功访问phpmyadmin之后,访问
http://10.1.1.133:8080/?target=db_sql.php%3f/../../../../../../../../etc/passwd
实现漏洞利用,得到执行etc/passwd的结果:
6. 加密编码算法
时间戳
在线转换工具:https://tool.lu/timestamp/
URL编码
base64编码
随着编码的文本增加而增加、由大小写和数字组成且字符结尾一般有两个等号。
unescape编码
和URL编码有点像,特点是一般是%U+四个数字对应着两个字符,主要运用于网站web应用。
AES加密
7. ==CDN绕过==
CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过程中,若目标存在CDN服务,将会影响到后续的安全测试过程。
判断是否存在CDN服务
利用多节点技术进行请求返回判断
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/验证获取到ip是否可信可以采用第三方的ip地址查询工具经行验证。
cdn网站
CDN对安全测试的影响
CDN会隐藏服务器真实的ip地址,无法对目标网站的操作系统进行渗透,但CDN站点又可以理解为是目标站点的镜像站点(大多数都是静态cdn加速),拥有相同的网站架构,且cdn服务器可与站点服务器进行交互,因此sql注入,xss等漏洞的挖掘并不受太大影响。
目前常见的CDN绕过技术
子域名查询
因为有些主站是做了CDN服务而子站是没有做CDN服务
邮件服务查询
因为邮箱大部分都是内部人在访问、而且访问的量也不是很大,一般是没有做CDN。
国外地址请求
因为很多的企业没有在国外部署CDN,要是用国外的地址请求、就容易找到他的真实地址。
遗留文件、扫描全网
如PHPinfo信息当中会遗留出ip地址
黑暗引擎搜索
fofa、傻蛋、谛听、zoomeye、censys
特定文件dns历史记录,以量打量
CDN真实IP地址获取后绑定指向地址,即更改本地HOSTS解析指向文件
奇淫技巧
fackcdn、w8fuckcdn、zmap
借助漏洞
若存在web漏洞,服务器主动与我们发起请求连接,我们也能获取目标站点真实ip。例如xss、ssrf、命令执行反弹shell等。
8. 信息收集、WAF
站点搭建分析
目录型站点
主站上面存在其他的cms程序。
端口类站点
有的站点不是使用的是默认的站点80而是其他的端口,可以使用shodan这种工具去收集端口。
子域名站点
比如bbs.goodlift.net是goodlift.net的子域名,且为不同的站点。
现在的主流网站都是采用的这种模式且子域名和网站之间很有可能是不在同一台的服务器上面。
类似域名站点
例如:京东的网站是jd.com 那么他就有可能是采用了jd.net jd.cn等域名我们采用社工的方式去尝试获取他的相关域名信息。
旁注,c段站点
旁注:同一个服务器上面存在多个站点、但是你要攻击的是A网站由于各种原因不能完成安全测试。就通过测试B网站进入服务器然后在攻击A网站最终实现目的。
C段:不同的服务器上面存在不同的网站,通过扫描发现与你渗透测试的是同一个网段,最终拿下服务器,然后通过内网渗透的方式拿下渗透服务器。
查询服务器上站点:在线工具:https://www.webscan.cc/
搭建软件特征站点
有的网站是借助于第三方的集成搭建工具实现,例如:PHPstudy、宝塔等环境。这样的集成环境搭建的危害就是泄露了详细的版本信息。
phpstudy搭建了之后,在默认的站点安装了phpmyadmin。有的网站没有做安全性直接可以通过用户名:root密码:root 登录进入。
WAF
Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
识别WAF的存在:直接使用工具进行扫描有可能会导致waf将你的ip地址拉入黑名单而不能访问,针对不同的厂商的waf可能存在着不同的绕过思路。
采用工具wafwoof,缺点是并不特别准确
获取地址:https://codeload.github.com/EnableSecurity/wafw00f/zip/refs/heads/master
1
2
3
4
5
6
7
8
9
10
11unzip wafw00f-master.zip # 解压
python3.8 setup.py install # 安装
ls -ld wafw00f
drwxr-xr-x 6 root root 4096 6月 10 17:22 wafw00f
cd wafw00f
python main.py https://www.hlszsb.com/ # 识别网站https://www.hlszsb.com/
[*] Checking https://www.hlszsb.com/
[+] Generic Detection results:
[-] No WAF detected by the generic detection
[~] Number of requests: 7identYwaf
参考地址:https://github.com/stamparm/identywaf
与wafwoof相比运行速度慢,但是比较稳定
在有些网站的请求信息当中留下了waf的相关信息
nmap
1
2nmap --script==http-waf-fingerprint
nmap --script=http-waf-detect
7. 资产收集
1 | # Github监控 |
8. web漏洞
漏洞危害情况
获取网站的数据库的权限(数据),后台账号和密码—SQL注入
直接获取网站权限—文件上传
漏洞等级划分
高危:文件上传、SQL注入、代码执行、文件包含、未授权访问
中危:逻辑安全、目录遍历
低危:信息泄露—源码、部分账号密码
漏洞重点内容
CTF:SQL注入、反序列化、代码执行
SRC:以上都有,逻辑安全
红蓝对抗:高危漏洞—权限