I den här artikeln kommer vi att lösa den 25:e uppgiften från sajten
organisationsinformationSpeciellt för de som vill lära sig något nytt och utvecklas inom något av områdena information och datorsäkerhet kommer jag att skriva och prata om följande kategorier:
- PWN;
- kryptografi (Crypto);
- nätverksteknik (nätverk);
- reverse (reverse engineering);
- steganografi (Stegano);
- sökning och utnyttjande av WEB-sårbarheter.
Dessutom 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 nätverk, pentesting och skrivning av exploits.
För att du ska kunna ta reda på om nya artiklar, programvara och annan information skapade jag
All information tillhandahålls endast i utbildningssyfte. Författaren till detta dokument tar inget ansvar för eventuella skador som orsakats någon som ett resultat av användning av kunskap och metoder som erhållits som ett resultat av att studera detta dokument.
Löser otp-uppgiften
Vi fortsätter med det andra avsnittet. Jag kommer genast att säga att det är svårare än den första, men den här gången tillhandahåller de inte programmets källkod. Glöm inte diskussionen här (https://t.me/RalfHackerPublicChat) och här (https://t.me/RalfHackerChannel). Låt oss börja.
Klicka på ikonen med signaturen otp. Vi får en adress och en port att ansluta till.
Vi ansluter och tittar runt på servern.
Flaggan vi inte kan läsa är programmet och dess källkod. Låt oss se källan.
Låt oss plocka upp det. Programmet tar ett lösenord som ett argument.
Vidare lagras slumpmässiga 16 bytes i otp-variabeln.
En fil med ett slumpmässigt namn skapas i tmp-mappen (de första 8 byten är otp) och slumpmässiga 8 byte skrivs till den (de andra 8 byten är otp).
Av någon anledning läses värdet på den skapade filen och jämförs med det angivna lösenordet.
Det finns en sårbarhet här. Det består i att det genererade numret sparas mellanliggande i en fil. Vi kan begränsa filstorleken till till exempel till 0, sedan jämförs 0 med lösenordet när du skriver och läser. Du kan göra så här.
# ulimit -f 0
Låt oss nu köra programmet.
Vi får ett fel. Det spelar ingen roll, det kan bearbetas med samma python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Vi får flaggan och våra lätta 100 poäng. Och vi fortsätter: i nästa artikel kommer vi att beröra webben. Du kan gå med oss på
Källa: will.com