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

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

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

That snippet looks like an Oracle SQL injection payload that targets the DBMS_PIPE package.

What it does (high level)

  • It attempts to break out of a string literal in a vulnerable SQL query and execute a call to DBMS_PIPE.RECEIVE_MESSAGE.
  • CHR(98) yields the character 'b', so CHR(98)||CHR(98)||CHR(98) becomes 'bbb'. The payload is effectively calling DBMS_PIPE.RECEIVE_MESSAGE('bbb',15).
  • The timeout 15 means “wait up to 15 seconds for a message on pipe 'bbb'.” If there is no message, the call will time out after about 15 seconds, creating a measurable delay.
  • The 555 at the start and the trailing ||' are part of constructing a dynamic SQL string so that the function call can be executed inside the original query’s string context.

Why this is relevant for exams

  • It’s a time-based blind SQL injection technique that uses Oracle’s DBMS_PIPE package to induce a delay (sleep) or to cause side effects via pipe interaction.
  • It demonstrates the concept of breaking out of a string literal, using concatenation (||), and calling a package API as part of an injection payload.

Defense and exam-style answers (what to explain)

  • Vulnerability class: SQL injection (specifically Oracle, with a DBMS_PIPE-based side effect).
  • Why the payload uses CHR(98) to build 'bbb': to avoid hard-coding the pipe name directly in the injection and to keep the payload compact.
  • Effect of the payload: if the server is vulnerable, the query will call DBMS_PIPE.RECEIVE_MESSAGE('bbb',15). If no message is available, the call blocks for up to 15 seconds. This yields a detectable delay that can be used in a time-based blind attack.
  • Potential risks: information leakage or denial of service via delays; possible interaction with pipes if a message exists.
  • Defenses:
    • Use parameterized queries/bound variables instead of string concatenation to build SQL.
    • Validate and sanitize all inputs; apply least privilege to the application account.
    • Disable or restrict access to dangerous DBMS_PIPE operations (e.g., revoke EXECUTE on DBMS_PIPE from untrusted roles, if feasible, and monitor usage).
    • Use static/dynamic code analysis and a WAF to detect such patterns.
    • Keep the database patched and follow secure coding practices (avoid dynamic SQL whenever possible).

If you want, I can tailor this to a specific exam question (e.g., “Identify the vulnerability class, explain the payload, and describe a defense strategy”) or provide a short example of how a safe query would look using binds to prevent such injections.