diff --git a/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md b/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md
index ae4acc822..d358eb767 100644
--- a/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md
+++ b/src/binary-exploitation/rop-return-oriented-programing/srop-sigreturn-oriented-programming/srop-arm64.md
@@ -32,7 +32,7 @@ p = process(binary.path)
p.send(bytes(frame))
p.interactive()
```
-## bof przykład
+## bof example
### Kod
```c
@@ -103,7 +103,7 @@ payload += bytes(frame)
p.sendline(payload)
p.interactive()
```
-## bof przykład bez sigreturn
+## przykład bof bez sigreturn
### Kod
```c
@@ -136,7 +136,7 @@ W sekcji **`vdso`** można znaleźć wywołanie **`sigreturn`** w przesunięciu
-Dlatego, jeśli zostanie wycieknięty, możliwe jest **użycie tego adresu do uzyskania dostępu do `sigreturn`**, jeśli binarka go nie ładuje:
+Dlatego, jeśli zostanie ujawnione, możliwe jest **użycie tego adresu do uzyskania dostępu do `sigreturn`**, jeśli binarka go nie ładuje:
```python
from pwn import *
@@ -189,9 +189,9 @@ python3 -m ROPGadget --binary /proc/$(pgrep srop)/mem --only "svc #0" 2>/dev/nul
# With rp++ ≥ 1.0.9 (arm64 support)
rp++ -f ./binary --unique -r | grep "mov\s\+x8, #0x8b" # 0x8b = __NR_rt_sigreturn
```
-Oba narzędzia rozumieją **AArch64** kodowania i będą wyświetlać kandydatów na sekwencje `mov x8, 0x8b ; svc #0`, które mogą być użyte jako *gadget SROP*.
+Oba narzędzia rozumieją **AArch64** encodings i będą wyświetlać kandydatów na sekwencje `mov x8, 0x8b ; svc #0`, które mogą być użyte jako *SROP gadget*.
-> Uwaga: Gdy binaria są kompilowane z **BTI**, pierwsza instrukcja każdego ważnego celu pośredniego skoku to `bti c`. Trampoliny `sigreturn` umieszczone przez linker już zawierają poprawny punkt lądowania BTI, więc gadget pozostaje użyteczny z kodu nieuprzywilejowanego.
+> Uwaga: Gdy binaria są kompilowane z **BTI**, pierwsza instrukcja każdego ważnego celu pośredniego jest `bti c`. Trampoliny `sigreturn` umieszczone przez linker już zawierają poprawny BTI landing pad, więc gadget pozostaje użyteczny z kodu nieuprzywilejowanego.
## Łączenie SROP z ROP (pivot przez `mprotect`)
@@ -215,7 +215,7 @@ Linux 5.16 wprowadził surowszą walidację ramek sygnałów przestrzeni użytko
* Zarezerwowane słowo w `struct rt_sigframe` musi być zerowe.
* Każdy wskaźnik w rekordzie *extra_context* jest wyrównany i wskazuje wewnątrz przestrzeni adresowej użytkownika.
-`pwntools>=4.10` automatycznie tworzy zgodne ramki, ale jeśli budujesz je ręcznie, upewnij się, że zainicjalizujesz *reserved* na zero i pomiń rekord SVE, chyba że naprawdę go potrzebujesz—w przeciwnym razie `rt_sigreturn` dostarczy `SIGSEGV` zamiast zwracać.
+`pwntools>=4.10` automatycznie tworzy zgodne ramki, ale jeśli budujesz je ręcznie, upewnij się, że zainicjalizujesz *reserved* na zero i pomiń rekord SVE, chyba że naprawdę go potrzebujesz—w przeciwnym razie `rt_sigreturn` zwróci `SIGSEGV` zamiast powrotu.
Zaczynając od mainstreamowego Androida 14 i Fedory 38, przestrzeń użytkownika jest kompilowana z włączonym **PAC** (*Pointer Authentication*) i **BTI** domyślnie (`-mbranch-protection=standard`). *SROP* sam w sobie nie jest dotknięty, ponieważ jądro bezpośrednio nadpisuje `PC` z utworzonej ramki, omijając uwierzytelniony LR zapisany na stosie; jednak każdy **kolejny łańcuch ROP**, który wykonuje pośrednie skoki, musi skakać do instrukcji włączających BTI lub adresów PAC. Pamiętaj o tym przy wyborze gadżetów.
diff --git a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md
index bc308888e..bde75a774 100644
--- a/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md
+++ b/src/pentesting-web/xss-cross-site-scripting/iframes-in-xss-and-csp.md
@@ -45,7 +45,7 @@ var secret = "child secret"
alert(parent.secret)
```
-Jeśli uzyskasz dostęp do poprzedniego html za pomocą serwera http (takiego jak `python3 -m http.server`), zauważysz, że wszystkie skrypty będą wykonywane (ponieważ nie ma CSP, które by temu zapobiegało). **Rodzic nie będzie mógł uzyskać dostępu do zmiennej `secret` wewnątrz żadnego iframe** i **tylko iframes if2 i if3 (które są uważane za tej samej witryny) mogą uzyskać dostęp do sekretu** w oryginalnym oknie.\
+Jeśli uzyskasz dostęp do poprzedniego html za pomocą serwera http (takiego jak `python3 -m http.server`), zauważysz, że wszystkie skrypty będą wykonywane (ponieważ nie ma CSP, które by temu zapobiegało). **Rodzic nie będzie mógł uzyskać dostępu do zmiennej `secret` wewnątrz żadnego iframe** i **tylko iframes if2 i if3 (które są uważane za tej samej witryny) mogą uzyskać dostęp do secret** w oryginalnym oknie.\
Zauważ, że if4 jest uważany za mający `null` origin.
### Iframes z CSP
@@ -53,8 +53,8 @@ Zauważ, że if4 jest uważany za mający `null` origin.
> [!TIP]
> Proszę zauważyć, że w poniższych obejściach odpowiedź na stronę w iframe nie zawiera żadnego nagłówka CSP, który zapobiega wykonaniu JS.
-Wartość `self` dla `script-src` nie pozwoli na wykonanie kodu JS przy użyciu protokołu `data:` lub atrybutu `srcdoc`.\
-Jednak nawet wartość `none` CSP pozwoli na wykonanie iframe'ów, które umieszczają adres URL (pełny lub tylko ścieżkę) w atrybucie `src`.\
+Wartość `self` dla `script-src` nie pozwoli na wykonanie kodu JS używając protokołu `data:` lub atrybutu `srcdoc`.\
+Jednak nawet wartość `none` CSP pozwoli na wykonanie iframe, które umieszczają URL (pełny lub tylko ścieżkę) w atrybucie `src`.\
Dlatego możliwe jest obejście CSP strony za pomocą:
```html
@@ -77,7 +77,7 @@ src="data:text/html;charset=utf-8,%3Cscript%3Evar%20secret='if4%20secret!';alert
```
Zauważ, że **poprzedni CSP zezwala tylko na wykonanie skryptu inline**.\
-Jednak **wykonane zostaną tylko skrypty `if1` i `if2`, ale tylko `if1` będzie miał dostęp do tajemnicy rodzica**.
+Jednakże, **tylko skrypty `if1` i `if2` będą wykonywane, ale tylko `if1` będzie miał dostęp do tajemnicy rodzica**.
.png>)
@@ -107,7 +107,7 @@ app.run()
Społeczność badawcza nadal odkrywa kreatywne sposoby wykorzystywania iframe do pokonywania restrykcyjnych polityk. Poniżej znajdują się najbardziej znaczące techniki opublikowane w ciągu ostatnich kilku lat:
-* **Dangling-markup / named-iframe data-exfiltration (PortSwigger 2023)** – Gdy aplikacja odzwierciedla HTML, ale silny CSP blokuje wykonanie skryptów, można nadal wyciekować wrażliwe tokeny, wstrzykując *dangling* `