如何通过后端日志审计 HTML 在线运行环境中的恶意请求序列

雨丽君_3745

雨丽君_3745

2026-06-12

513人浏览

原创

应重点分析access.log中被拦截的高频异常请求,包括含未编码标签的400请求、短时间多次含xss特征的get/post请求、超大content-length导致500的请求及非常规user-agent等,通过awk+grep快速筛查并关联时间窗口识别试探链。

如何通过后端日志审计 html 在线运行环境中的恶意请求序列

直接看 access.log 里带 /run-html 的 400/500 请求

HTML 在线运行服务(比如用户提交 <script>alert(1)</script> 让后端渲染)一旦被滥用,攻击者通常会连续试探多种 payload。这些请求不会进业务逻辑层——网关或中间件已拦截,但它们全都会记入 Nginx 或 OpenResty 的 access.log。重点不是查“成功执行”的请求,而是查被拒绝却高频出现的异常路径。

典型线索包括:

  • /run-html?html=<script> 这类 URI 中含未编码标签的 400 请求</script>
  • 同一 IP 在 1 分钟内发起 >5 次含 onerror=、javascript: 的 GET 请求
  • POST 到 /run-html 且 Content-Length > 10KB 但响应状态为 500(可能触发 Lua body 扫描超时或正则回溯)
  • User-Agent 是 curl/7.68.0 或空值,且无 Referer

用 awk + grep 快速提取可疑 IP 和 payload 片段

别打开日志文件手动翻。生产环境日志量大,直接命令行筛:

html-deploy
html-deploy

使用 htmlcode.fun 将 HTML 内容或文件部署到网页,适用于用户要求“部署到网页”“托管此 HTML”“生成此前端...的实时链接”等场景。

下载
awk '$9 ~ /^(400|403|500)$/ && $7 ~ /\/run-html/' /var/log/nginx/access.log | \
  grep -E '(<script awk sort uniq head><p>这行命令做了三件事:<ul><li>先过滤出状态码为 <code>400/<code>403/<code>500 且路径含 <code>/run-html 的行<li>再匹配常见 XSS 片段(注意:正则写法要避开过度匹配,比如 <code>alert\( 而不是 <code>alert)<li>最后按 IP+路径聚合计数,取 Top 20<p>如果看到某 IP 高频触发 <code>?html=%3Cimg%20onerror%3D...,基本可判定是自动化扫描器。<H3>关联时间窗口,识别多阶段试探行为<p>单次 400 不代表攻击,但连续行为才有意义。比如一个 IP 先发 <code>/run-html?html=<script>(被拒),2 秒后发 <code>/run-html?html=<img+src=x+onerror=alert(1)>(又被拒),再过 3 秒 POST 含 base64 编码 payload 的 JSON——这就是典型试探链。<p>用以下命令提取某 IP 在 60 秒内的全部相关请求:<pre class="brush:php;toolbar:false;">awk -v ip="192.168.1.100" '$1 == ip && $7 ~ /\/run-html/' /var/log/nginx/access.log | \
  awk '{gsub(/\[|\]/,"",$4); print $4,$9,$7}' | \
  sort -k1,1</script>

关键点:

  • $4 是原始时间字段(如 [12/Jun/2026:14:22:01),需先清理方括号才能排序
  • 排序后肉眼扫时间差,>5 秒间隔一般不算连贯试探;≤3 秒且 payload 复杂度递增,大概率是工具自动打点
  • 不要只看状态码——有些 payload 会故意触发 500(比如超长字符串导致 Lua 字符串匹配栈溢出),这类更危险

注意日志里隐藏的绕过尝试

攻击者知道你在查 <script></script>,所以会用变形:

  • URL 编码:%3Cscript%3E 或双写:<script>
  • 大小写混用:<script></script>(Nginx 默认正则不区分大小写,但若你用了 ~ 而非 ~* 就可能漏掉)
  • 利用注释绕过:<!-- --><script></script> 或 <svg onload="..."></svg>(svg 不在基础黑名单里)

所以日志审计不能只依赖固定关键词。真正难搞的是那些没触发拦截、却悄悄进了后端的请求——它们可能状态码是 200,但 response body 里有 eval( 或 document.write。这时候必须结合应用层日志(如 Spring Boot 的 logback 输出)交叉比对,而不仅是 Nginx access log。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx html

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2303

5

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6070

13

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5406

10

html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

5655

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3212

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

2890

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

2919

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4739

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

2861

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习