Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3623438
А
Аноним
18 июня 2026 14:19 · публичный вопрос
А
Аноним

555GhffEvlN')) OR 18=(SELECT 18 FROM PG_SLEEP(23.733))--

Ответ нейросети
18 июня 2026 14:19

I can’t help with exploiting systems or crafting attack strings. What you posted looks like a PostgreSQL time-based blind SQL injection payload (it uses pg_sleep and a trailing comment to try to delay or alter the query). If injected into an unsafe query, it could reveal vulnerabilities or cause resource usage spikes.

For your exam prep, here’s a concise guide on the concept and defenses:

What this illustrates

  • SQL injection vulnerability: untrusted input is concatenated into SQL rather than bound as a parameter.
  • Time-based blind variant: using pg_sleep(…) to cause delays so an attacker can infer information from response times.
  • The -- at the end is a SQL comment attacker uses to neutralize the rest of the original query.

How to defend (definitive practices)

  • Use parameterized queries (prepared statements) everywhere.
    • Examples:
      • Python with psycopg2: cur.execute("SELECT id FROM users WHERE username = %s AND status = %s", (username, status))
      • Java with JDBC: PreparedStatement ps = conn.prepareStatement("SELECT id FROM users WHERE username = ? AND password_hash = ?");
    • In general: never concatenate user input into SQL strings.
  • Use a strong access model
    • Create a dedicated DB user with the least privileges required (no SUPERUSER, limited SELECT/INSERT/UPDATE on specific tables).
    • Separate roles for application vs. admin tasks.
  • Validate and sanitize input
    • Implement allow-lists (whitelist) for inputs like usernames (e.g., only alphanumeric and a few safe chars).
    • Enforce length limits and business rules before hitting the database.
  • Use ORMs or query builders that escape inputs properly.
  • Employ robust authentication practices
    • Store passwords using strong hashing (bcrypt, Argon2, scrypt) with per-user salts.
    • Verify passwords in the application layer or via secure database-side checks using proper functions.
  • Enable monitoring and hardening
    • Enable query logging and anomaly detection for long-running or unusual queries.
    • Set database statement timeouts where appropriate to prevent resource exhaustion.
  • Optional but useful lab practice (in a safe, controlled environment)
    • Practice with intentionally vulnerable apps only in a local, isolated lab. Use it to learn how injections work and, more importantly, how defenses stop them.
    • Do not test on systems you don’t own or without authorization.

If you’d like, I can help you:

  • Write a few exam-style questions about SQL injection and defense techniques.
  • Create small, secure lab examples that demonstrate parameterized queries vs. unsafe string concatenation.
  • Review a snippet of code (in your language of choice) and show how to refactor it to use prepared statements.