如何在IIS日志中查看SQL语句与查询参数?
提问内容
我正在开发一款用于分析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)"
为实现该功能我曾在Apache的访问日志中开启了查询字符串记录。请问IIS日志是否也支持查看SQL语句?我目前尚未找到有效参考资料,甚至不清楚该检索哪些关键词,提前感谢各位的帮助。
解答
- IIS日志支持记录查询参数内容,你可以通过配置实现和Apache相同的日志采集能力,用于SQL注入检测。首先将IIS日志格式设置为W3C扩展格式,在字段配置中勾选
cs-uri-query项,该字段会完整记录GET请求URL中?后的所有查询参数,和你在Apache中提取的query params作用完全一致,你可以直接从该字段解析疑似注入的SQL语句。 - IIS默认日志存储路径为
C:\inetpub\logs\LogFiles\,每个站点对应独立的日志文件夹,配置生效后新生成的日志会自动新增cs-uri-query字段内容,你之前针对Apache日志开发的注入检测规则,仅需调整日志字段解析逻辑适配W3C格式即可直接复用。 - 如果你需要检测POST请求中携带的SQL注入语句,默认IIS日志不会记录请求体内容,你需要额外配置IIS高级日志功能,或者配置请求筛选规则捕获请求体中的参数内容,才能覆盖POST请求的注入检测场景。
内容的提问来源于stack exchange,提问作者AKang123.
相关产品推荐
相关产品推荐

