Skip to main content

Curl-url-http-3a-2f-2f169.254.169.254-2flatest-2fapi-2ftoken

: Defines how long the token is valid (in this case, 21,600 seconds or 6 hours). Step 2: Access Metadata

: Even if an attacker can execute a GET request through your app, they cannot easily perform the PUT handshake required to get a token. Conclusion

In the past (IMDSv1), metadata was accessible via a simple GET request. While convenient, this was vulnerable to attacks. If an attacker could trick a web application into making a request to that internal IP, they could steal sensitive IAM credentials. curl-url-http-3A-2F-2F169.254.169.254-2Flatest-2Fapi-2Ftoken

: Standard WAFs are better at blocking complex PUT requests than simple GET requests.

Understanding the AWS IMDSv2 Token Fetch Command: curl 169.254.169 : Defines how long the token is valid

: You must first perform a PUT request to /latest/api/token to generate a temporary session token.

TOKEN=$(curl -X PUT "http://169.254.169" \ -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") Use code with caution. While convenient, this was vulnerable to attacks

When you see the string curl-url-http-3A-2F-2F169.254.169.254-2Flatest-2Fapi-2Ftoken (which is a URL-encoded version of the path), it refers to this specific two-step process. Step 1: Generate the Token

By requiring a session token, AWS adds a layer of defense against: : Preventing accidental exposure.