阻止 IIS 中 URL 中找到的某些文件类型和值

阻止 IIS 中 URL 中找到的某些文件类型和值

有人本不应该扫描我的网站,却试图利用一些 php 漏洞。我已经开始封锁他们的 IP,但不止一个人在这么做,而且每次请求都会导致服务器错误,从而触发错误报告到我的收件箱中。在过去 3 天里,我每晚都会收到近 2000 封电子邮件。

我们是一家 .net 商店,他们攻击的网站中没有任何 php。我想阻止所有 .cgi、.php 和 .ini 文件类型的请求。这很容易做到文件扩展名代替请求过滤在 IIS 中。处理如下请求:

http://mydomain.com/bin/script/cat_for_gen.php?ad=1&ad_direct=../&m_for_racine=%3C/option%3E%3C/SELECT%3E%3C?phpinfo();?%3E

我的问题是他们试图利用错误页面进行攻击:

http://mydomain.com/Error/NotFound?404;https://portal.ftnirdc.com:443/bin/webspirs.cgi?sp.nextform=../../../../../../../../../../etc/passwd

因此,对于这个,我只想查看 URL,如果发现 .cgi,则阻止该请求。我该怎么做?我可能还想阻止其中包含 ../ 的请求。

答案1

看起来你可以做这样的事情:

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <denyUrlSequences>

      <add sequence=".."/>

    </denyUrlSequences>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration> 

它应该过滤请求中带有“..”的任何内容。

参考: http://learn.iis.net/page.aspx/143/use-request-filtering/

这是一个打地鼠的游戏,因此请尽量不要太疯狂地制作大量的过滤器:)。

相关内容