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

(select(0)from(select(sleep(36.956)))v)/*'+(select(0)from(select(sleep(36.956)))v)+'"+(select(0)from(select(sleep(36.956)))v)+"*/

Ответ нейросети
17 июня 2026 22:34

That string is a time-based blind SQL injection payload. It’s designed to make the database sleep for many seconds so an attacker can detect a vulnerability by measuring response time, even when no data is returned.

What the payload does (high level):

  • It uses the database’s sleep/delay function (SLEEP(36.956)) inside a nested SELECT. This forces the database to pause execution for about 36.956 seconds.
  • The inner part (select(sleep(...))) is wrapped in a subquery and then a simple SELECT 0 is pulled from it. The net effect is a delay with no useful data returned.
  • The surrounding text with quotes, plus signs, and a C-style comment (/* ... */) is attempting to break out of an input string and comment out the rest of the original query so the injected code runs regardless of the application’s input handling. It’s a pattern you might see in attempts to bypass naive input validation.

Key concepts illustrated by this payload:

  • Time-based blind SQL injection: no data is directly returned; you infer vulnerability by how long the server takes to respond.
  • Use of SLEEP (or equivalent) to create measurable delays.
  • Attempts to terminate/exit a string literal and comment out the rest of the original query to maximize chances of successful injection across languages and frameworks.

Defensive, exam-relevant points:

  • Prevention is the goal: never build SQL by concatenating user input. Use parameterized queries (prepared statements) so user input is never interpreted as part of SQL.
    • Example (language-agnostic): query = "SELECT * FROM users WHERE username = ?"; bind username as a parameter.
  • Enforce least privilege on the DB user account your app uses. It shouldn’t have rights to run dangerous functions or access unnecessary tables.
  • Use input validation and escaping only as a supplementary line of defense, not as the primary protection.
  • Disable or tightly control dangerous functions if possible (e.g., in some DBs you can restrict or monitor use of SLEEP, UDFs, FILE, etc.).
  • Consider application-layer protections: ORM with parameter binding, input whitelisting, and avoiding dynamic SQL altogether.
  • Logging and monitoring: watch for unusual delays, repeated attempts with payload-style patterns, and queries invoking sleep-like functions.
  • In a lab or test, use safe, ethical testing practices: only on systems you own or have explicit permission to test; prefer structured vulnerability assessment tools and test suites rather than ad-hoc payloads.

If you’re studying for an exam and want to practice defensively, I can:

  • Show concrete examples of secure vs. insecure code in a few common languages.
  • Walk through how a prepared-statement approach prevents this kind of payload.
  • Provide a short set of practice questions about time-based vs. error-based SQL injection and how to mitigate them.