Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Java脚本的Snort规则不起作用_Javascript_Rule_Snort - Fatal编程技术网

Javascript Java脚本的Snort规则不起作用

Javascript Java脚本的Snort规则不起作用,javascript,rule,snort,Javascript,Rule,Snort,我不理解为什么以下规则没有检测到内容“unescape”: 而以下工作: alert tcp any any -> any any (msg:"example 1";flow:to_client,established;file_data;content:"<script>";sid:20001) alert tcp any->any any(消息:“示例1”;流:到客户端,已建立;文件数据;内容:”;sid:20001) Snort似乎没有检测到脚本标记中的任何内容。 非

我不理解为什么以下规则没有检测到内容“unescape”:

而以下工作:

alert tcp any any -> any any (msg:"example 1";flow:to_client,established;file_data;content:"<script>";sid:20001)
alert tcp any->any any(消息:“示例1”;流:到客户端,已建立;文件数据;内容:”;sid:20001)
Snort似乎没有检测到脚本标记中的任何内容。
非常感谢。

在http预处理器中有一个使javascript正常化的选项。您需要确保已启用此功能,否则像unescape这样的功能将不是您所期望的。然而,您仍然应该看到“unescape”,所以我不完全确定这是您的问题。您可以在中的snort手册中了解如何配置此选项。以下是手册中有关此选项的片段:

“normalize_javascript此选项启用HTTP响应主体内的javascript规范化。在配置此选项之前,您应该选择配置选项extended\u response\u inspection。启用此选项后,Http Inspect通过搜索
标记在Http响应正文中搜索Javascript,并开始对其进行规范化。当Http Inspect看到没有类型的
标记时,它被视为javascript。javascript函数(如unescape、String.fromCharCode、decodeURI、decodeURIComponent)中的模糊数据将被规范化。在unescape/decodeURI/decodeURI组件中处理的不同编码为%XX,%uxxx, XX和 uxxxi。除了这些编码之外,Http Inspect还将检测连续的空格,并将其规范化为单个空格。Http Inspect还将规范化加号并连接字符串。规则选项file_data可用于从规则访问此规范化缓冲区。当Http Inspect中的混淆级别等于或大于2时,将生成具有SID 9和GID 120的预处理器警报。”

如果仍不起作用,则应检查以下各项:


配置中的服务器流深度可能设置得太低。默认值为300,因此如果“
”在前300个字节内,“unescape”在300个字节后,snort将不会检查那么远。请尝试将此值设置为65535。您应该能够通过让“
的内容匹配来测试这一点“,如果这不生成警报,则可能是该设置。

您的问题是什么?你似乎已经有了答案。我必须检测到“unescape”而不是“,”被检测到,但“unescape”不是。为什么?(显然,unescape函数位于标记内部。Thankserver_flow_depth设置为0。检测到and以及前后的标记,例如,但标记内部的所有内容都未检测到。THXD您是否有任何方法提供此流量的示例pcap?我不明白为什么,但禁用normalize_javascript它可以工作。
alert tcp any any -> any any (msg:"example 1";flow:to_client,established;file_data;content:"<script>";sid:20001)