In dit artikel lossen we de 25e taak van de site op
organisatorische informatieSpeciaal voor degenen die iets nieuws willen leren en zich willen ontwikkelen op een van de gebieden van informatie- en computerbeveiliging, zal ik schrijven en praten over de volgende categorieën:
- PWN;
- cryptografie (Crypto);
- netwerktechnologieën (Netwerk);
- omgekeerd (reverse engineering);
- steganografie (Stegano);
- zoeken en exploiteren van WEB-kwetsbaarheden.
Daarnaast zal ik mijn ervaring delen op het gebied van computerforensisch onderzoek, malware- en firmware-analyse, aanvallen op draadloze netwerken en lokale netwerken, pentesting en het schrijven van exploits.
Zodat u meer te weten kunt komen over nieuwe artikelen, software en andere informatie, heb ik gemaakt
Alle informatie wordt alleen verstrekt voor educatieve doeleinden. De auteur van dit document aanvaardt geen verantwoordelijkheid voor enige schade die aan wie dan ook wordt toegebracht als gevolg van het gebruik van de kennis en methoden die zijn verkregen door het bestuderen van dit document.
De OTP-taak oplossen
We gaan verder met het tweede deel. Ik zal meteen zeggen dat het moeilijker is dan de eerste, maar deze keer geven ze niet de broncode van het programma. Vergeet de discussie hier (https://t.me/RalfHackerPublicChat) en hier (https://t.me/RalfHackerChannel) niet. Laten we beginnen.
Klik op het icoontje met de handtekening otp. We krijgen een adres en een poort om verbinding mee te maken.
We maken verbinding en kijken rond op de server.
De vlag die we niet kunnen lezen is het programma en de broncode. Laten we de bron bekijken.
Laten we het oppakken. Het programma neemt een wachtwoord als argument.
Verder worden willekeurige 16 bytes opgeslagen in de otp-variabele.
Er wordt een bestand met een willekeurige naam gemaakt in de map tmp (de eerste 8 bytes zijn otp) en er worden willekeurige 8 bytes naar geschreven (de tweede 8 bytes zijn otp).
Om de een of andere reden wordt de waarde van het aangemaakte bestand gelezen en vergeleken met het ingevoerde wachtwoord.
Er is hier een kwetsbaarheid. Het bestaat uit het tussentijds opslaan van het gegenereerde nummer in een bestand. We kunnen de bestandsgrootte bijvoorbeeld beperken tot 0, dan wordt bij het schrijven en lezen 0 vergeleken met het wachtwoord.Je kunt het zo doen.
# ulimit -f 0
Laten we nu het programma uitvoeren.
We krijgen een foutmelding. Het maakt niet uit, het kan worden verwerkt met dezelfde python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
We krijgen de vlag en onze gemakkelijke 100 punten. En we gaan verder: in het volgende artikel zullen we ingaan op het web. U kunt bij ons terecht op
Bron: www.habr.com