【问题标题】:Preparing an ASP.Net website for penetration testing准备一个用于渗透测试的 ASP.Net 网站
【发布时间】:2011-05-06 13:38:06
【问题描述】:

多年来,我开发的一些网站提交给客户进行渗透测试。大多数情况下,结果返回时突出显示的问题与 ASP .Net 的默认行为有关,例如可能的跨站点脚本攻击等。

是否有任何关于 ASP .Net 应用程序默认存在漏洞的好文章,其次是否有任何可以帮助提前准备网站的好清单?

【问题讨论】:

  • 快速更新。我遇到了一些用于执行静态代码分析的好工具,例如 CAT.Net 和 AntiXSS。这些似乎生成了一些关于潜在代码漏洞的不错的报告,但是是否有任何一般指南可以遵循,包括运行这些类型的工具?

标签: asp.net penetration-testing


【解决方案1】:

我认为检查表会随着时间的推移而变化,其理论与经验相结合。我总是检查我的日志文件并查看他们尝试渗透我网站的新方法 - 例如扫描“不存在”的文件,或尝试运行随机查询。

一个有许多关于渗透的文章的好页面: http://www.cgisecurity.com/pentest.html

试图渗透到我的网站的一些方式。

最常见

  • sql 注入,因此我检查并阻止使用 url 行上的“select”命令调用我的站点的用户。我还会检查其他 sql 命令。
  • 忘记了 javascript 文件浏览器 我发现他们最近搜索的链接如下:wwwmysite.com/plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/tinybrowser.php?type=file&folder=

为了找到它们,我监视“找不到页面”事件。当然,如果找到页面,则它们会渗透。看到失败的尝试并查看他们正在寻找的内容是多么有可能。

Oracle 攻击

这些天我也看到很多预言机攻击。我找到他们并使用以下代码阻止攻击者的完整 IP:CryptographicException: Padding is invalid and cannot be removed and Validation of viewstate MAC failed

窃取 cookie

我也关注这个问题的答案:Can some hacker steal the cookie from a user and login with that name on a web site?
要点:始终对登录 cookie 使用 ssl 加密(requireSSL=true),不要在 cookie 上放置角色(cacheRolesInCookies=false)。

高级阻止

我还阻止来自系统/程序/iis 内部的黑名单 ip,但过去我使用过 PeerGuardian。您还可以在那里找到许多可以提前阻止的不良 ip 列表。我对这些不良 ip 的唯一说明是我不会永远阻止它们,而只会阻止它们几天。坏 ips 块也帮助我处理数百封垃圾邮件。 http://phoenixlabs.org/pg2/

调查日志

我认为人们可以通过多种方式思考并尝试渗透到您的网站上。关键是如何预测它们并在此之前记录它们,并始终制定更好的机制来避免它们。正如我所说,我监控页面未找到,以及页面抛出的内部错误。这两种方法向我展示了很多渗透尝试。

上传脚本。

如果您有权上传文件、图像和其他内容,请确保它们不能在上传目录中运行。这可以通过仔细检查文件的扩展名以及从服务器本身禁用该目录上的程序和脚本的运行来完成,也可以通过在上传目录上放置一个 web.config 来完成:

<configuration>
    <system.web>
      <authorization>
        <deny users="*" />
      </authorization>
    </system.web>
</configuration>

阅读一个案例: I've been hacked. Evil aspx file uploaded called AspxSpy. They're still trying. Help me trap them‼

【讨论】:

  • 谢谢,这是一个很好的介绍性要点列表,但我希望得到更具体的任务列表。例如,在 ISS6 上安装补丁以防止 IIS 版本和 .Net 版本被暴露。还有诸如禁用 web.config 中的调试和堆栈跟踪属性等项目
  • @Brian 一个答案中要涵盖的要点太多,空间太少,其中许多都已准备好在 Internet 教程和书籍上进行掩盖。关于补丁我不知道回答。现在特别是渗透和登录到您的站点或计算机上,我认为这是主要目标,sql 注入和被遗忘的后门,您可以通过监视页面上的错误和未找到的页面来防止/预测它们。
  • @Brian IIS6 上的补丁都已经安装好了,何必再费心呢?
【解决方案2】:

不想用链接掩盖 Aristos 的好答案,但 Google 发布了一个代码实验室来展示可能的 Web 应用程序漏洞:它的(新)称为google-gruyere

它更像是一种了解可能漏洞的学习方式,而不是清单,但table of content 可以帮助您完成清单。

以下是一些需要考虑的类别:

  • 跨站脚本 (XSS)
    • 文件上传 XSS
    • 反射型 XSS
    • 存储的 XSS
    • 通过 HTML 属性存储的 XSS
    • 通过 AJAX 存储 XSS
    • 通过 AJAX 反射 XSS
  • 客户端状态操作
    • 特权提升
    • Cookie 操作
  • 跨站请求伪造 (XSRF)
  • 跨站脚本包含 (XSSI)
  • 路径遍历
    • 通过路径遍历披露信息
    • 通过路径遍历篡改数据
  • 拒绝服务
    • DoS - 退出服务器
    • DoS - 重载服务器
  • 代码执行(远程)
  • 配置漏洞(信息泄露)
  • AJAX 漏洞
    • 通过 AJAX 的 DoS
    • 通过 AJAX 进行网络钓鱼
  • 缓冲区溢出和整数溢出
  • SQL 注入

【讨论】:

  • 我只是看看这个链接,它非常有趣。
【解决方案3】:

清单:

Web Application Security Guide/Checklist

此外,还有许多免费工具可用于测试 Web 应用程序的安全性,您可以试试这些:

  • Netsparker:Netsparker 社区版是一个 SQL 注入扫描器。
  • Websecurify
  • Watcher:Watcher 是一个 Fiddler 插件,旨在帮助渗透测试人员被动地发现 Web 应用程序的漏洞。
  • Wapiti:Web 应用程序漏洞扫描器/安全审计员
  • N-Stalker
  • skipfish:Skipfish 是一个活跃的 Web 应用程序安全侦察工具。它通过执行递归爬网和基于字典的探测为目标站点准备交互式站点地图。然后使用来自许多活动(但希望是非破坏性的)安全检查的输出对生成的地图进行注释。该工具生成的最终报告旨在作为专业 Web 应用程序安全评估的基础。
  • 潦草
  • x5s: x5s 是一个 Fiddler 插件,旨在帮助渗透测试人员发现跨站点脚本漏洞。它的主要目标是通过以下方式帮助您识别可能发生 XSS 的热点: 1. 检测未将安全编码应用于发出的用户输入的位置。 2. 检测 Unicode 字符转换可能绕过安全过滤器的位置。 3. 检测非最短 UTF-8 编码可能绕过安全过滤器的位置
  • Exploit-Me:Exploit-Me 是一套 Firefox Web 应用程序安全测试工具,旨在轻量级且易于使用。

Free Web Application Security Testing Tools

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2014-03-21
    • 1970-01-01
    相关资源
    最近更新 更多