
出版社: 清华大学
原售价: 49.00
折扣价: 34.30
折扣购买: 黑客与安全技术指南
ISBN: 9787302479451
第3章 Web渗透测试——透过*击看防御 何谓Web渗透测试(Penetration Test)?相信大家对Web都不陌生,渗透测试一般是指通过模拟黑客的恶意*击,来评估计算机网络系统的安全性,若发现系统存在漏洞,则提交渗透报告给被测试系统的拥有者,并提供修复方案。本章将通过对Web应用及服务器的渗透测试,带各位详细了解渗透测试的方法和技能。 本章知识涉及的内容较为分散,希望读者能够掌握学习技巧,务必亲自动手实践,“熟”方能生“巧”。 3.1 渗透信息搜集 信息搜集是Web渗透的**步,也是至关重要的一步(实际上除了Web渗透,很多工作的**步都是信息搜集)。一次完整的渗透过程是漫长的,前期信息搜集可以让人们初步了解渗透目标,而后期信息搜集却往往是成功的关键。任何*击与防御之间的较量,都是基于信息的掌控程度,在信息不对等的情况下,很容易出现误判或失误。在安全行业团队的测试中,信息搜集被视为“*重要,*耗时”的一个步骤,甚至有专门的成员负责信息的搜集与分析。下面我们来了解一些常用的信息搜集技巧(这里使用的词语是“信息搜集”而非“信息收集”,是因为“搜”字能*好地体现出归纳整理的含义,有一定的选择性和方向性)。 3.1.1 服务器信息搜集 1. 旁站 何谓旁站*击?就是一个服务器上有多个Web站点,而我们的渗透目标是其中的一个Web站点,当我们无法拿下目标站点时,则可以尝试对服务器上的其他站点进行渗透,然后再通过跨目录或提权等方法拿下目标站点。常见的旁站查询流程如下。 (1)获得渗透目标的真实IP地址。 (2)利用网站平台、工具反查IP地址。 2. 端口扫描 一台计算机开放的端口和它开放的服务是对应的,而渗透测试人员可以通过端口扫描大致了解目标开放了哪些服务,如80端口对应了HTTP服务,3306端口对应了MySQL数据库,1433端口对应了MSSQL数据库。通过对开放端口的分析,我们便可以大致知道目标网站使用了什么数据库,并可以尝试进行数据库的爆破。此外,端口扫描对后台的查找和后期的提权也是至关重要的。那常见的端口扫描方式又有哪些呢? (1)在线平台。很多平台都提供端口扫描的功能,并且提供常见服务的默认端口,如图3-1所示。 图3-1 在线端口扫描平台 (2)工具。端口扫描工具如图3-2所示。 3.1.2 Web信息搜集 1. 二级域名 在对一些大型网站进行渗透测试时,主站很难直接发现漏洞,而子站容易出现问题。例如SQL注入,往往因为数据库的配置不严谨,导致黑客可以利用子站的注入进行跨库,或者拿下子站的服务器,利用内网危害到主站的安全。图3-3便是用一个Python的脚本来对百度的二级域名爆破的结果。 图3-3 利用脚本爆破出211个子域名 2. 目录信息 在渗透中,目录是极为重要的信息。如果得到了根目录,便可以结合注入进行GetShell(取得权限),如果有了Web目录,便可以尝试对后台地址进行爆破,对后台文件进行猜解。由此可见目录的重要性,而获得目录的常见方法如下所述。 (1)phpinfo和探针文件。phpinfo文件如图3-4所示。 图3-4 phpinfo文件 PHP探针文件如图3-5所示。 图3-5 PHP探针文件 (2)搜索引擎。在渗透中,搜索引擎是一把利器,尝**搜索引擎的语法,往往会有意想不到的收获。 下面是一些常用的搜索引擎语法。 domain:用domain命令可以查找跟某一网站的相关信息。 filetype:限制查找文件的格式类型。目前可以查找的文件类型有.pdf/.doc/.xls/.ppt/.rtf。 inurl:限定查询匹配只搜索URL链接。 link:网站外链接查询。 site:网站整站搜索引擎收录查询。 intitle:搜索网页标题中含有的关键词。 (3)扫描器。对渗透目标用常见的目录进行暴力破解。此方法往往对那些安全性较低的网站有效。 (4)爬虫。爬虫在渗透中起着很重要的作用,用来发现一些隐蔽的目录。 3.1.3 Whois信息搜集 Whois即域名查询协议,是用来查询域名的IP地址以及所有者等信息的传输协议。网络上有很多提供Whois查询的平台,如图3-6所示,将目标域名输入查询,便可以看到目标站点的域名服务器、DNS服务器以及其他隐私信息。 图3-6 Whois查询结果 3.1.4 爆破信息搜集 “爆破”是一种形象的说法,即暴力破解,一般使用穷举或字典(大量数据集合)列举的方法。在渗透测试中,爆破的作用**重要。特别是针对一些大型企业的内部系统,很多员工为了使用方便,而忽略了密码的安全性,常常使用一些弱口令作为密码,而用户名往往就是其姓名或拼写。黑客可能尝试利用搜索引擎和社工库对渗透目标的员工名单进行搜集,然后进行密码字典生成和爆破。防范这种*击的方式,一是增加验证,让暴力破解无法进行,例如验证码;二是提高密码安全性,这在附录中会详细探讨。 3.2 SQL注入 SQL注入曾在几年前就流行于世,而如今,SQL注入仍是*流行的*击手段之一,开发者们对其伤透了脑筋。当然,主要是由于注入*击的灵活性,一个目的,多个语句,多个写法。 SQL注入可以分为工具和手工两类,工具因为自动化,常常会比手工高效很多,但因为其并不是有针对性地进行注入,相比手工注入就局限了很多。 3.2.1 注入的挖掘 一切输入都可能有危害,有参数的地方皆有可能存在SQL注入。而由于浏览器的局限性,常常会忽略一些隐藏链接、API调用、http头中的参数。那如何进行全面的SQL注入挖掘呢? 这里需要用到工具Burp。 由图3-7可以看到*作时向Web站点发送的每个http数据包。数据包中包含了http头和传递的参数,而注入常常就发生在这些参数中,图3-8简单分析了http数据包的结构 (大方框为http头,小方框为参数) 。 "信息安全围绕*防展开,解读黑客技术,梳理知识脉络,助力读者成为有技术能力的安全人员。 ? 强调学习方法,独立成章,耐心指导; ? 内容从基础到实战,主流技术+完备的知识体系,内容涉及经典Web技术、逆向工程学、社会工程学与无线安全等领域; "