loader image

Web信息收集

架构

web应用的架构中包含了:语言、中间件、数据库、系统

语言收集(这里以随便一个网站为例)

方法一

在我们访问一个网站时,一般输入域名会是这样:www.xxx.com

image-20240320033247909

如果你有搭建过网站,你就会知道有些网站搭建完毕如果没有调整的话,访问主页不仅可以通过域名,还可以通过域名之后加上index.*

  • 这里的index.*可以是index.php,index.asp...

所以我们尝试在网站的域名后面加上index.php来测试该网站是否使用的是php

image-20240320033608546

我们发现网站依然显示正常,我们再尝试index.js

image-20240320033646473

发现无法正常显示,我们可以推测该网站使用的语言是php

方法二

当然我们也可以通过数据包来查看该目标使用的语言是什么,我们在点击F12,并且在网站中随意点击一个按钮

image-20240320034024446

此时我们可以看到有数据包了,并且我们可以看到脚本文件是dy.php,也可以知道该目标使用的语言是php

image-20240320034125873

中间件收集

方法一

当我们在访问一个网站时,我们随便输入路径迫使其报错

image-20240320033831565

我们会发现,在报错信息中,他出现了中间件的名字Apache

方法二

我们可以通过数据包的方式来收集,我们打开浏览器时访问一个网站点击F12,浏览器的下侧或右侧的网络中就可以探测到数据包

我们与网站交互一下(随便点击一下网站的按钮)

image-20240320031644769

我们可以看到右边的框框里,已经有数据包了。我们点击任意一个脚本文件,我们可以看到在响应包头(Respons Headers)看到Server中包含的时Nginx,说明该目标网站使用的中间件时Nginx

image-20240320032403396

数据库收集

方法一:固定搭配

我们有一个很简单的方法就是通过固定搭配来得知网站使用的数据库是什么

经常使用php+MySQL配合,所以当我们知道该网站使用的是php脚本语言的话,我们就可以大胆的猜测他大概率也是适用的MySQL。当然这种方法比较草率,只能说当作我们的一个猜测。最好是通过别的方法去验证一下。

方法二:端口扫描

使用数据库时,和我们使用其他的软件一样,他提供服务的话就会占用端口,所以我们就可以通过端口扫描查看目标开放的端口中有没有数据库的默认端口。

数据库的默认端口:

  • mysql:3306
  • mssql:1433
  • redis:6379
  • mangodb:27017
  • DB2:5000
  • PostgreSQL:5432
  • ...

当我们扫描端口发现数据库的默认端口开启时,我们就可以确定他是什么数据库。比如我们扫描3306端口开启,那说明这个目标使用的是MySQL。但当你扫描到3306默认端口关闭的时候,不代表这个目标就一定用的不是MySQL。可能是做了端口映射或是站库分离等。

扫描的工具有nmap和masscan。当然这是我们主动式去探测目标的数据库,当然为了避免当我们扫描时产生的大量流量对目标应用服务产生影响,从而导致我们“考上了”铁饭碗,所以我们也可以使用被动式的探测,也就是借助网上的一些接口去查询,或者是网上有一些已经查到了的历史记录。

image-20240324021633885

该网站的网址:https://pic.hibugs.net/articlePic/image-20240324021541284.png

系统收集

系统收集在之后的文章中会做详细的讲解,这里讲两种简单的方法区分Windows,Linux。

方法一:大小写

可以通过改变大小写来看操作系统是Linux还是Windows。Windows对大小写不敏感,而Linux对大小写敏感。

我们将首页index.php修改为index.Php点击回车再次访问

image-20240324022321007

发现网站依然正常访问,所以可以得知该目标网站服务器使用的是Windows系统。

方法二:TTL值

其次,我们可以通过ping服务器,看他的TTL值来判断操作系统。

1、Windows NT/2000 TTL:128
2、Windows 95/98 TTL:32
3、Unix TTL:255
4、Linux TTL:64
5、Windows7 TTL:64

希望本文章能够帮助到你 🙂

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top