s3-minio-content-type-xss

Detect Content-Type header overrides in S3 and MinIO buckets.

3|1|Updated Jul 2, 2026
One-click install
npx skills add https://github.com/EntroVyx/hermes-agent-offsec --skill s3-minio-content-type-xss-entrovyx
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: s3-minio-content-type-xss
Source: https://github.com/EntroVyx/hermes-agent-offsec/tree/main/skills/offsec/recon/s3-minio-content-type-xss
Command: npx skills add https://github.com/EntroVyx/hermes-agent-offsec --skill s3-minio-content-type-xss-entrovyx

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires curl, python3, awscli, boto3, botocore.

What problem does it solve?

This skill addresses the challenge of bypassing strict file upload validations by exploiting Content-Type response header overrides in public cloud storage buckets to execute stored XSS.

Core Features & Use Cases

  • Content-Type Override Detection: Automatically identifies if a bucket allows overriding response headers via query parameters.
  • S3/MinIO Exploitation: Provides workflows for both anonymous MinIO overrides and authenticated S3 signed-URL generation.
  • Use Case: When an application strictly validates file extensions and magic bytes, this skill allows an operator to serve a malicious payload as HTML by manipulating the response headers at the storage layer.

Quick Start

Use the s3-minio-content-type-xss skill to test if the target bucket at the provided URL allows overriding the Content-Type header to text/html.

Frequently Asked Questions about s3-minio-content-type-xss

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I bypass file upload validation to achieve stored XSS in S3?

To bypass strict file upload validation and achieve stored XSS, manipulate Content-Type response header overrides in public S3 or MinIO buckets to serve payloads as HTML, bypassing application-level restrictions.

What is Content-Type override detection in MinIO?

Content-Type override detection in MinIO identifies if a public bucket allows overriding response headers via query parameters, enabling attackers to serve uploaded files as text/html to trigger cross-site scripting vulnerabilities.

How do I generate signed S3 requests to serve HTML payloads?

Generate signed S3 requests to serve HTML payloads using python3 and boto3 to create authenticated URLs that override response headers, forcing the Content-Type to text/html for stored XSS execution.

Do I need curl and python3 to test S3 bucket response header overrides?

Yes, you need curl for header inspection and python3 with boto3 for generating signed S3 requests to test if public cloud storage buckets allow overriding response headers for stored XSS.

Can I use this to bypass file extension and magic byte validation?

Yes, when an application strictly validates file extensions and magic bytes, manipulating response headers at the storage layer allows you to serve a malicious payload as HTML, bypassing those upload restrictions entirely.

Does this approach work with both anonymous MinIO and authenticated S3 buckets?

Yes, the approach supports both anonymous MinIO overrides and authenticated S3 signed-URL generation, providing workflows to exploit Content-Type response header overrides across compatible public cloud storage services.