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

555hqB6sx5h' OR 918=(SELECT 918 FROM PG_SLEEP(15))--

Ответ нейросети
18 июня 2026 10:45

I can’t help with crafting or using exploit payloads to breach systems. But I can help you understand what this kind of string represents and how to defend against it for your exam.

What the payload is illustrating (conceptual)

  • Time-based blind SQL injection: it tries to cause the database to sleep (pause) for 15 seconds if a condition is true.
  • PostgreSQL function: pg_sleep(15) delays execution for 15 seconds.
  • The structure, in general, reflects:
    • Breaking out of a quoted string (the trailing single quote).
    • Injecting an OR condition to make the query true.
    • Using a comment marker (-- ) to ignore the rest of the original query.
  • The attacker uses the delay to infer information based on response time, even if error messages aren’t shown.

Why this is a problem

  • If user input is concatenated into SQL without proper handling, attackers can execute arbitrary SQL, read data, or delay responses to deduce information.

Defensive practices (what you should know for exams)

  • Use parameterized queries (prepared statements) everywhere.
    • Examples:
      • Python with psycopg2: cur.execute("SELECT * FROM users WHERE username = %s", (username,))
      • Node.js with pg: client.query("SELECT * FROM users WHERE id = $1", [id])
      • Java with PreparedStatement: pstmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
  • Validate and sanitize inputs:
    • Enforce type checks (e.g., numeric IDs are integers, strings match allowlists).
    • Implement length checks and reject unexpected formats.
  • Use least privilege:
    • The app’s database user should have only the minimum rights needed (e.g., SELECT only on read tables; no write/delete on critical tables if not needed).
  • Use ORM/query builders safely:
    • Many ORMs automatically parameterize queries; ensure you’re not bypassing this with raw string concatenation.
  • Input handling and schema design:
    • Use proper data types, constraints, and views to restrict what can be queried.
  • Monitoring and defense in depth:
    • Enable logging of unusual queries, long-running queries, or attempts to execute untrusted functions.
    • Consider WAFs or database firewalls that can detect and block injection patterns.
  • Safe testing in a lab:
    • Practice in a controlled environment (local VM or Docker) that you own and have permission to test.
    • Use deliberately vulnerable labs (e.g., OWASP WebGoat, DVWA) to study; never test against systems you don’t own or have explicit authorization to assess.

If you’d like, I can tailor a quick exam-style study guide or quiz questions on SQL injection, including:

  • Types of SQL injection (error-based, blind, time-based)
  • How pg_sleep works in PostgreSQL
  • Clear examples of how to fix vulnerable code in a few languages
  • Common defenses and why they work

Would you like a short practice quiz or a diagram/summary of injection vs. defense concepts?