Electronic Code Book (ECB)
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
(ECB) Elektroniese Kodeboek - simmetriese versleuteling skema wat elke blok van die duidelike teks vervang deur die blok van gesleutelde teks. Dit is die simpele versleuteling skema. Die hoofidee is om die duidelike teks in blokkies van N bits te verdeel (hang af van die grootte van die blok invoerdata, versleuteling algoritme) en dan om elke blok van duidelike teks te versleutel (ontsleutel) met die enigste sleutel.
Die gebruik van ECB het verskeie sekuriteitsimplikasies:
Blokkies van die gesleutelde boodskap kan verwyder word
Blokkies van die gesleutelde boodskap kan rondbeweeg word
Stel jou voor jy teken verskeie kere in op 'n toepassing en jy kry altyd dieselfde koekie. Dit is omdat die koekie van die toepassing <gebruikersnaam>|<wagwoord>
is.
Dan genereer jy twee nuwe gebruikers, albei met die selfde lang wagwoord en amper die selfde gebruikersnaam.
Jy vind uit dat die blokkies van 8B waar die inligting van albei gebruikers dieselfde is, gelyk is. Dan stel jy jou voor dat dit dalk is omdat ECB gebruik word.
Soos in die volgende voorbeeld. Let op hoe hierdie 2 gedecodeerde koekies verskeie kere die blok \x23U\xE45K\xCB\x21\xC8
het.
Dit is omdat die gebruikersnaam en wagwoord van daardie koekies verskeie kere die letter "a" bevat (byvoorbeeld). Die blokke wat verskillend is, is blokke wat ten minste 1 verskillende karakter bevat (miskien die skeidingsteken "|" of 'n nodige verskil in die gebruikersnaam).
Nou moet die aanvaller net ontdek of die formaat <gebruikersnaam><skeidingsteken><wagwoord>
of <wagwoord><skeidingsteken><gebruikersnaam>
is. Om dit te doen, kan hy net verskeie gebruikersname genereer met soortgelyke en lang gebruikersname en wagwoorde totdat hy die formaat en die lengte van die skeidingsteken vind:
2
2
4
8
3
3
6
8
3
4
7
8
4
4
8
16
7
7
14
16
Weetende die formaat van die koekie (<gebruikersnaam>|<wagwoord>
), om die gebruikersnaam admin
na te doen, skep 'n nuwe gebruiker genaamd aaaaaaaaadmin
en kry die koekie en dekodeer dit:
We kan die patroon \x23U\xE45K\xCB\x21\xC8
sien wat vroeër geskep is met die gebruikersnaam wat slegs a
bevat.
Dan kan jy die eerste blok van 8B verwyder en jy sal 'n geldige koekie vir die gebruikersnaam admin
kry:
In baie databasisse is dit dieselfde om te soek vir WHERE username='admin';
of vir WHERE username='admin ';
(Let op die ekstra spaties)
So, 'n ander manier om die gebruiker admin
na te boots, sou wees om:
'n gebruikersnaam te genereer wat: len(<username>) + len(<delimiter) % len(block)
. Met 'n blokgrootte van 8B
kan jy 'n gebruikersnaam genereer wat genoem word: username
, met die afskeid |
sal die stuk <username><delimiter>
2 blokke van 8Bs genereer.
Dan, genereer 'n wagwoord wat 'n presiese aantal blokke sal vul wat die gebruikersnaam bevat wat ons wil naboots en spaties, soos: admin
Die koekie van hierdie gebruiker gaan bestaan uit 3 blokke: die eerste 2 is die blokke van die gebruikersnaam + afskeid en die derde een van die wagwoord (wat die gebruikersnaam vervals): username |admin
Vervang dan net die eerste blok met die laaste keer en jy sal die gebruiker admin
naboots: admin |username
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)