Web安全之信息收集
2023-06-15 17:17:17 # Web Security # Information Gathering

Introduction

Information Gathering is to gather different kinds of information against the targeted victim or system - Websites, servers, etc.

Identify Operation System

通过网站文件大小写来识别

1
2
Linux对大小写敏感,windows不敏感 - 比如index.html -> index.Html
若网页不能正常显示,则为Linux系统;若能正常显示,则为windows系统

通过ping的TTL值来识别


TTL值可作为参考,其依然有可能被修改

1
2
3
4
5
6
7
WINDOWS 98 TTL:32

LINUX 2.2X/2.4X TTL:64

WINDOWS NT/2000/XP TTL:128

UNIX/BSD TTL:255

例如以我本地电脑MAC(Linux)为例,ttl为64,所以可判断为linux

1

通过组合对应来识别

1
2
3
4
5
ASP和ASP.NET(aspx) -> windows
aspx mssql windows iis
php mysql windows/linux apache
jsp mssql/oracle windows/linux tomcat
javaee mysql/oracle/ windows/linux weblogic/jboos/tomcat

通过抓包来识别

1
在==header==中可看到server信息

例如:某游戏网站,可判断其为windows, aspx类

image-20210601160243421

通过端口扫描来识别(包括nmap绕过防火墙)

1
2
3
4
5
6
7
8
可以通过扫描端口来判断数据库类型 - 可使用masscan或nmap来扫描
nmap中文手册:http://www.nmap.com.cn/doc/manual.shtm
nmap www.example.com
nmap -O -A www.example.com
nmap -Pn -O -A www.example.com
扫网段: nmap 47.94.236.0/24
如果开了防火墙:用nmap会提示Host seems down
绕过防火墙:nmap -Pn 127.0.0.1

通过网站文件类型来识别

1
2
3
4
如 index.jsp, index.aspx, index.php, index.action, index.asp
另外,压缩包文件:
Windows -> zip, rar
linux -> tar.gz

Get Relative Sites Information

获取子域名网站

可利用子域名查询平台或者工具进行获取

推荐: oneforall 下载地址:https://github.com/shmilylty/OneForAll

获取不同端口

不同端口可能有不同的网站,增加attack的几率

推荐:nmap, masscan

Get Source Code of Taget Sites

获取当前网站的CMS版本信息

获取网站源码

一般来说获取某些小型站点(套用模版或者第三方程序)的网站源码是有可能的。

More Information About Source Code leakage

git源码泄漏

1
2
www.example.com/.git/
存在即可用==githack==利用漏洞

svn源码泄漏

1
2
www.example.com/.svn/
存在即可用==svn工具==利用漏洞

WEB-INF泄露

WEB-INF 主要包含一下文件或目录:

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.

WEB-INF/database.properties : 数据库配置文件

WEB-INF/classes/ : 一般用来存放Java类文件(.class)

WEB-INF/lib/ : 用来存放打包好的库(.jar)

WEB-INF/src/ : 用来放源代码(.asp和.php等)

1
2
3
4
5
6
若存在WEB-INF/web.xml文件,且有file access权限,可以在web-inf/web.xml中看到暴露的java class路径。
比如在web.xml中有cn.abc.servlet.DownloadServlet.class,如果有下载漏洞,你可以直接下载web inf/classes/cn/abc/servlet/DownloadServlet.class

如 upload_file = ../../xxx.png
即可访问 upload_file = web inf/classes/cn/abc/servlet/DownloadServlet.class
并得到class文件 -> 拖入idea查看即可

cvs泄露

网站中存在.cvsignore

GitHub源码泄漏

一个利用思路是,可以在网站中寻找一些联系方式的信息,比如qq,wx,phone或者email,然后在github中搜索,可能能找到源码

WAF & CDN & Real IP Address

判断WAF类型

Web Application Firewall简称WAF,WAF经常会拦截到我们的渗透攻击,所以需要判断WAF类型以便之后绕过它

CDN绕过并查询真实服务器地址

CDN:A Content Delivery Network, 本质上是用来加速,根据地理位置不同分配不同的服务器让用户能体验到最好的访问效果,同时也会对hacking有影响–因为隐藏了真实的ip地址

判断是否有CDN:

通过网站在线ping,看全国(全球)各地得到的ip是否相同,若不同则说明有CDN

推荐查询平台:

1
2
3
4
5
6
7
https://www.17ce.com/ 

http://ping.chinaz.com

https://www.wepcc.com/

https://get-site-ip.com/

获取真实IP地址

Ps: 如果不确定哪个是真实IP 可以查询IP地址 如果是cdn节点会显示 或者根据公司在的地址判断机房位置

  1. 同服务器下的子域名可能不会做cdn

  2. 去掉www可能没做cdn

  3. 邮件服务器,若邮件服务器是搭建在网站服务器上的,那么可以通过注册账号密码 -> 服务器会给你发送注册信息 -> 显示邮件全文 -> 找到ip

    例如在gmail中:image-20210601164900369

    可以得到发送邮件的IP地址

  4. 证书查询/根据网站备案号

  5. 历史域名解析:过去可能未使用CDN,可以查到真实IP

    https://x.threatbook.cn/

    https://tools.ipip.net/cdn.php

  6. 工具查询cdn:fuck CDN

    https://github.com/Tai7sy/fuckcdn

    https://github.com/boy-hack/w8fuckcdn

  7. APP抓包:若网站有相应APP,可以抓包APP来分析

  8. 国外访问(针对有些国家地区没有设置cdn)

  9. 接口查询 超级ping

Black&White Search Engines

推荐网站:

1
2
3
4
5
6
7
https://fofa.so/

https://www.shodan.io/

https://www.zoomeye.org/

https://quake.360.cn/quake/#/index

ARL(Asset Reconnaissance Lighthouse)

配合fofa可以有效完成信息收集,详见Web安全之ARL灯塔搭建与使用