AWS - DynamoDB Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Amazon DynamoDB word deur AWS aangebied as 'n volledig bestuurde, serverlose, sleutel-waarde NoSQL-databasis, ontwerp om hoë-prestasie toepassings te ondersteun, ongeag hul grootte. Die diens verseker robuuste kenmerke, insluitend inherente sekuriteitsmaatreëls, ononderbroke rugsteun, geoutomatiseerde replikaasies oor verskeie streke, geïntegreerde in-geheue kas, en gerieflike data-uitvoer nutsprogramme.
In die konteks van DynamoDB, in plaas daarvan om 'n tradisionele databasis op te stel, word tafels geskep. Elke tafel vereis die spesifikasie van 'n partisie sleutel as 'n integrale komponent van die tafel se primêre sleutel. Hierdie partisiesleutel, wat essensieel 'n hash waarde is, speel 'n kritieke rol in beide die herwinning van items en die verspreiding van data oor verskeie gasheer. Hierdie verspreiding is van kardinale belang om beide skaalbaarheid en beskikbaarheid van die databasis te handhaaf. Daarbenewens is daar 'n opsie om 'n sorteersleutel in te sluit om data-organisasie verder te verfyn.
Standaard gebruik DynamoDB 'n KMS-sleutel wat **aan Amazon DynamoDB behoort,** nie eens die AWS bestuurde sleutel wat ten minste aan jou rekening behoort nie.
Dit is moontlik om die generasie van tafelrugsteun te skeduleer of om dit op aanvraag te skep. Boonop is dit ook moontlik om Punt-in-tyd herstel (PITR) vir 'n tafel in te skakel. Punt-in-tyd herstel bied deurlopende rugsteun van jou DynamoDB-data vir 35 dae om jou te help beskerm teen onopsetlike skryf- of verwyderingsoperasies.
Dit is ook moontlik om die data van 'n tafel na S3 te eksporteer, maar die tafel moet PITR geaktiveer hê.
Daar is 'n GUI vir plaaslike Dynamo dienste soos DynamoDB Local, dynalite, localstack, ens., wat nuttig kan wees: https://github.com/aaronshaf/dynamodb-admin
Daar is maniere om toegang tot DynamoDB-data te verkry met SQL-sintaksis, daarom is tipiese SQL-inspuitings ook moontlik.
In DynamoDB kan verskillende voorwaardes gebruik word om data te verkry, soos in 'n algemene NoSQL-inspuiting. As dit moontlik is om meer voorwaardes te koppel om data te verkry, kan jy verborge data verkry (of die hele tabel dump). Jy kan hier die voorwaardes vind wat deur DynamoDB ondersteun word: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html
Let daarop dat verskillende voorwaardes ondersteun word as die data via query
of via scan
verkry word.
Werklik, Query aksies moet die voorwaarde "EQ" (gelyk) in die primêre sleutel spesifiseer om te werk, wat dit baie minder geneig maak tot NoSQL-inspuitings (en ook die operasie baie beperk maak).
As jy die vergelyking wat uitgevoer word kan verander of nuwe kan byvoeg, kan jy meer data verkry.
Hierdie kwesbaarheid is gebaseer op dynamodb Scan Filter wat nou verouderd is!
DynamoDB aanvaar Json-objekte om data binne die DB te soek. As jy vind dat jy in die json-objek wat gestuur word om te soek, kan skryf, kan jy die DB dump, al die inhoud.
Byvoorbeeld, inspuiting in 'n versoek soos:
'n aanvaller kan iets soos hierdie inspuit:
1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0
regstel die "EQ" voorwaarde wat soek na die ID 1000 en dan soek na al die data met 'n Id-string groter as 0, wat alles is.
Nog 'n kwetsbare voorbeeld wat 'n aanmelding gebruik kan wees:
Dit sou kwesbaar wees vir:
Sommige SDK's laat 'n string toe wat die filtrering aandui wat uitgevoer moet word, soos:
Jy moet weet dat wanneer jy in DynamoDB soek om 'n attribuut waarde in filteruitdrukkings te vervang terwyl jy die items skandeer, die tokens moet begin met die :
karakter. Sulke tokens sal met die werklike attribuutwaarde tydens uitvoering vervang word.
Daarom kan 'n aanmelding soos die vorige omseil word met iets soos:
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)