编辑:对不起,我的问题显然不清楚。我不想在内部报告尝试的服务器攻击;我们已经有记录系统。记录并报告该活动。
我热衷于将攻击报告给肇事者的 ISP 或其他类似机构。
原始问题:
我们的网站不受 SQL 注入(AFAIK!)的影响,但当然我们仍然会定期成为目标。
有什么方法可以自动报告攻击企图 - 反向 DNS 查找等?
尽管我认为总体而言,如果它对社区有所帮助,那么它唯一值得。
对于我们看到的所有其他攻击,我想也是如此——探测开放的 BBS、MySQL、PHPAdmin 等。
编辑:对不起,我的问题显然不清楚。我不想在内部报告尝试的服务器攻击;我们已经有记录系统。记录并报告该活动。
我热衷于将攻击报告给肇事者的 ISP 或其他类似机构。
原始问题:
我们的网站不受 SQL 注入(AFAIK!)的影响,但当然我们仍然会定期成为目标。
有什么方法可以自动报告攻击企图 - 反向 DNS 查找等?
尽管我认为总体而言,如果它对社区有所帮助,那么它唯一值得。
对于我们看到的所有其他攻击,我想也是如此——探测开放的 BBS、MySQL、PHPAdmin 等。
将您的日志捐赠给SANS!他们有一个适用于大多数防火墙的客户端,可以提取日志并将它们发送到 DShield 数据库。
要么其他人都理解了其他东西,要么我理解了,但据我所知,您正试图向他们的 ISP 报告尝试 SQL 注入的人。
这通常是一个死胡同,你最好阻止尝试攻击的用户,因为大多数执行攻击的机器通常不属于“黑客”,而是可能是被入侵的机器,或者是滥用网站的人它提供免费的漏洞扫描或类似的东西。
大多数 ISP 都有一个用于报告此类事情的 [email protected] 电子邮件地址。如果您可以从 IP 中反向查找 ISP 名称,我会将信息发送到那里。
通过来自站点的 SQL 注入,我认为:(a) 你有一些 web 表单,(b) 有一个 SQL 后端,(c) 你使用防止用户输入被错误解释为 SQL 的方法(参数化查询, ETC。)
但是您仍然想检测 SQL 注入的尝试。好的。
尝试 SQL 注入的标准方法之一是探索通过使用字符串插入来寻找并入 SQL 查询的输入字段。例如:
其中surname和firstname是来自 Web 表单的未过滤输入。在这个例子中,用户可以提供名字firstname =
Johnny'
, surname ='-';DROP DATABASE;--
sprintf 将导致:
因为 SQL 中的 ''(两个单引号)被解释为作为字符串一部分的转义 ',所以我们在预期的原始语句中“打开”了字符串分隔符。这让我们可以将后来的字符串surname转换为命令。
简而言之,寻找进入以下领域的人:
此外,您可能会在对输入进行 UTF-8 解码后考虑使用相同的启发式方法。或者 UTF-8 对其进行两次解码。渗透测试人员会考虑代码中可能存在的错误,因此他们会尝试似乎没有意义的输入——例如两次 UTF-8 编码的单引号。
此外,查找
"
和其他 HTML 实体序列。您可以搜索 arxiv.org 并找到一些详细说明某些特定攻击方式的论文:跨站点脚本、SQL 注入、URL 修改。在那里阅读一些论文会引导你了解更多。
扮演魔鬼的拥护者,浪费时间报告这些机器几乎总是毫无意义的。大多数攻击来自用户甚至不知道正在发生的僵尸机器。因此,即使您将他们报告给他们的 ISP 并且他们的 ISP 切断了他们的连接,直到他们清理了他们的机器,他们很可能会在以后再次被感染,或者即使他们没有从互联网上删除 1 台僵尸机器的事实是无意义的成就。
唯一一次我会说值得报告这些尝试是机器是否是像 ThePlanet 这样的托管网络的一部分。将受感染的服务器从 Internet 上移除是一件大事,尤其是因为服务器的所有者甚至可能没有意识到它已被入侵。另一个区别是服务器能够与家用电脑进行攻击的规模。
afrinic.net、apnic.net、arin.net、jpnic.net、krnic.net、lacnic.net、ripe.net 或 twnic.net 都有可以执行 whois 查询的网站。我通常从美国 (arin) NIC 开始。您也可以下载 whois 客户端。我使用 GNU JWHOIS。没关系。此外,还可以使用PING -a -n 1命令获取一些信息。例如:6.127.6.109.rev.sfr.net