web测试方法工具篇

一、信息收集

  不管你在做什么,首先第一步就是信息收集,所谓知己知彼百战不殆,所以想要对一个web应用进行安全测试,首先要做的就是信息收集,还要把收集的信息做有效的整理保存,下面就是信息收集的流程步骤:

1.1创建一个项目目录,合理的保存信息,如:bmzj

1.2保存整个网站,通过保存网站可以了解到这个web应用所公开的所有信息,包括:目录结构、文件列表、网站内容等,可以两个工具:

  • wget
      wget -rck www.xuehuali.wang

  • httrack

  https://www.httrack.com/page/2/en/index.html

1.3 收集目标的email账号,邮箱账号是一个人的id,收集的邮箱越多,可能成功的几率会越高,因为很多情况下,邮箱账号也就是web应用的登录账号,收集的越多,遇到弱口令的情况越大,我们的成功的几率就越高,可以使用以下工具来收集:

  • theHarvester

  https://github.com/laramies/theHarvester

  • maltego

  http://www.freebuf.com/sectool/104949.html

1.4 收集web应用上的文档信息,文档上有很多有用的信息,比如:word的属性里可能有创建者或者修改这的id、内容里可能包含内网一些设备的操作指南,也有可能里面包含一些用户的个人信息等,这些都是对我们后续渗透有用的信息,收集这些信息可以使用以下的工具:

  • Metagoofil

  https://github.com/laramies/metagoofil

  • FOCA

  https://www.elevenpaths.com/labstools/foca/index.html

  • google语法

  site: www.myh0st.cn ext:pdf intitle:"Documents and settings"

1.5同一主机上的所有web应用,这个操作可以在我们进行渗透一个ip 的时候,扩大我们的攻击面,使我们的成功率增加,可以使用以下的方式收集:

  • revhosts

  ./revhosts pig vhh www.xuehuali.wang

  • 旁注查询网站

  自行查找

二、自动化测试

2.1漏洞扫描器
  对于自己不认识的web应用,可以使用一些免费的扫描器对其进行简单的扫描,扫描器可以扫出来的漏洞,我们就可以省很多的事情,不过可能误报会比较多,大家根据报告进行一一检测就行,下面提几个扫描器:

  • Nikto

  https://cirt.net/nikto2

  • w3af

  http://w3af.org/

  • skipfish

  https://my.oschina.net/u/995648/blog/114321

  • Arachni

  http://www.arachni-scanner.com/

  • ZAP

  http://www.freebuf.com/sectool/5427.html

2.2爬虫
  有了这么多扫描器,其结果阅读起来并不容易,下面介绍一款工具可以合并多个扫描器的结果并且具有爬虫的功能如下:

  • GoLISMERO

  http://www.golismero.com/

2.3信息泄露
  除了扫描漏洞外,我们还应该关注一些信息泄露的问题,如:robots.txt, gitignore, .svn, .listin, .dstore等,关于这个可以看一下之前的文章《运维安全之安全隐患》,下面这个工具可以完成这项任务,上面也提到过就是FOCA。

  • 目录枚举
      目录枚举是我们在web测试中必要的步骤,这个操作可以使我们找出一些隐藏的目录或者文件,往往这些目录和文件安全性不是那么高,像那些测试页面,调试页面以及方便管理员操作的页面等等,下面提几个kali下的工具:

  • dirb

  ./dirb http://www.myh0st.cn/ wordlist.txt

  • dirbuster

  是一个界面程序,可以百度查找相关程序。

2.4测试常见漏洞
  测试常见的漏洞例如:xss、sql注入、ldap注入、xpath注入、本地文件包含、远程文件包含等,下面提几个测试工具:

  • PowerFuzzer

  http://www.powerfuzzer.com/

  • burpsuite

  这个工具大家都不陌生,国内的资料也是非常多的,我就不多说了

  • fuzz字典

  https://github.com/fuzzdb-project/fuzzdb

三、手工测试

3.1 测试辅助工具
  即使是手工测试也是需要借助一些工具来的,像那些post数据、协议数据包等隐藏的我们靠纯手工是无法理解的,所以下面的几个工具是需要去学习如何使用的:

  • burpsuite

  http://open.freebuf.com/category/subtitle

  • ZAP

  http://www.freebuf.com/sectool/5427.html

  • firefox扩展

  http://www.freebuf.com/sectool/11544.html

  • 指纹识别
      web应用的指纹识别是很关键的部分,因为你一旦确定web应用的由来,这样可以让你的渗透测试事半功倍,更有针对性,免去了很多时间,针对不同的地区有不同的指纹识别工具,毕竟不同的地区使用的web应用有所差别,这里也就不做过多解释,关键是指纹库,这个是需要积累的,国内外有很多优秀的产品,大家自行测试使用。

3.2简单测试
  拿到一个网站后需要大概看一下,网站返回的http头、session、http方法、证书信息等,可以使用的工具还是比较多的,简单的像nc、telnet等,复杂的可以是上面说的辅助工具。

  • http指纹识别
      通过http的指纹识别可以判断服务器的类型、针对不同的服务器有不同的测试方式有不一样的弱点利用,下面的这个工具可以完成这个操作:

httprint
http://pnig0s1992.blog.51cto.com/393390/570470

  • 测试参数
      在任何我们可以控制的变量出都可以使用:单引号、%00、空字符、回车符等进行测试并查看返回结果,这些操作可以使用上述提到的辅助工具,对get、post、cookie等http方法进行测试。

  • 分析文件
      可以分析网站上的flash、java等运行环境,可能会存在一些xss等安全问题。我们可以用过一些工具来收集网站上的这类文件,如下:

  • google语法

  filetype:swf site:myh0st.cn

  • wget

  wget -r -l1 -H -t1 -nd -N -nd -N -A.swf -erobots=off http://www.xuehuali.wang -i output_swf_files.txt

  对于这类文件的下载回来如何测试,可以使用一些反编译软件对这些文件进行反编译然后进行简单的代码审计,查找其中的问题。

  • 测试认证
      几乎每个web应用都会存在认证系统,有用户交互就会存在认证,针对认证的测试,首先查看其是否有反暴力破解的策略(如验证码、错误次数等)、如果有测试其策略的阈值看看能否绕过、如果没有或者可以绕过就可以使用一些在线破解工具对认证系统进行暴力破解,测试存在弱口令的用户账号,然后进行进一步的渗透。推荐工具:

hydra
https://www.thc.org/thc-hydra/

你可能感兴趣的:(web测试方法工具篇)