前言
这段时间开始入门Web,主要是为了在线下赛不那么坐牢
Web的知识还是挺多的,所以需要成体系的学习
每学完一个方面我会写一篇总结性文章,将知识点与例题放在一起,方便后面查阅
如果之后学的更加深入或者遇到什么有代表性的题目,也会添加到文章中
信息收集
渗透的本质是信息收集,信息收集也叫做资产收集。
信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口。
常见信息
搜集方面 | 作用 |
---|---|
whois | 得到域名注册人的信息:邮箱、电话号码、姓名 |
子域名 | 可以扩大攻击范围,子域名一定是有关联的,很多时候基本上都同属一个公司 |
端口探测 | 危险端口可以直接爆破入侵,一个Ip可能搭建了多个网站,分布在不同的端口 |
目录扫描 | 目录扫描有的时候可以访问到压缩包源码、编辑器目录、废弃页面、其他站点 |
指纹识别 | 识别CMS,寻找通杀漏洞 |
旁站查询 | 旁站其实就是同IP站点,一定和目标站点在同一个内网或者是同一台服务器 |
C段查询 | C段可能是同一个内网,同一个公司 |
内容敏感信息泄露 | 通过谷歌语法得到其他的东西 |
分类
域名信息
whois
概述
whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)
收集方法
- http://whois.chinaz.com/
- https://www.whois.com/
- VirusTotal - Home
备案
概述
网站备案也算是中国互联网的一大特色了
非经营性网站备案(Internet Content Provider Registration Record),简称ICP备案,指中华人民共和国境内信息服务互联网站所需进行的备案登记作业。
如果某网站申请了ICP备案,那么就能通过查询备案可以获取备案人的大量信息
收集方法
注意事项
一些个人网站底部贴的备案号很有可能是假的,或从其他站点复制过来的。所以查询备案信息时尽量通过域名来直接查询。
CDN
概述
內容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
正好在我的博客R1ck’s Portal中,也使用到了这种内容分发网络服务,所以对它的作用的体会非常深刻。
在很大程度上,CDN能抵御像DDOS之类的攻击,同时还能让站点的真实IP “隐身”
但是这对于我们渗透测试时影响很大:无论我们对CDN的服务器有多大的控制权,也始终影响不到真实站点,也就是源站
此时需要我们绕过CDN,找到真正源站的IP
绕过方法
-
查询历史DNS记录
-
PHPinfo
如果目标网站存在phpinfo泄露等,可以在phpinfo中的
SERVER_ADDR
或_SERVER["SERVER_ADDR"]
找到真实ip -
查询子域名
CDN的流量费还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
具体查询子域名的方法会在接下来介绍
-
使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而没有针对国外的线路,此时我们使用国外的主机直接访问可能就能获取到真实IP。
-
网站邮件订阅查找
RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP了。
子域名
概述
收集子域名可以扩大测试范围,同一域名下的二级域名都属于目标范围。
收集方法
-
使用搜索引擎在线收集
-
FOFA搜索子域名
网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统
语法:domain=“主域名”
-
使用谷歌语法
Site:主域名
-
-
在线查询
- 子域名查询 查子域名 查子站 子域名大全 二级域名查询 查子域 (chaziyu.com)
- DNSdumpster.com - dns recon and research, find and lookup dns records
- http://tool.chinaz.com/subdomain/
-
使用工具爆破挖掘子域名
-
Layer
链接:https://pan.baidu.com/s/1QEYXjrGsARcXk6D-xLS64Q?pwd=1111
提取码:1111 -
OneForAll
shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具 (github.com)
使用OneForAll时需要以管理员身份打开终端
使用高版本python运行时可能会出现报错
ImportError: cannot import name ‘sre_parse’ from ‘re’
解决方法是找到python文件下的Lib\site-packages\exrex.py文件,对其代码进行更改:
-
-
使用证书反查
解析记录
概述
查询域名的NS记录、MX记录、TXT记录等很有可能指向的是真实ip或同C段服务器。
同时flag也有可能藏在这些解析记录中
常见解析类型
- A记录(Address Record):A记录将域名解析为IPv4地址。这是最常见的DNS记录类型,用于将主机名(例如:http://example.com)指向一个IPv4地址(例如:192.0.2.1)。
- AAAA记录(IPv6 Address Record):AAAA记录将域名解析为IPv6地址。与A记录类似,AAAA记录用于将主机名(例如:http://example.com)指向一个IPv6地址(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
- CNAME记录(Canonical Name Record):CNAME记录用于将一个域名指向另一个域名。通常用于别名或子域名的情况,例如将http://www.example.com指向http://example.com。
- MX记录(Mail Exchange Record):MX记录用于指定处理域名电子邮件的邮件服务器。通常,MX记录会指向一个邮件服务器的域名,如:http://mail.example.com。
- NS记录(Name Server Record):NS记录指定了负责解析域名的DNS服务器。通常,在注册域名时,域名注册商会为您分配默认的NS记录。这些记录可以更改,以便将域名的解析委托给其他DNS服务器。
- TXT记录(Text Record):TXT记录用于存储与域名相关的任意文本信息。这些记录通常用于验证域名所有权(如Google网站验证)或实现电子邮件验证技术(如SPF,DKIM和DMARC)。
收集方法
-
使用本机的nslookup命令
nslookup -type=type domain [dns-server]
其中type为解析类型,domain为域名,dns服务器为可选项
-
在线查询
旁站
概述
旁站指的是同一服务器上的其他网站,一般是同一ip
收集方法
-
在线查询
-
搜索引擎
fofa
语法:ip=“xxx.xxx.xxx.xxx”
C段
概述
对目标主机无计可施时,我们可以尝试一下从C段入手。C段入侵是拿下同一C段下的服务器,也就是说是D段1-255中的一台服务器,然后直接从被端掉的服务器出发进行其他测试
收集方法
-
在线查询
-
搜索引擎
fofa
语法:ip=“xxx.xxx.xxx.0/24”
服务器信息
端口
概述
当确定了目标大概的ip段后,可以先对ip的开放端口进行探测,一些特定服务可能开起在默认端口上,探测开放端口有利于快速收集目标资产,找到目标网站的其他功能站点。通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务。
收集方法
-
在线端口检测
-
扫描工具
-
御剑
-
Nmap
教程:https://blog.youkuaiyun.com/weixin_54977781/article/details/123852687
-
服务器类型
网站服务器有不同的操作系统:windows、Linux、mac os
windows对大小写不敏感,其他两个对大小写敏感
数据库类型
目前比较常用的数据库有:MySQL、SQL server、Oracle等。SQL server开放的默认端口:1433,MySQL开放的默认端口:3306、Oracle开放的默认端口:1521。
waf防火墙
收集方法
kali自带Wafw00f
语法:wafw00f xxx.com
网站信息
备份文件
除了F12查看源代码,有时网站的备份文件也会泄漏源代码
备份文件是常见的源码泄露的方式,实践中往往是开发者的疏忽而忘记删除备份文件,从而导致服务器中残留源码。我们可以通过访问这些备份文件来审计代码,一般情况下可以用后台扫描工具扫描。
备份文件常见的后缀名
备份文件基本上都是压缩包
.rar .zip .7z .tar .gz .bak
对于bak类的备份文件,可以直接输入文件名称+.bak访问例如:
index.php.bak
.txt .old .temp _index.html .swp .sql .tgz
备份文件常见的文件名
web website backup back www wwwroot temp db data code test admin user
sql
gedit备份文件
在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为~
的文件,其文件内容就是刚编辑的内容。假设刚才保存的文件名为flag,则该文件名为flag~。
通过浏览器访问这个带有~
的文件,便能得到源代码
vim备份文件
使用vim编辑器编写filename
文件时,会有一个.filename.swp
文件产生,它是隐藏文件。如果编写文件时正常退出,则该swp文件被删除,如果异常退出,该文件则会保存下来,该文件可以用来恢复异常退出时未能保存的文件,同时多次意外退出并不会覆盖旧的.swp
文件,而是会生成一个新的,例如.swo
文件。
针对swp备份文件,我们可以用vim -r
命令恢复文件的内容
例如当前目录下假如存在.flag.swp
文件,则恢