美文网首页
侦测服务端(Mapping the Application)

侦测服务端(Mapping the Application)

作者: FocusOnWebSec | 来源:发表于2020-09-13 20:11 被阅读0次

    一、枚举服务端的资源和功能

    1、利用爬虫技术

    (1) 定义 

        爬虫技术的通俗解释:基于网页中可能包含很多超链接,爬虫技术首先构造初始网页集合,然后通过集合中网页的超链接发现更多的网页,再通过这些被发现的网页的超链接去发现更多更多的网页,如此递归下去,最终发现巨多的网页。

        利用爬虫技术爬取目标网站,并限制爬取范围,以枚举目标网站的资源。

    (2) 操作示例

        推荐使用burp suite。假设目标网站为www.baidu.com,操作步骤如下:

    New scan   选择 Crawl and audit(audit功能可以帮助发现漏洞)——>输入初始url——>规定爬取范围 配置crawl 和 audit 。一般默认配置就可以了,详情参照官方文档。 定制用户名和密码。在爬到有登录功能的网页时,用这些用户名和密码尝试登录。 配置所需资源。默认即可,详情参见官方文档。 查看爬取记录

    (3) robots.txt文件

        请关注网站的robots.txt文件,它可能泄露网站信息。详情自己百度。

    (4) 爬虫技术的局限性

        1、网站的某些资源可能不是以url的形式呈现,例如使用JavaScript呈现,这些资源不能被爬虫发现。

        2、url可能隐藏在Flash或者java applet中,这些url不能被爬取到。

        3、爬虫的尝试登录功能会在网站采取多重验证机制时失效。

        4、有些网站会解析请求包正文中的参数,使得网站在相同url下有不同的功能。爬虫技术难以实现自动填充参数,导致遗漏某些功能。

        5、多个url也可能指向同一个页面。例如url包含随机字符,但这些随机字符不是用来定位资源的而用来做验证的,所以仅随机字符不同的多个url将指向同一个页面。爬虫会将这些url全部记录下来,导致资源枯竭,甚至导致无限循环地对同一个页面进行爬取。

    (5) 爬虫技术的危险性

        1、访问某个url可能会触发一些危险操作,例如删除用户、关闭数据库、重启服务等等。


    2、人工访问

        上述爬虫技术都是自动化爬虫,但有局限性和危险性,解决的方法就是人工访问。所谓人工访问就是人工分析网页结构,使用浏览器手动访问网站资源。通过运行burp suite的proxy功能,可以将访问到的网站资源保存下来。

    打开proxy 查看访问记录

    3、发现隐藏内容

        网站的很多敏感内容没有暴露在外部链接中,爬虫方式并不能发现这些隐藏的内容。

    (1) 基于字典

        根据程序员的命名习惯、通用软件的命名方式等等,构造出路径字典,观察网站在这些路径下是否存在资源。专业版的burp suite 自带路径字典,可用于路径扫描。具体操作如下。

    进入 Discover content 模块 配置 配置 开始 查看结果

    (2) 精心构造

        依靠经验和想象力,精心构造路径。

        1、若网站存在AddDocument.jsp,猜想可能还存在:ViewDocument.jsp、EditDocument.jsp、RemoveDocument.jsp等等。

        2、注意某些包含日期的文件名。例如网站存在AnnualReport2009.pdf,猜想可能还存在AnnualReport2010.pdf。

        3、通过阅读网页源码,发现一些隐藏的资源。

        4、尝试添加不同的文件名。例如网站存在abc.jsp,猜想可能还存在:abc.txt、abc.bak、abc.src等等。

        5、搜索可能由开发人员工具和文件编辑器无意创建的临时文件。例如:DS_Store文件,它包含OS X系统的目录索引,file.php~1文件,它是在编辑file.php时创建的临时文件,以及.tmp文件扩展,它被许多软件工具使用。

        6、发挥你的想象力吧!

        Content discovery模块可以依据规则自动构造路径,请查看Content discovery模块的配置选项。

    (3) 利用公共资源

    1> 利用搜素引擎,如谷歌(google)。

        a. 搜索:site:target.com 、site:target.com login 、link:target.com 、related:target.com。请了解这些搜索关键词的意义。  

        b. 转到搜索结果的最后一页,查看省略的结果。以google为例:

        c. 查看搜索引擎的网页快照。以google为例:

    2> 利用网页档案, 如www.archive.org。

         www.archive.org(被墙了)是一个在线的网页档案馆,它保存了大量网站的历史版本,用户可以浏览给定站点的完全复制的快照。示例如下:

    www.baidu.com的历史版本

    3>搜索开发人员的信息。

        找出与目标网站有关的人名、电子邮件地址及其他有用信息,使用搜索引擎搜索这些信息。开发人员可能会泄露网站的信息,例如他在博客中写了网站的实现细节。

    (4) 利用第三方软件

        第三方软件可能存在漏洞,比如cms(内容管理系统)经常爆出漏洞。第三方软件也容易造成信息泄露,比如泄露路径信息。

    4、 Application Pages Versus Functional Paths

        大意是说:某些网站架构会基于请求包正文中的参数差异,实现相同url下触发不同的功能,那么为了发现这些功能,我们就要尝试多种参数。

    请求包正文中的参数示例

    5、发现隐藏参数

        有些网站会解析请求包正文中的参数或者url的参数,从而触发不同的功能。例如,如果将参数debug = true添加到URL中,则网站的行为可能会有所不同。我们尝试不同的参数,以期发现网站的漏洞。burp suite的操作示例如下。

    在请求正文以及url中添加参数,使用Cluster bomb模式 key用内置列表 (Server-side variable names) 自己构造常用的value key用内置列表 (Server-side variable names)   自己构造常用的value

    相关文章

      网友评论

          本文标题:侦测服务端(Mapping the Application)

          本文链接:https://www.haomeiwen.com/subject/pblbektx.html