AWS - API Gateway Unauthenticated Enum

htARTE (HackTricks AWS Red Team 전문가)에서 제로부터 영웅까지 AWS 해킹 배우기!

다른 방법으로 HackTricks를 지원하는 방법:

API Invoke 우회

Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo에서 언급된 대로, Lambda Authorizers는 IAM 구문을 사용하여 API 엔드포인트를 호출할 권한을 부여할 수 있습니다. 이는 문서에서 가져온 것입니다:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Permission",
"Action": [
"execute-api:Execution-operation"
],
"Resource": [
"arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path"
]
}
]
}

이 엔드포인트를 호출할 권한을 부여하는 방법의 문제는 "*"이 "아무 것이나"를 의미하며 정규 표현식 구문이 더 이상 지원되지 않는다는 것입니다.

일부 예시:

  • /dashboard/user/{username}에 대한 각 사용자의 액세스를 제공하기 위해 arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*와 같은 규칙은 /admin/dashboard/createAdmin과 같은 다른 경로에 액세스할 수 있게 됩니다.

"*"은 슬래시와 함께 계속 확장되지 않음에 유의하십시오. 따라서 예를 들어 api-id에서 "*"을 사용하는 경우 최종 정규 표현식이 여전히 유효하다면 "어떤 stage" 또는 "어떤 method"를 나타낼 수도 있습니다. 따라서 arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/* 예를 들어 /prod/GET/dashboard/admin 경로로 테스트 스테이지에 대한 POST 요청을 확인할 수 있습니다.

항상 누구에게 액세스를 허용할지 명확히하고 나서 부여된 권한으로 다른 시나리오가 가능한지 확인해야 합니다.

더 많은 정보는 문서 외에도 이 공식 aws github에서 권한 부여자를 구현하는 코드를 찾을 수 있습니다.

IAM 정책 주입

동일한 토크에서 코드가 사용자 입력을 사용하여 IAM 정책을 생성하는 경우, 와일드카드(그리고 "." 또는 특정 문자열과 같은 다른 문자)가 제한을 우회하기 위해 포함될 수 있다는 사실이 노출되었습니다.

공개 URL 템플릿

https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}

공개 API Gateway URL에서 계정 ID 가져오기

S3 버킷, 데이터 교환 및 람다 URL 게이트웨이와 마찬가지로, 공개 API Gateway URL에서 aws:ResourceAccount 정책 조건 키를 남용하여 계정 ID를 찾을 수 있습니다. 이는 정책의 aws:ResourceAccount 섹션에서 와일드카드를 남용하여 계정 ID를 한 문자씩 찾아내는 것입니다. 이 기술은 또한 태그 값을 가져올 수 있도록 해줍니다. 태그 키를 알고 있다면(일부 기본적으로 흥미로운 태그가 있음).

더 많은 정보는 원본 연구 및 이 취약점을 자동화하는 도구 conditional-love에서 찾을 수 있습니다.

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**

HackTricks를 지원하는 다른 방법:

最終更新