.NET 分享一款Web打包和解压缩工具

news2025/1/20 5:08:54

01本文概要

在.NET部署环境中,利用IIS中间件开启对ASP的支持,可以实现许多强大的文件操作功能。特别是在一些需要进行预编译的情况下,通过上传ASP脚本,可以获得WebShell,从而方便地进行各种操作。本文将介绍一个名为Sharp4ASPWebPack工具,该工具提供了在线打包和解包文件的功能,并详细解析其实现方式。该工具经过订正后可正常运行。

图片

图片

图片

02实现打包功能

自定义实现的CCPack类是一个用于ASP环境下文件打包和解包的类。

Class CCPack
Dim Files, packname, rootpath, fso
Private Sub Class_Initialize
Randomize
Dim ranNum
ranNum = Int(90000 * Rnd) + 10000
packname = Year(Now)&Month(Now)&Day(Now)&Hour(Now)&Minute(Now)&Second(Now)&ranNum&".asp"&Year(Now)
rootpath = Server.MapPath("./")
Set Files = server.CreateObject("Scripting.Dictionary")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
End Sub
Private Sub Class_Terminate
Set fso = Nothing
Set Files = Nothing
End Sub

通过该类,可以方便地将文件夹及其下的文件打包成一个文件,并可以在需要时解包这些文件。详细介绍CCPack类的实现代码使用方法如下所示

'添加该文件夹下的所有文件夹及文件
Public Sub AddDir(byval obj)
Dim f, subf
If fso.FolderExists(obj) Then
Set f = fso.GetFolder(obj)
'添加本文件夹
Add(f.Path)
'遍历子文件夹
For Each subf in f.SubFolders
AddDir(subf.Path)
Next
Set subf = Nothing
Set f = Nothing
End If
End Sub

AddDir方法,递归地添加文件夹及其下所有文件。检查文件夹是否存在,存在则添加该文件夹,并遍历其子文件夹递归调用AddDir方法。Pack方法:创建两个流对象,一个用于读取文件,一个用于写入打包文件。代码如下所示

