在 IIS 日志中查看 SQL Statements/Query 参数?

See SQL Statements/Query Params in IIS logs?

我正在开发一个分析 Web 服务器日志以检测 SQL 注入攻击的应用程序。我已经能够解析 Apache 日志并提取 SQL 语句,因为它们包含在请求的查询参数中,如下所示:

84.55.41.57- - [14/Apr/2016:08:22:13 0100] "GET /wordpress/wp-content/plugins/custom_plugin/check_user.php?userid=1 AND (SELECT 6810 FROM(SELECT COUNT(*),CONCAT(0x7171787671,(SELECT (ELT(6810=6810,1))),0x71707a7871,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) HTTP/1.1" 200 166 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"

为此,我必须在访问日志中启用查询字符串。有没有办法让我也能从 IIS 日志中看到 SQL 语句?到目前为止,我还没有找到任何有用的东西,甚至不确定要搜索什么。提前感谢您的帮助!

如果查询参数中包含sql条语句,IIS会默认记录查询字符串。

日志格式为:

2020-08-21 05:33:50 127.0.0.1 GET /blog.aspx id=23 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/84.0.4147.135+Safari/537.36 - 500 51 1413 0

顺便说一下,IIS document 提供了一个关于如何防止 SQL 注入攻击的示例。可以参考一下。

<requestFiltering>
<filteringRules>
  <filteringRule name="SQLInjection" scanUrl="false" scanQueryString="true">
     <appliesTo>
        <clear />
        <add fileExtension=".asp" />
        <add fileExtension=".aspx" />
        <add fileExtension=".php" />
     </appliesTo>
     <denyStrings>
        <clear />
        <add string="--" />
        <add string=";" />
        <add string="/*" />
        <add string="@" />
        <add string="char" />
        <add string="alter" />
        <add string="begin" />
        <add string="cast" />
        <add string="create" />
        <add string="cursor" />
        <add string="declare" />
        <add string="delete" />
        <add string="drop" />
        <add string="end" />
        <add string="exec" />
        <add string="fetch" />
        <add string="insert" />
        <add string="kill" />
        <add string="open" />
        <add string="select" />
        <add string="sys" />
        <add string="table" />
        <add string="update" />
     </denyStrings>
     <scanHeaders>
        <clear />
     </scanHeaders>
  </filteringRule>