Այս հոդվածում մենք կլուծենք 25-րդ խնդիրը կայքից
Կազմակերպչական տեղեկատվությունՀատկապես նրանց համար, ովքեր ցանկանում են նոր բան սովորել և զարգանալ տեղեկատվական և համակարգչային անվտանգության ցանկացած ոլորտում, ես կգրեմ և կխոսեմ հետևյալ կատեգորիաների մասին.
- PWN;
- գաղտնագրություն (Crypto);
- ցանցային տեխնոլոգիաներ (Ցանց);
- հակադարձ (Reverse Engineering);
- ստեգանոգրաֆիա (Stegano);
- WEB-ի խոցելիության որոնում և շահագործում:
Բացի սրանից, ես կկիսվեմ իմ փորձով համակարգչային դատաբժշկական փորձաքննության, չարամիտ ծրագրերի և որոնվածի վերլուծության, անլար ցանցերի և լոկալ ցանցերի վրա հարձակումների, pentests-ի և գրելու շահագործման ոլորտում:
Որպեսզի օգնեմ ձեզ արդի մնալ նոր հոդվածների, ծրագրերի և այլ տեղեկությունների հետ, ես ստեղծել եմ
Ամբողջ տեղեկատվությունը ներկայացված է միայն կրթական նպատակներով: Այս փաստաթղթի հեղինակը որևէ պատասխանատվություն չի կրում որևէ մեկին պատճառված վնասի համար՝ այս փաստաթղթի ուսումնասիրությունից ստացված գիտելիքների և տեխնիկայի օգտագործման արդյունքում:
Օտպ առաջադրանքի լուծում
Շարունակենք երկրորդ բաժինը։ Ես անմիջապես կասեմ, որ դա ավելի բարդ է, քան առաջինը, բայց այս անգամ նրանք չեն տրամադրում ծրագրի սկզբնական կոդը: Մի մոռացեք քննարկման մասին այստեղ (https://t.me/RalfHackerPublicChat) և այստեղ (https://t.me/RalfHackerChannel): Եկեք սկսենք.
Սեղմեք պատկերակի վրա՝ ստորագրությամբ otp: Մեզ տրվում է հասցե և նավահանգիստ՝ միանալու համար:
Մենք միանում և նայում ենք սերվերի շուրջը:
Դրոշ, որը մենք չենք կարող կարդալ, ծրագիր և դրա սկզբնական կոդը: Դիտարկենք աղբյուրը։
Եկեք դասավորենք այն: Ծրագիրը որպես փաստարկ ընդունում է գաղտնաբառ:
Հաջորդը, պատահական 16 բայթը պահվում է otp փոփոխականում:
tmp թղթապանակում ստեղծվում է պատահական անունով ֆայլ (առաջին 8 բայթը otp է) և պատահական 8 բայթ է գրվում դրան (երկրորդ 8 բայթը՝ otp)։
Չգիտես ինչու, ստեղծված ֆայլի արժեքը կարդացվում և համեմատվում է մուտքագրված գաղտնաբառի հետ:
Հենց այստեղ է հայտնվում խոցելիությունը: Այն բաղկացած է գեներացված համարը ֆայլում միջանկյալ պահելուց: Մենք կարող ենք սահմանափակել ֆայլի չափը, օրինակ, 0-ով, այնուհետև գրելիս և կարդալիս 0-ը կհամեմատեն գաղտնաբառի հետ, դա կարելի է անել այսպես.
# ulimit -f 0
Հիմա եկեք գործարկենք ծրագիրը:
Մենք սխալ ենք ստանում. Կարևոր չէ, այն կարող է մշակվել նույն պիթոնի միջոցով:
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Մենք ստանում ենք դրոշը և մեր հեշտ 100 միավորը: Եվ մենք շարունակում ենք. հաջորդ հոդվածում կանդրադառնանք համացանցին։ Դուք կարող եք միանալ մեզ
Source: www.habr.com