叮咚,现场运维来消息了,说项目被检测到有高危漏洞,要求修复,以为就是jar安全漏洞,升级就完事了,就让发过来看看,亚麻袋住了,“XSS检测绕过(UTF-7编码绕过)”,从没见过啊,还是UTF-7。 我电脑上的编辑器都没找到有支持UTF-7编码的,首先想到的,把这些信息丢给DeepSeek帮我分析看看,问Ai怎么防御?结果没有我想要的方案。 然后去网络搜索下吧,看看大家前辈们有没解决过,果然有相关文件,但是都没给出具体解决方案,不过也有所收获,得到了一段UTF-7编码的XSS注入参数(如果Get参数请求,记得对参数URL编码)+ADw-script +AD4-alert('UTF-7 XSS')+ADw-/script+AD4-进入正题,结合项目代码,想到可以用Filter过滤器对参数拦截,那就动手来吧,以项目SpringCloud Zuul为例# xss regexxss: enable: true regexes: # UTF-7编码绕过 - "(?
UTF-7 编码在应用程序中不再广泛使用,并且许多规范现在在交换中禁止其使用。 它偶尔还会在不期望遇到 UTF-7 编码数据的应用程序中用作攻击途径。 如果要将 Encoding 实例与 Encoding.UTF7 进行比较: 可转为考虑针对众所周知的 UTF-7 代码页(即 65000)执行检查。
utf-8的方法: 依次点击options,preferences,unicode, 把enable utf-8 format for modes改为*;UTF-8;EDT;INI|UNICODE;UTF -7;ACP;OEM 而enable ansi format for modes改为ACP|UNICODE;UTF-8;UTF-7;OEM 若不使用utf-8为缺省编码: 把enable utf- 8 format for modes改为UTF-8;EDT;INI|UNICODE;UTF-7;ACP;OEM 而enable ansi format for modes改为*;ACP|UNICODE; UTF-8;UTF-7;OEM 当然也可以全加上*; : 把enable utf-8 format for modes改为*;UTF-8;EDT;INI|UNICODE;UTF-7;ACP;OEM 而enable ansi format for modes改为*;ACP|UNICODE;UTF-8;UTF-7;OEM ?
反射型、存储型、DOM型、突变型、UTF-7 XSS、MHTML XSS...什么是 XSS?XSS是前端安全中最常见的问题之一 什么是XSS? VBScript XSS 其中UTF-7、MHTML XSS、CSS XSS、VBScript XSS 只在低版本的IE中可以生效,现在应该基本不可见了,不过还是给大家介绍下。 UTF-7 XSS 在以下两种场景可以在低版本IE浏览器触发UTF-7 XSS: meta未指定编码,特定版本IE发现内容存在UTF-7编码内容,则自动以UTF-7解码处理 指定编码为UTF-7 UTF -7 XSS与普通XSS的区别就在于构造的Payload是UTF-7编码的,而基于上面两个场景的特性,低版本IE浏览器会自动解码,于是就可以产生XSS。 上图中,a变量的值就是UTF-7 XSS 的Payload,实际上是正常Payload UTF-7编码后的结果。
其他类型XSS 上面是大家经常听到的XSS类型,其实细分下来还有其他的XSS类型: mXSS 突变型XSS UXSS 通用型XSS Flash XSS UTF-7 XSS MHTML XSS CSS XSS VBScript XSS 其中UTF-7、MHTML XSS、CSS XSS、VBScript XSS 只在低版本的IE中可以生效,现在应该基本不可见了,不过还是给大家介绍下。 UTF-7 XSS 在以下两种场景可以在低版本IE浏览器触发UTF-7 XSS: meta未指定编码,特定版本IE发现内容存在UTF-7编码内容,则自动以UTF-7解码处理 指定编码为UTF-7 UTF -7 XSS与普通XSS的区别就在于构造的Payload是UTF-7编码的,而基于上面两个场景的特性,低版本IE浏览器会自动解码,于是就可以产生XSS。 上图中,a变量的值就是UTF-7 XSS 的Payload,实际上是正常Payload UTF-7编码后的结果。
但是前面也说了,当我们传递 PHP 的 payload 时,因为我们传过去的内容会经过 html 编码,所以我们需要用 UTF-7 来绕过: php_value include_path "+ADw? -7 编码格式绕过 这种方法我们在前文中已经涉及到了,比如我们在一个图片中写入 UTF-7 编码格式的 Webshell: // images.png+ADw? +AD4- 然后我们使用 auto_append_file 将其包含进来并设置编码格式为 UTF-7 就行了: php_value auto_append_file images.pngphp_flag zend.multibyte 1php_value zend.script_encoding "UTF-7" 当然,也可以使用 php://filer 伪协议进行 UTF-7 与 UTF-8 之间的转换 +AD4- 同理,除了使用 UTF-7 外,UTF-16、UTF-32 都可以使用,方法都是一样的。
portswigger-labs.net"> 特殊标签 重定向到其他域 <meta http-equiv="refresh" content="0; url=//portswigger-labs.net"> 元字符集属性UTF -7 <meta charset="<em>UTF-7</em>" /> +ADw-script+AD4-alert(1)+ADw-/script+AD4- 元字符集UTF-7 <meta http-equiv="Content-Type " content="text/html; charset=<em>UTF-7</em>" /> +ADw-script+AD4-alert(1)+ADw-/script+AD4- UTF-7 BOM字符(必须在文档开头 )1 +/v8 +ADw-script+AD4-alert(1)+ADw-/script+AD4- UTF-7 BOM字符(必须在文档开头)2 +/v9 +ADw-script+AD4-alert(1) +ADw-/script+AD4- UTF-7 BOM字符(必须在文档开头)3 +/v+ +ADw-script+AD4-alert(1)+ADw-/script+AD4- UTF-7 BOM字符(必须在文档开头
error_log /var/www/html/shell.php php_value include_path " 但是上面的文件内容时<会先经过html编码变为<后才被写入日志文件,想要饶过的话可以使用UTF 在内的shell文件内, 然后再通过预加载文件设置执行伪协议解码后的shell代码 方法一: php伪协议解析UTF-7(还有base64或其它解码方法也行) php_value auto_append_file php://filter/convert.base64-decode/resource=images.png" # images.png 中是经过base64编码后的Webshell 方法二: 指定UTF php_value auto_append_file images.png php_flag zend.multibyte 1 php_value zend.script_encoding "UTF php_value auto_append_file .htaccess php_flag zend.multibyte 1 php_value zend.script_encoding "UTF
50225 韩文(ISO) 50932 日文(自动选择) 50949 韩文(自动选择) 51932 日文(EUC) 51949 韩文(EUC) 52936 简体中文(HZ) 65000 Unicode (UTF
50225 韩文(ISO) 50932 日文(自动选择) 50949 韩文(自动选择) 51932 日文(EUC) 51949 韩文(EUC) 52936 简体中文(HZ) 65000 Unicode (UTF
对所有参数和提交的内容都要严格判断和过滤 (1)XSS的一些基本转义 html_escape javascript_string_escape url_escape css_string_escape (2)设置字符编码 避免如 utf
new RunHelper(jarname, "1");//新编译jar包并push到手机上 setMobileInputMethodToUtf();//设置手机输入法为UTF
UTF-7 的代码页是65000,UTF-8 的代码页是65001。 用来给 UNICODE 字符集编码的标准有很多种,比如:UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig 等。 5.2 UTF-7、UTF-8和UTF-16 在Unicode里,所有的字符被一视同仁。 5.2.3 UTF-7 UTF-7 (7-位元 Unicode 转换格式(Unicode Transformation Format,简写成 UTF)) 是一种可变长度字元编码方式,用以将 Unicode UTF-7并非Unicode标准之一。想要详细了解的可以查阅相关资料。
57009 x-iscii-ma ISCII Malayalam 57010 x-iscii-gu ISCII Gujarati 57011 x-iscii-pa ISCII Punjabi 65000 utf -7 Unicode (UTF-7) 65001 utf-8 Unicode (UTF-8)
韩文(自动选择) 51932 日文(EUC) 51949 韩文(EUC) 52936 简体中文(HZ) 65000 Unicode (UTF
mXSS 突变型XSS UXSS 通用型XSS Flash XSS UTF-7 XSS MHTML XSS CSS XSS VBScript XSS XSS防御 一般来说,XSS防御就是不信任任何用户数据的数据
在网上学习,知道了其实编码规则是由许多的代码页决定的,但vs2005帮助里只提到几种编码:utf-8,utf-7,unicode等,基本都是多字节的。
,%3C%3Fphp+phpinfo%28%29%3B #php_value auto_append_file /evil-code.txt 4.1.6.4. code execution with UTF _encoding "UTF-7" php_value auto_append_file .htaccess #+ADw?php phpinfo()+ADs 4.1.6.5.
UTF-7 这咱编码通常用于旧的系统,那时的系统是用7位值表示。目前已经被Unicode协淘汰。在CLR中对应UTF7Encoding。 ————————————————
,%3C%3Fphp+phpinfo%28%29%3B #php_value auto_append_file /evil-code.txt 4.1.6.4. code execution with UTF _encoding "UTF-7" php_value auto_append_file .htaccess #+ADw?php phpinfo()+ADs 4.1.6.5.