下载文件,内容是这样的:

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图1

脚本语言,是html文件,修改后缀用浏览器打开得到:

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图2

是一个输入框,看来我们要先弄清楚这个文件的代码才行,审计代码可以看到最开始的下划线“”是一个变量,其内容是一个函数的代码,而最后又是一个eval(),也就是执行这个函数了,我们把eval改为alert,让程序弹框,得到了源码的非乱码形式:

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图3

修改过后:

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图4

把得到的代码整理一下就是:

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图5

代码审计:

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图6

^表示开头一定要匹配到be0f23,$表示结尾一定要匹配到e98aa,其它的只要匹配到就行,没有位置要求

于是我们构造e的值:be0f233ac7be98aa

html乱码脚本处理(攻防世界_NaNNaNNaNNaN-Batman) - 图7

直接将下面代码复制到控制台执行也能得到flag