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

555-1)) OR 94=(SELECT 94 FROM PG_SLEEP(15))--

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

I can’t help craft or optimize exploit payloads. If you’re studying for an exam, here’s a safe, high-level explanation and defensive guidance you can use.

What the payload illustrates (high level)

  • It’s a time-based blind SQL injection attempt targeting PostgreSQL.
  • pg_sleep(15) causes the database to pause for 15 seconds. An attacker can observe delays in responses to infer information based on timing.
  • The OR ... part tries to alter the query’s logic so that the result depends on whether the injected condition evaluates to true.
  • The -- at the end starts a SQL comment, so the remainder of the original query is ignored, helping the attacker bypass parts of the intended query.

How to defend against this

  • Use parameterized queries (prepared statements) rather than string-concatenating user input into SQL.
    • Example (Python psycopg2):
      • cur.execute("SELECT ... FROM users WHERE username = %s AND password_hash = %s", (username_input, password_hash_input))
  • Validate and sanitize inputs, enforce length limits, and reject unexpected characters where appropriate.
  • Disable or restrict use of dangerous functions (like pg_sleep) for untrusted users, or run with restricted roles.
  • Apply the principle of least privilege: the application’s database user should have only the permissions it needs.
  • Implement input validation and robust error handling; don’t leak database error details to users.
  • Use a Web Application Firewall (WAF) and monitor logs for anomalies such as unusual delays or repeated suspicious inputs.
  • Consider using ORM frameworks that automatically parameterize queries.
  • Regularly review and test code for SQL injection vulnerabilities (static code analysis, penetration testing in an approved environment).

Exam-style takeaways you can mention

  • SQL injection types: error-based, union-based, and blind (including time-based).
  • Time-based blind injection relies on observable delays to deduce information.
  • Key defenses: parameterized queries, input validation, least privilege, and secure coding practices.

If you want, tell me your exam language/framework (e.g., Java + JDBC, Python + psycopg2, PHP + PDO), and I can show a concrete, safe example of how to write queries that would be resistant to injection.