Bài này là một bài về cloud, lần đầu mình tiếp xúc với dạng này nên còn gà và chưa thể tự mình solved được
Khi truy cập web challenge cung cấp, ta được như sau
Dựa vào response thì ta biết được User Input hay chính là param vulnerable sẽ được Evaluated và trả về kết quả. Vì chall blackbox hoàn toàn, nên mình fuzz xem hành vi Evaluated như thế nào bằng Burp Intruder và phát hiện eval được thực hiện bằng nodejs code.
Mình dùng payload sau để RCE
Tuy nhiên sau gần nửa buổi mò mẫm trên server không ra được gì, nên mình đã DM tác giả để cầu cứu
Có được thông tin này mình chuyển sang tập trung exploit AWS.
Khi check env trên server thì mình được kết quả như sau
Ở đây ta có thể dễ dàng lấy được AWS_ACCESS_KEY_ID và AWS_SECRET_ACCESS_KEY để tương tác với AWS service, tuy nhiên sau mỗi lần mình đọc env thì 2 giá trị này thay đổi liên tục, chỉ có ENV_ACCESS_KEY và ENV_SECRET_ACCESS_KEY cố định không đổi. Mình dùng 2 giá trị này để thay thế.
Khởi tạo configure với access_key và secret_key
└─$ aws configure --profile cloud1
AWS Access Key ID [None]: AKIAX473H4JB76WRTYPI
AWS Secret Access Key [None]: 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
Default region name [None]: ap-southeast-2
Default output format [None]:
Mình dùng aws-enumeratorđể enum thì biết được, với credentials hiện tại thì có các permission sau:
DYNAMODB DescribeEndpoints
IAM GetAccountPasswordPolicy
SECRETSMANAGER ListSecrets
STS GetSessionToken
STS GetCallerIdentity
Nhìn vào là biết nên check cái nào đầu tiên rồi. Chạy command sau để xem ListSecrets