Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux
У дадзеным артыкуле вырашым 25-е заданне з сайта pwnable.kr.

Арганізацыйная інфармацыяСпецыяльна для тых, хто хоча даведвацца нешта новае і развівацца ў любой са сфер інфармацыйнай і камп'ютарнай бяспекі, я буду пісаць і расказваць пра наступныя катэгорыі:

  • PWN;
  • крыптаграфія (Crypto);
  • сеткавыя тэхналогіі (Network);
  • рэверс (Reverse Engineering);
  • стэганаграфія (Stegano);
  • пошук і эксплуатацыя WEB-уразлівасцяў.

У дадатак да гэтага я падзялюся сваім досведам у кампутарнай крыміналістыцы, аналізе малвары і прашывак, нападах на бесправадныя сеткі і лакальныя вылічальныя сеткі, правядзенні пентэстаў і напісанні эксплоітаў.

Каб вы маглі даведвацца аб новых артыкулах, праграмным забеспячэнні і іншай інфармацыі, я стварыў канал у Telegram и групу для абмеркавання любых пытанняў у галіне ІІКБ. Таксама вашыя асабістыя просьбы, пытанні, прапановы і рэкамендацыі разгледжу асабіста і адкажу ўсім.

Уся інфармацыя прадстаўлена выключна ў адукацыйных мэтах. Аўтар гэтага дакумента не нясе ніякай адказнасці за любую шкоду, прычыненую каму-небудзь у выніку выкарыстання ведаў і метадаў, атрыманых у выніку вывучэння дадзенага дакумента.

Рашэнне задання otp

Працягваем другую частку. Скажу адразу, што складаней першага, але ў гэты раз не падаюць зыходны код праграмы. Не забываемся пра абмеркаванне тут (https://t.me/RalfHackerPublicChat) і тут (https://t.me/RalfHackerChannel). Пачнём.

Націскаем на абразок з подпісам otp. Нам даюць адрас і порт для падключэння.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Падлучаемся і аглядаемся на серверы.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Сцяг, які мы не можам прачытаць, праграма і яе зыходны код. Давайце паглядзім зыходнік.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Рабяром яго. Праграма прымае ў якасці аргумента пароль.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Далей у зменную otp захоўваецца рандомныя 16 байт.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

У тэчцы tmp ствараецца файл са выпадковым імем (першыя 8 байт otp) і ў яго запісваецца рандомныя 8 байт (другія 8 байт otp).

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Навошта-то і створанага файла счытваецца значэнне і параўноўваецца з уведзеным паролем.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Тут і прысутнічае ўразлівасць. Яна складаецца ў прамежкавым захаванні генераванага ліку ў файл. Мы можам абмежаваць памер файла, напрыклад да 0, тады пры запісе і счытванні з паролем будзе параўноўвацца 0. Зрабіць гэта можна так.

# ulimit -f 0

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Цяпер запусцім праграму.

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Атрымліваем памылку. Не бяда, ведб яе можна апрацаваць з дапамогай таго ж пітона.

python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" 

Рашэнне задання з pwnable.kr 25 - otp. Абмежаванне рамера файла ў Linux

Атрымліваем сцяг і свае лёгкія 100 балаў. І мы працягваем: у наступным артыкуле закранем Web. Вы можаце далучыцца да нас у Тэлеграма.

Крыніца: habr.com

Дадаць каментар