【问题标题】:Are there cross-platform tools to write XSS attacks directly to the database?是否有跨平台工具可以直接将 XSS 攻击写入数据库?
【发布时间】:2010-03-16 10:19:55
【问题描述】:

我最近在一个将 XSS 攻击直接写入数据库的工具上发现了 this blog entry。这看起来是一种非常好的方法来扫描应用程序以查找我的应用程序中的弱点。

我尝试在Mono 上运行它,因为我的开发平台是 Linux。不幸的是,它在Microsoft.Practices.EnterpriseLibrary 的深处出现了System.ArgumentNullException 崩溃,我似乎无法找到有关该软件的足够信息(它似乎是一个单一的项目,没有主页,也没有进一步的开发)。

有人知道类似的工具吗?最好应该是:

  • 跨平台(Java、Python、.NET/Mono,甚至跨平台 C 也可以)
  • 开源(我真的很喜欢能够审核我的安全工具)
  • 能够与各种数据库产品(最重要的数据库产品:MySQL、Oracle、SQL Server ......)交流

编辑:我想澄清我的目标:我想要一个直接编写成功 XSS 结果的工具/SQL 对数据库的注入攻击。这个想法是我想检查我的应用程序中的每个地方是否正确输出编码。首先检测并避免数据到达那里是完全不同的事情(当我显示由第三方应用程序写入数据库的数据时可能无法实现)。

编辑 2: 我在上面链接到的工具的作者 Corneliu Tusnea 已经在 codeplex 上作为免费软件发布了该工具:http://xssattack.codeplex.com/

【问题讨论】:

  • 只是为了记录,博客条目现在是 404。但是看起来很有趣......
  • 很遗憾,Google 快速搜索并未显示 Tusneas 博客的新位置。

标签: xss security-testing


【解决方案1】:

我认为 metasploit 具有您正在寻找的大部分属性。它甚至可能是唯一一个拥有您指定的所有内容的,因为我能想到的所有其他内容都是封闭源代码。有一些现有的模块可以处理 XSS,特别是您应该看一看的模块:HTTP Microsoft SQL 注入表 XSS 感染。从那个模块的声音来看,它完全可以做你想做的事情。 我相信该框架是用 Ruby 编写的,并且应该很容易使用您可能需要/想要做的自己的模块进行扩展。 我希望这会有所帮助。

http://www.metasploit.com/

【讨论】:

  • 这绝对是朝着正确的方向发展!它仍然通过漏洞利用写入数据,这对我的用例来说不是必需的,但它可以满足我的需求。
  • 好的,感谢您的澄清。在这种情况下,我会从您提到的博客上链接到的 xssattack 工具 zip 中获取 xssAtttacks.xml 文件。我会编写一个脚本来查看我的测试/开发数据库并将其中一种攻击插入到任何类型为 varchar/string/test/etc 的列中。这可能是你最好的选择。
  • 是的,如果不存在这样的工具,我基本上会这样做:将工具移植到 Java(因为这是我最了解的)。我只是希望存在其他东西。
【解决方案2】:

不确定这是否是您所追求的,它是 HTTP/HTTPS 的参数模糊器。

我已经有一段时间没有使用它了,但 IIRC 它充当了您和相关 Web 应用程序之间的代理 - 并将 XSS/SQL 注入攻击字符串插入到任何输入字段中,然后再判断响应是否“有趣”与否,因此应用程序是否易受攻击。

http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project

根据您的问题,我猜它是您正在寻找的一种模糊器,专门用于 XSS 和 Web 应用程序;如果我是对的 - 那么这可能会对你有所帮助!

它是“jah”将您链接到上面的开放 Web 应用程序安全项目 (OWASP) 的一部分。

【讨论】:

  • 这看起来也很有趣,但这不是我要专门寻找的。我想测试我的应用程序的正确输出编码!为此,我需要数据库中的数据就像攻击成功,无论我的应用是否易受攻击。
  • @Joachim:如果您的数据库提供了 Web 界面,那么也许您可以在该界面上运行参数 fuzzer,这样它就可以直接在数据库中插入任何内容(也许首先定义一些表的可更新视图,因此它不能更改主键等。)然后您必须检查您的应用程序是否公开了未转义的内容。如果您找不到更合适的工具,这可能是一种解决方法...
  • @chris_l:好主意!如果我没有找到“完美”的工具,我会调查一下。
【解决方案3】:

这里有一些 Firefox 插件可以做一些 XSS 测试: http://labs.securitycompass.com/index.php/exploit-me/

【讨论】:

  • 这些可能是有用的工具,但它们不是我想要的。我想将攻击注入数据库以显式测试输出编码。
【解决方案4】:

我的一个朋友一直说,php-ids 很不错。我自己没试过,但听起来和你的描述差不多:

  • 开源 (LGPL),
  • 跨平台 - PHP 不在您的列表中,但也许没问题?
  • 检测“各种 XSS、SQL 注入、标头注入、目录遍历、RFE/LFI、DoS 和 LDAP 攻击”(来自常见问题解答)
  • 记录到数据库。

【讨论】:

  • 很抱歉,但这不是我要找的。我正在尝试通过在我的数据库中注入 XSS 攻击字符串来测试我的输出编码。这似乎是一个检测当前攻击的过滤器,它只适用于 PHP 应用程序。
  • @Joachim Sauer:我完全误解了您的句子“将 XSS 攻击直接写入数据库” - 我认为您的意思是它应该将有关直接发生在数据库中的攻击的事实写入。
【解决方案5】:

我不认为有这样的工具,除了你指给我们的那个。我认为这是有充分理由的:这可能不是测试每个输出是否针对适用的上下文正确编码的最佳方法。

通过阅读有关该工具的信息,似乎前提是将随机 xss 向量插入数据库,然后浏览您的应用程序以查看这些向量中是否有任何成功。至少可以说,这是一种碰碰运气的方法。

我认为,一个更好的主意是进行代码审查。

查看http://owasp.org 提供的一些资源可能会有所帮助 - 即应用程序安全验证标准 (ASVS)、测试指南和代码审查指南。

【讨论】:

  • @jah:我同意可能有更好的方法,但代码审查可能只是碰运气。我并不是说这样的工具将成为安全工具的全部(没有工具可以),但它可以是一个非常有用的初步近似工具。
  • @Joachim:我不同意“代码审查可能是偶然的”(它们可能执行不力 - 当然)。该特定工具的问题是双重的:首先,似乎无法控制要测试的向量,因此有条不紊的方法,确保为每个领域尝试广泛的技术是不可能的,其次,没有办法将特定的输入映射到它们各自的输出——您只需浏览应用程序,希望得到命中。如果您正确定义了一组安全控制,则应该很容易检查它们是否与代码审查一起使用。
猜你喜欢
  • 2019-12-11
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2019-02-09
  • 2018-11-08
相关资源
最近更新 更多