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

555-1)) OR 840=(SELECT 840 FROM PG_SLEEP(29.223))--

Ответ нейросети
18 июня 2026 04:53

It looks like a time-based blind SQL injection payload intended for PostgreSQL, using pg_sleep.

What the parts do:

  • 555-1)) is likely just part of the input being appended to an existing SQL query (closing some prior parentheses or structure).
  • OR 840=(SELECT 840 FROM PG_SLEEP(29.223)) adds a conditional that, if evaluated, will cause the database to sleep for 29.223 seconds before returning 840. The comparison 840 = (SELECT 840 FROM PG_SLEEP(...)) will therefore be true only after the delay.
  • -- comments out the rest of the original query, so the injected payload isn’t rejected by the remaining SQL.

Concept:

  • This is a time-based blind SQL injection technique. The attacker doesn’t directly see data from the database; instead they infer information by measuring how long the server takes to respond. If the response is delayed (due to pg_sleep), they deduce that the injected condition evaluated to true.
  • pg_sleep is a PostgreSQL function that pauses execution for the given number of seconds.

Defensive notes (exam and real-world relevance):

  • Do not rely on error messages; this is about timing. The goal is to determine truth values by response latency.
  • Key mitigations:
    • Use parameterized queries / prepared statements so user input is never concatenated into SQL strings.
    • Enforce least-privilege database accounts (no unnecessary superuser privileges).
    • Validate and sanitize inputs; constrain types (e.g., don’t allow free-form input to be injected into numeric fields or IDs).
    • Use ORM or query builders that separate code and data.
    • Disable or restrict dangerous functions (like pg_sleep) if not needed, or monitor their usage.
    • Implement input validation, WAF rules, and robust logging to detect unusual query patterns or long delays.
    • Regular security scans and code reviews for SQL injection vulnerabilities.

If you’re studying for an exam, you can frame the concept this way:

  • Time-based blind SQL injection uses database delay functions (e.g., pg_sleep in PostgreSQL) to infer information from conditional expressions.
  • A payload like the one shown is designed to create a time delay when the injected condition is true, allowing an attacker to deduce data bit by bit based on response times.

If you want, I can give a safe, high-level example question and answer you might see on an exam about time-based SQL injection and defenses.