'打包
Public Sub Pack()
Dim Str, ObjPack, ObjRead, a, b, buf, bf, FileDB, FDBLen
Set ObjPack = server.CreateObject("ADODB.Stream") 
Set ObjRead = server.CreateObject("ADODB.Stream")
ObjPack.Open 
ObjRead.Open
ObjPack.Type = 1
ObjRead.Type = 1
a = Files.Keys
b = Files.Items
bf = ( (Files.Count) + 1) / 100
For i = 0 To Files.Count - 1
If b(i) > 0 Then
ObjPack.LoadFromFile(a(i))
If Not ObjPack.EOS Then ObjRead.Write(ObjPack.Read)
End If
If b(i) = -1 Then a(i) = a(i) & "\"
a(i) = replace(a(i), rootpath, "\", 1, -1, 1) 
a(i) = replace(a(i), "\\", "\", 1, -1, 1) 
FileDB = FileDB & b(i) & ">" & a(i) & "*"
Echo "<script language=""javascript"" >"
Echo "f.innerText='" & Replace(a(i), "\", "\\") & "';"
Echo "p.innerText='" & clng(i / bf) & "%';"
Echo "n.innerText='" & (i+1) & "/" & Files.Count & "';"
Echo "</script>"
Response.Flush
If Not Response.IsClientConnected Then Exit For
Next
FDBLen = LenB(FileDB)
Str = CStr(Strright("000000000" & FDBLen, 10)) & FileDB
buf = TextToStream(Str)
ObjPack.Position = 0
ObjPack.Write buf
ObjRead.Position = 0
Do While Not ObjRead.EOS
ObjPack.Write ObjRead.Read(1024 * 64)
If Not Response.IsClientConnected Then Exit Do 
Loop
ObjPack.SetEOS
ObjPack.SaveToFile(packname), 2
Set buf = Nothing
Set ObjRead = Nothing
Set ObjPack = Nothing
End Sub

遍历所有文件,将其内容写入打包文件,同时记录文件路径和大小信息。生成文件目录信息字符串并写入打包文件。UnPack方法:打开打包文件,读取文件目录信息并解析,逐个将文件内容写入目标路径。确保解压过程中路径和文件夹存在。代码如下所示。

'解压
Public Sub UnPack()
Dim Size, ObjPack, ObjWrite, arr, i, buf, bf
If Not fso.FolderExists(rootpath) Then
fso.CreateFolder(rootpath)
End If
Set ObjPack = server.CreateObject("ADODB.Stream")
Set ObjWrite = server.CreateObject("ADODB.Stream")
ObjPack.Open 
ObjWrite.Open
ObjPack.Type = 1
ObjWrite.Type = 1
ObjPack.LoadFromFile(packname)
ObjPack.Position = 0
If Not IsNumeric(StreamToText(ObjPack.Read(22))) Then
Echo("<script>alert('文件格式不正确,系统无法解压!');</script>")
response.End
Else
ObjPack.Position = 0
End If
Size = Clng(StreamToText(ObjPack.Read(22)))
arr = Split(StreamToText(ObjPack.Read(Size)), "*")
bf = ( (UBound(arr)) + 1) / 100
For i = 0 To UBound(arr) - 1
arrFile = Split(arr(i), ">")
If arrFile(0) < 0 Then
myfind(rootpath & arrFile(1)) '确保文件存在
ElseIf arrFile(0) >= 0 Then
ObjWrite.Position = 0
buf = ObjPack.Read(arrFile(0))
If Not IsNull(buf) Then ObjWrite.Write(buf)
ObjWrite.SetEOS
ObjWrite.SaveToFile(rootpath & arrFile(1)), 2
End If
Echo "<script>"
Echo "f.innerText='" & Replace(rootpath & arrFile(1), "\", "\\") & "';"
Echo "p.innerText='" & clng(i / bf) & "%';"
Echo "n.innerText='" & (i+1) & "/" & UBound(arr) & "';"
Echo "</script>"
Echo vbcrlf
Response.Flush
If Not Response.IsClientConnected Then Exit For
Next
Set buf = Nothing
Set ObjWrite = Nothing
Set ObjPack = Nothing
End Sub

因此CCPack类非常适合在支持ASP运行环境下的.NET应用中进行文件打包和解包操作,特别是在需要通过Web接口进行文件传输和管理的应用场景下。为了达到更好的免杀,工具已混淆发表于星球,师傅们可自行查阅资料。

图片

03推荐阅读

从漏洞分析到安全攻防,我们涵盖了.NET安全各个关键方面,为您呈现最新、最全面的.NET安全知识,下面是公众号发布的精华文章集合,推荐大家阅读!

图片

图片

图片

图片

图片

04.NET安全知识库

为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,也得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展。只需199元就可以加入我们。

    星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,从Web应用到PC端软件应用,无论您是初学者还是经验丰富的开发人员,都能在这里找到对应的安全指南和最佳实践。

    星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

图片

星球文化始终认为授人以鱼不如授人以渔!加入星球后可以跟星主和嘉宾们一对一提问交流,20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

图片

    我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

图片

    我们还有一个会员专属的星球陪伴群,加入的成员可以通过在群里提出问题或参与论的方式来与其他成员交流思想和经验。此外还可以通过星球或者微信群私聊向我们进行提问,以获取帮助迅速解决问题。

图片

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运动耳机怎么选?五款新手必买的运动耳机盘点

运动耳机是专为运动爱好者设计的耳机&#xff0c;轻巧便携&#xff0c;佩戴稳固。无论你在跑步、健身还是骑行&#xff0c;它都能为你带来优质的音乐体验。那如何选择一款合适的运动耳机呢&#xff1f;这里&#xff0c;我结合自己和身边朋友平时选购经验&#xff0c;整理了一些…

sklearn机器学习编程练习大全(二)

sklearn机器学习编程练习大全&#xff08;二&#xff09; 第11题 从字符串提取标签第12题 IRIS数据集探索第13题 构建模型&#xff0c;计算准确率第14题 预估目标列编码第15题 one-hot编码 第11题 从字符串提取标签 DataFrame如下&#xff1a; 如何将以上的DataFrame变成如下的…

python批量生成25位数字字母混合序列号(SN码)

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 SN码,即Serial Number的缩写,有时也被称为Serial No,是产品序列号的意思。它是一个独特的标识符,用于区分同一种类

第二证券资讯|昨夜,黄金大涨、美股创新高!人民币狂拉

受降息预期影响&#xff0c;美股三大指数团体创新高&#xff0c;黄金期现价格亦大幅走高。 当地时间5月15日星期三&#xff0c;美股三大股指全线收涨。道指涨0.88%&#xff0c;纳指涨1.40%&#xff0c;标普500指数涨1.17%。 经济数据方面。美国4月CPI同比上涨3.4%&#xff0c…

每日一练 2025.5.16

题目&#xff1b; 给定一个非负整数&#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。注意: 给定数字的范围是 [0, 108] 解题&#…

首战告捷!KCM Trade漂移队出征2024日本漂移锦标赛(FDJ2)

卓越之姿&#xff0c;非凡之势&#xff01;KCM Trade漂移队以实力点燃激情 当激情与速度交织&#xff0c;当硝烟四起的战场转移到赛车领域&#xff0c;我们见证了一场精彩绝伦、实力与策略并存的较量——KCM Trade漂移队在2024日本漂移锦标赛&#xff08;FDJ2&#xff09;上展现…

AIGC文生视频:Sora模型报告总结

作为世界模拟器的视频生成模型 我们探索视频数据生成模型的大规模训练。具体来说&#xff0c;我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和图像潜在代码的时空补丁进行操作的变压器架构。我们最大的模型 Sora 能够生成一分钟…

惠海 H4112 同步整流30V降压芯片IC 24V转12V5V3.3V3.5A方案EN使能控制

惠海H4112同步整流30V降压芯片IC是一款DCDC电源管理芯片&#xff0c;它具备精确恒压和恒流的同步降压能力&#xff0c;适用于多种应用场景&#xff0c;如汽车充电器、照明灯、便携式设备供电电源和电池充电器等。 输出电压与电流调整&#xff1a; H4112支持输出电压在2.5V到2…

大模型时代,交换机技术演变、性能分析、衡量指标

OSI协议及在高性能计算中向RDMA的过渡 协议是为计算机网络内的数据交换而建立的一组规则、标准或协议。在法律层面&#xff0c;OSI七层协议被视为国际标准。该协议于20世纪80年代引入&#xff0c;旨在通过其七层网络模型标准化计算机间通信&#xff0c;以满足开放网络的要求。…

wamp 安装 PHP8

最近的项目需求&#xff0c;需要将PHP 升级8使用&#xff0c;一直都是用wamp &#xff0c;所以需要在wamp集成PHP8 1、首先下载 php8 的包。地址&#xff1a; PHP: Downloadshttps://www.php.net/downloads.php 下载版本是目前最新的 PHP8.3.7&#xff0c;不要下载nts 版本&a…

【MySQL精通之路】MySQL8.0官方文档-数据字典

目录 16.1 数据字典架构 如何升级数据字典 使用MySQL的调试版本查看数据字典表 16.2 删除基于文件的元数据存储 .frm文件 .par文件 .TRN文件 .TRG文件 .isl文件 db.opt文件 ddl_log.log文件 16.3 字典数据的事务存储 16.4 字典对象缓存 表空间定义缓存分区&#…

HTML(3)——常用标签3

引用标签 1.<blockquote>和<q> 两者都是对文本的解释引用&#xff0c;<blockquote>是用较大的段落进行解释&#xff0c;<q>是对较小的段落进行解释。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UT…

人工智能(一)架构

一、引言 人工智能这个词不是很新鲜&#xff0c;早就有开始研究的&#xff0c;各种推荐系统、智能客服都是有一定的智能服务的&#xff0c;但是一直都没有体现出多高的智能性&#xff0c;很多时候更像是‘人工智障’。 但是自从chatGpt3被大范围的营销和使用之后&#xff0c;人…

提升工作效率,畅享Microsoft Office 2016 for Mac/win软件

Microsoft Office 2016 for Mac/win是一款功能强大的办公软件套件&#xff0c;为用户提供了一系列高效、易用的工具&#xff0c;帮助您在工作和学习中更加高效地处理各种任务。无论您是学生、职场人士还是企业管理者&#xff0c;这款软件都能满足您的各种需求。 首先&#xff…

霍庭格TruPlasma MF 7100 7050电源现货50KW

霍庭格TruPlasma MF 7100 7050电源现货50KW

MPLS小实验

实验图&#xff1a; 实验要求&#xff1a; 要求使用MPLS技术&#xff0c;将实验通&#xff0c;并在实验结束后使用命令&#xff1a;tracert -v -a 看是否基于标签进行转发。 如上&#xff1a;在每台路由器上都有两个环回&#xff0c;一个用于模拟用户网段&#xff0c;一个用于M…

计算机毕业设计 | vue+springboot电影票售卖 影院售票商城 电影管理系统(附源码+论文)

1&#xff0c;项目背景 目的&#xff1a;本课题主要目标是设计并能够实现一个基于web网页的电影院购票选座系统&#xff0c;整个网站项目使用了B/S架构&#xff0c;基于vue和SpringBoot框架下开发&#xff1b;管理员通过后台管理系统实现管理影院信息&#xff0c;电影信息&…

双向链表结构

1.双向链表定义 双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据节点中都有两个指针&#xff0c;分别指向直接前驱和直接后继。 2.实现双向链表 2.1创建双向链表类 /*** 基于双向链表实现元素存取的容器* param <E>*/ public class MyDoubleLinked…

智慧车间MES系统源码,采用java+springboot+vue.js+uniapp技术开发

智慧车间MES系统源码&#xff0c;采用javaspringbootvue.jsuniapp开发 MES系统&#xff08;Manufacturing Execution System&#xff09;是一种面向制造企业车间执行层的生产信息化管理系统&#xff0c;它是企业信息化系统的重要组成部分&#xff0c;是ERP&#xff08;Enterpri…

论文阅读笔记:Equivariant Multi-Modality Image Fusion

论文阅读笔记&#xff1a;Equivariant Multi-Modality Image Fusion 1 背景2 创新点3 方法4 模块4.1 模型假设4.2 U-Fuser4.3 伪感知模块4.4 等变图像融合 5 实验6 疑问 代码&#xff1a;https://github.com/Zhaozixiang1228/MMIF-EMMA 论文&#xff1a;https://arxiv.org/pdf/…