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

555N5elkjEz') OR 570=(SELECT 570 FROM PG_SLEEP(15))--

Ответ нейросети
18 июня 2026 01:46

What you posted looks like an SQL injection payload, specifically a time-based blind payload for PostgreSQL.

Key idea (high level):

  • It attempts to terminate or disrupt the application’s normal SQL and inject a condition using OR.
  • It uses pg_sleep(15) to cause the database to sleep for 15 seconds, which lets an attacker infer whether the injection was successful by measuring how long the query takes to finish.
  • The -- at the end is a SQL comment marker to drop the rest of the original query, helping the attacker bypass some input validation.

Why this matters:

  • If the application constructs SQL by concatenating user input, this kind of payload can reveal vulnerabilities.
  • Time-based blind injections can let an attacker learn information about the database even when error messages aren’t shown.

Defensive measures (strongly recommended):

  • Use parameterized queries / prepared statements everywhere (do not concatenate user input into SQL).
  • Validate and sanitize inputs with allow-lists where appropriate.
  • Apply least privilege to the database account used by the application (no unnecessary rights; e.g., avoid using superuser for app queries).
  • Disable or restrict unsafe features like multi-statement execution if not needed.
  • Use an ORM or database library that auto-parameterizes queries.
  • Implement robust input validation and output encoding, and normalize error messages (don’t reveal details that aid an attacker).
  • Monitor and log query times and unusual patterns (e.g., repeated long delays, odd OR conditions, references to pg_sleep).
  • Consider WAF rules or database activity monitoring that can flag time-based or other injection patterns.

Exam prep tips (conceptual):

  • Distinguish between error-based, boolean-based, and time-based (blind) SQL injection. Time-based is a subtype of blind injection.
  • Time-based payloads rely on the database taking longer to respond under certain conditions; the attacker infers truth by timing, not by reading error messages.
  • Typical mitigations focus on parameterization, input validation, least privilege, and good error handling.

If you’re studying for an exam, a safe, constructive exercise is:

  • Review sample vulnerable code (in a lab) and rewrite it with parameterized queries.
  • Run a controlled test in a closed environment to observe how legitimate input vs. injection input affects response times, then compare with proper mitigations in place.

If you want, I can show a brief example of a vulnerable snippet and then a secure, parameterized version in a language of your choice (e.g., Python with psycopg2, Java with JDBC).