Web入侵安全测试与对策学习笔记之(二)——获取目标信息之淘金

Web安全测试之——获取正确的目标信息

在战争中,通常都会需要花费大量时间去搜索、收集敌人的情报信息,用于及时了解敌人的动态,便于及时准备和调整战争部署,充分合理的利用自身的攻击能力——知彼知己者,百战不殆《孙子.谋攻》

Web安全测试也是如此,为了尽可能多的找出系统存在的重大安全bug,就需要进行“攻击”,而在攻击之前,首先要做就是收集、获取目标相关信息——通常所说的踩点。

 

1、淘金

Web安全测试需要从正确的着眼点入手,而不是盲目进行,误入歧途,就像淘金一样,需要首先选择存在金子的小溪,从其中含有砂子和岩石、金子等的小溪中去淘金,过滤掉砂子、岩石,从而获取到需要的金子。

如何使用、实施这种攻击?

主要从哪些方面进行:

       1HTML代码中嵌入的注释

       HTML中的注释方法为:

       <!—注释的内容 -->

     其他的ASPPHPPerl等的注释为//*/…*/等。

      ColdFusion使用的注释为:<!---注释的内容 --->

     常用的搜索汇总如下:

       

      

      

       2HTML代码中的敏感信息

      源代码中寻找的信息包括一些不应该泄露的秘密,例如数据库名称、用户名和密码等。

       3、服务器端的出错信息和HTTP响应

检查页面之间传递的参数,通过把参数修改为超出其正常值范围或数据类型限制之外的结果,可以发现一些对于攻击者而言很有用的细节或是得到错误的页面。

对于需要查看使用POST提交方式传递的数据,可以使用web代理程序,如webscarabburpsuite等。

POST请求时用于提交复杂表单最常见的方法,不同于GET取值,我们无法仅通过查看网页浏览器窗口顶部的URL来得知所有被传递的参数,参数经由连接从我们的浏览器传送到服务器。

我们可以使用web代理工具,观察提交的POST数据,而WebScarab就是一种web代理,代理介于浏览器与真实的web服务器之间,所以利用它可以截获消息并阻止或更改这些消息。

下面是通用的代理架构:

WebScarab与常见的web代理有以下两点不同:

WebScarab通常与web客户端运行在一台计算机上,而常规代理则搭建起来作为网络环境的一部分。

WebScarab用于显示、存储、操纵HTTP请求和响应中与安全有关的内容。

 

要使用WebScarab截获数据包,需要先进行浏览器网络代理设置,设置步骤如下:

启动WebScarab

打开浏览器工具—>选项下的网络,设置代理为127.0.0.1localhost,端口8008.

设置完成后,在浏览器中访问需要提交POST数据的页面,可以在WebScarab查看到截获的数据信息,如下图所示:

按照以上步骤,我利用WebScarab捕获登录CSDN论坛,从捕获的数据可以看到提交的用户名、密码均明文显示,同时还可以看到登录用户的隐藏信息(包括用户IDuserid、登录用户名username、登录密码password、注册邮箱email、上次登录时间lastlogintime、登录次数logintimes、上次登录ip地址lastloginip、是否删除isdeleted、注册ip地址registerip、注册时间registertime、是否激活isActived、角色组role、是否锁定isLocked),有兴趣的同学可以尝试看下。

其他类似的web代理工具还有IEHttpHeaders(访问地址:http://www.blunck.info/iehttpheaders.html)、Paros(访问地址:http://www.parosproxy.org/225235.html)等,有兴趣的同学可以访问了解、使用。

 

       4、应用程序出错信息

       对于出错信息,比较经典的例子是用户登录,输入登录用户名和密码,如果应用程序对于错误的用户名返回了一个出错信息,而对于错误的密码返回了另外一个错误信息,那么攻击者就可以根据返回值猜到正确的用户名。

 

      前两个方面需要阅读应用程序的源代码以寻找对于攻击者有用的信息,后两个方面要提交错误的输入并仔细分析所产生的出错信息以获得有用的信息。

      源代码和错误信息对于攻击者是很有价值的,它们能够帮助攻击者确定,那个web页面包含了“黄金”,而那些只有“砂石”。

 

如何防范这种攻击?

1、检查源代码中的任何注释(包括应用代码和HTML)以确定哪些是有用的和可以理解的信息(它们对于用户和开发人员是有用的),哪些是信息泄露(它们对于攻击者是有用的)。最好的办法是在产品化的代码中删除注释信息,只在开发者内部的服务器上保留带有注释的版本。——区别对待

2、对于出错信息,不管出错信息来自web服务器、开发平台还是来自web应用程序本身,都需要尽可能的避免信息泄露,反馈给用户的信息尽可能简洁而有价值。例如,用户输入错误的密码登录时,应当返回这样的错误信息“您输入的用户名或密码错误”,对于攻击者来说无法确定究竟是用户名还是密码出现了错误。

不要泄露所有的细节信息,应当把它们保存在服务器端的日志文件里,它们在出错调试时非常有用。另外,定期扫描查看日志文件可以了解用户被应用程序拒绝的情况以及系统遭受了什么样的攻击。

 

【说明】以上来自《web入侵安全与对策》一书学习笔记及摘录整理汇总,特此说明!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值