
I denna artikel löser vi uppgift 25 frÄn webbplatsen .
OrganisationsinformationSpeciellt för dem som vill lÀra sig nÄgot nytt och utvecklas inom olika omrÄden av informations- och datorsÀkerhet, kommer jag att skriva och berÀtta om följande kategorier:
- PWN;
- kryptografi (Crypto);
- nÀtverksteknologier (Network);
- reverse engineering (Reverse Engineering);
- steganografi (Stegano);
- sökning och utnyttjande av WEB-sÄrbarheter.
Utöver detta kommer jag att dela med mig av min erfarenhet inom datorforensik, analys av skadlig programvara och firmware, attacker pÄ trÄdlösa nÀtverk och lokala datanÀtverk, genomförande av penetrationstester och skrivande av exploits.
För att du ska kunna hĂ„lla dig informerad om nya artiklar, programvara och annan information har jag skapat och inom omrĂ„det cybersĂ€kerhet. Ăven dina personliga förfrĂ„gningar, frĂ„gor, förslag och rekommendationer .
All information presenteras uteslutande i utbildningssyfte. Författaren av detta dokument tar inget ansvar för eventuell skada som orsakas nÄgon genom anvÀndning av kunskaper och metoder som erhÄllits genom att studera detta dokument.
Lösning av uppgift otp
Vi fortsÀtter med den andra delen. Jag sÀger med en gÄng att den Àr svÄrare Àn den första, men denna gÄng fÄr vi inte programkoden. Glöm inte diskussionen hÀr(https://t.me/RalfHackerPublicChat) och hÀr (https://t.me/RalfHackerChannel). Vi börjar.
Vi klickar pÄ ikonen med namnet otp. Vi fÄr en adress och port för att ansluta.

Vi ansluter och ser oss omkring pÄ servern.

Flaggan som vi inte kan lÀsa, programmet och dess kÀllkod. LÄt oss titta pÄ kÀllkoden.

Vi gÄr igenom den. Programmet tar ett lösenord som argument.

DÀrefter sparas 16 slumpmÀssiga byte i variabeln otp.

I mappen tmp skapas en fil med ett slumpmÀssigt namn (de första 8 byte av otp) och 8 slumpmÀssiga byte (de andra 8 byte av otp) skrivs in i den.

Av nÄgon anledning lÀses vÀrdet frÄn den skapade filen och jÀmförs med det angivna lösenordet.

HÀr förekommer sÄrbarheten. Den ligger i mellanlagringen av det genererade talet i filen. Vi kan begrÀnsa filstorleken, till exempel till 0, sÄ att vid skrivning och lÀsning med lösenordet jÀmförs 0. Detta kan göras sÄ hÀr.
# ulimit -f 0 ![]()
Nu ska vi köra programmet.
![]()
Vi fÄr ett fel. Ingen fara, det kan hanteras med hjÀlp av Python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Vi fÄr flaggan och lÀtta 100 poÀng. Och vi fortsÀtter: i nÀsta artikel kommer vi att beröra Web. Du kan gÄ med oss i .
KĂ€lla: habr.com
