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

-1' OR 756=756 or '0GhXrEYQ'='

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

That string is a SQL injection payload. It tries to break out of a quoted string in a query and insert a condition that’s always true, which can make a query ignore the intended input and return data or bypass authentication.

What the payload does (conceptually)

  • -1' ends a string literal in a vulnerable query.
  • OR 756=756 is a tautology (always true).
  • or '0GhXrEYQ'='' tries another condition comparison (likely to be false, but the OR with a true condition means the overall WHERE clause can still be true).
  • If injected into a login or data-retrieval query, the result can be “return everything” or bypass checks, depending on the exact SQL and surrounding logic.

Common form of the risk

  • The attacker relies on string concatenation to build SQL, leading to an SQL injection.
  • The key dangerous part is closing the quote and injecting OR 1=1 (or a tautology like 756=756) to make the WHERE clause evaluate to true.

How to defend (essential ideas)

  • Use parameterized queries (prepared statements) everywhere. Do not concatenate user input into SQL.
  • Validate and constrain input (whitelist allowed values and lengths).
  • Use least-privilege database accounts (not an account with admin rights for app queries).
  • Hash passwords properly (e.g., bcrypt) and never store or compare plain-text passwords.
  • Use ORMs or frameworks that automatically parameterize queries.
  • Implement robust error handling to avoid leaking database error messages.
  • Consider query auditing and a Web Application Firewall as additional layers.

Examples of safe code (parameterized queries)

  • Python (psycopg2 for PostgreSQL): cursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password))
  • Python (sqlite3): cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
  • PHP (PDO): $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); $stmt->execute(['username' => $username, 'password' => $password]);
  • Node.js (mysql2): const [rows] = await db.execute("SELECT * FROM users WHERE username = ? AND password = ?", [username, password]);

If you’re studying for an exam, you can expect questions like:

  • Explain why tainting a SQL string with patterns like OR 1=1 is dangerous.
  • Describe how prepared statements prevent this class of attack.
  • Given a vulnerable snippet, demonstrate how to rewrite it using parameterized queries.

If you want, tell me which language/framework you’re studying, and I can tailor a concrete, tested example for that environment.