中国网络渗透测试联盟

标题: MySQL盲注最全 实例讲解 详解 [打印本页]

作者: admin    时间: 2013-9-25 13:52
标题: MySQL盲注最全 实例讲解 详解
本文实例来自习科论坛交流三群。这个注入点可以使用错误回显注入来爆数据,本文出于讲解的目的,使用更麻烦的盲注。
5 X5 x2 H. z# A! d阅读本文,需要有一点点SQL基础。盲注理解起来其实非常简单,就是做起来非常费劲+ x2 n! A% t. L; g; t7 r9 A9 j4 K
作者:YoCo Smart: h( `* N/ F$ E. a
来自:习科信息技术 - http://BlackBap.Org
8 t+ P+ L, u! \) C  D5 r8 S0 [  _我们先来看注入点,是一个B2B网站建站公司: 8 g# f# n3 _' o! p4 L
复制代码
. ?, t+ w' L* s% `错误提示已经很明了了。我们看一下注入页面的代码(有删改):
1 `$ f' h6 f5 @7 ~9 @复制代码
8 f, {, Z& [+ S以GET方式取值的变量js_user虽然没有过滤被直接带入了数据库执行,并且MySQL也执行了,但是并没有显示数据库的任何信息,而是判断是否符合) K* e) L. `: R; X' b2 j
那么我们先从union的盲注来看吧。4 e& V* Q2 A9 \. q  B; I4 M; k; `
先看版本:
4 _  j, V: L5 I/ w: Z* a, H0 c复制代码
; y* n9 ^- h& e' @/ ?这个时候我们来看看原来的代码中的SQL语句是怎么执行的:
5 [* I5 V8 W4 [7 p- [复制代码) I* a$ I& a2 g) @9 H% [$ x( N  ?
因为执行成功,所以不符合if(!$num)这个条件,回显“用户名已被注册”,那么版本为5成立
) e" x! i% v8 u再来看database()的数据: ( b6 z: g8 [% G/ s
复制代码
# U1 i2 n' C* Z2 G/ M- h) ulength()函数是计算括号中数据的长度,回显为纯数字,可以用大于小于和等于号来判断是否正确。, j" b. X; T( P- ^7 `
这里要注意看一下left()函数中的数字变化,关于left()函数,可以自行参考MySQL手册。( B( B2 h, h% c# m9 [+ f) Z
再来看一点简单的判断句: 7 I: S$ _' Q/ o/ L; u) a; W
复制代码. b) N2 R1 G7 y# p5 @
这个时候length()函数中的pass是猜测的,当然是建立在猜测正确的基础上。: R# t7 m9 ]* a8 i( \
这里要说的是,pass和前面select后的userid同属一个表段demo_b2b_admin,所以不需要再带select语句
, A( D( l; R! `5 l6 p. o那么这里就能得到: 5 R9 D( w2 h1 f' b; d( U: [9 [+ u
复制代码0 \# ~! _: O$ u& T3 H; k( Q1 Z6 v
这样,猜数据的方法你肯定是懂了
6 p% p5 P2 v3 D& k$ e' S. J
( R3 F" E7 x4 c) A3 Z- s2 S- s9 J) m1 h8 ]0 H
最后,我们来看demo_b2b_admin以外的数据,现在再来猜表段: 0 l4 \/ P( ]7 J! ?" f
复制代码
7 j( r: {& W+ a' j& @+ j实际运行的SQL语句就是: 8 R  U4 ^$ _" F& |# @: O& S
复制代码: ?6 O. e: i/ R, e7 L' f% N
上面这个语句,对于information_schema不明白的,可以参考其他MySQL注入文章来看一下这个库的意义。1 C& h4 h+ Y* A$ V) Q+ @# a
关于limit x,y 的用法,可以参考MySQL手册
) R, [. y% S% l( g4 }! w/ {% H
: J7 x% \8 H8 Z6 k% c最后剩下的要说的就是ascii函数和hex函数了
' L& D: Q% t( K4 I这两个函数的意义是避开php的GPC转义,例如:
' a7 {9 z/ n0 J' j: [. W/ m, L; [复制代码2 H) V8 k% y1 z6 i2 }
substr()的用法可以参考MySQL手册,如果不懂,就这样套好了。Char()里面的数字替换为ascii码数字




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2