在Global.asax中处理错误
当发生错误的时候,就会调用Application_Error,所以开发人员可以在此编写用于错误处理/页面重定向代码。
Private Sub Application_Error (ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Error
End Sub
在Page_Error sub中处理错误信息
这与应用程序错误非常类似:
Private Sub Page_Error (ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Error
End Sub
在ASP .net中的错误层次结构
首先,处理Page_Error sub,然后是global.asax的Application_Error sub,最后是web.config文件中的customErrors部分。
在对带有服务器端技术的Web应用程序进行信息搜集是很困难的,不过发现的信息对正确执行下一步的测试十分有用,例如接下来要使用sql注入攻击或者跨站脚本攻击攻击进行测试等,同时还能降低误报率。
如何对ASP.net和IIS的错误处理进行测试
启动浏览器然后输入一个随机的页面名称:
http:\\www.mywebserver.com\anyrandomname.asp
如果服务器返回下列内容:
The page cannot be found
HTTP 404 - File not found
Internet Information Services
这表明,IIS没有配置定制的错误功能。请注意扩展名.asp,还要针对.net定制的错误进行测试:在浏览器中输入一个随机的页面名称,只要扩展名为aspx即可:
http:\\www.mywebserver.com\anyrandomname.aspx
如果服务器返回下列内容:
Server Error in '/' Application.
--------------------------------------------------------------------------------
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies)
could have been removed, had its name changed, or is temporarily unavailable.
Please review the following URL and make sure that it is spelled correctly.
这说明没有为.net配置定制的错误消息。
下面我们介绍相应的黑盒子测试及实例:
测试方法:
telnet 80
GET / HTTP/1.1
返回的结果:
HTTP/1.1 404 Not Found
Date: Sat, 04 Nov 2006 15:26:48 GMT
Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g
Content-Length: 310
Connection: close
Content-Type: text/html; charset=iso-8859-1
测试方法:
1. 网络问题
2. 有关主机数据库地址的不当配置
返回的结果:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) '
[MySQL][ODBC 3.51 Driver]Unknown MySQL server host
小结
当我们进行安全渗透测试的时候,首先要做的就是尽可能多地收集目标应用程序信息,所以,信息搜集是渗透测试一个必不可少的步骤。本文详细介绍了如何测试目标地址上运行了哪些应用程序,以及如何通过错误信息提前有用消息的具体方法。