yetiraki
19.07.2023, 13:04
Всем привет.
Идем дальше. Идем в MEGABANK от EVIL CORP с огромным желанием "купить" флаг.
Скачиваем банк-клиент, unzip его, открываем в IDA и идем в main.
https://forum.antichat.xyz/attachments/29106198/img_06da40d7bd.png
Далее идем в login
https://forum.antichat.xyz/attachments/29106198/img_9eb2a55cb8.png
Видим, что тут у нас есть пользовательский ввод логина и пароля, но тут у нас все по феншую, ввод ограничен, тут мы ничего переписать не можем. Сразу видно, что в банке хороший разработчик =) но где же взять логин и пароль, не может же он быть захардкоден прямо в приложухе?
https://forum.antichat.xyz/attachments/29106198/img_625e60a79f.png
https://forum.antichat.xyz/attachments/29106198/img_187cbc6061.png
А не, может, оказывается... Запоминаем.
Далее идем в admin_menu
https://forum.antichat.xyz/attachments/29106198/img_15f516bf33.png
Видим, что флаг стоит как чугунный мост. Видим что можно работать, но заработать прям точное количество денег не получится из-за оплаты труда и комиссии, да и работать слишком долго надо.
Видим, что можем поменять дефолтные креды, которые мы видели ранее на свои и ... О, тут прием пользовательского ввода уязвимый! На вход принимается символы.
Там где мы смотрели креды, там же видно, что все 3 переменные лежат друг за другом, значит, чтобы переписать balance, надо переписать admin_login и admin_pass. Размер admin_login 10байт, размер admin_pass 34байта и далее unsigned int переменная balance. Но как нам записать в int из строки? Можем обратиться к ASCII таблице. Видим что в коде написан hex суммы необходимой для покупки флага, по таблице это будет CDB.
Пробуем нагрузку
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDB и в отладке видим что у нас сумма стала 424443, что нам не подходит. Почему так получилось? Потому что есть Big-Endian и есть Little-Endian. поменяем местами B и C.
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDC - ура, все переписалось как надо, баланс точный и соответствует необходимому для покупки флага. выбираем пункт меню покупка флага и получаем флаг.
Так как у нас pwn, то будем использовать pwn.
https://forum.antichat.xyz/attachments/29106198/img_3356a32575.png
PWNED
Идем дальше. Идем в MEGABANK от EVIL CORP с огромным желанием "купить" флаг.
Скачиваем банк-клиент, unzip его, открываем в IDA и идем в main.
https://forum.antichat.xyz/attachments/29106198/img_06da40d7bd.png
Далее идем в login
https://forum.antichat.xyz/attachments/29106198/img_9eb2a55cb8.png
Видим, что тут у нас есть пользовательский ввод логина и пароля, но тут у нас все по феншую, ввод ограничен, тут мы ничего переписать не можем. Сразу видно, что в банке хороший разработчик =) но где же взять логин и пароль, не может же он быть захардкоден прямо в приложухе?
https://forum.antichat.xyz/attachments/29106198/img_625e60a79f.png
https://forum.antichat.xyz/attachments/29106198/img_187cbc6061.png
А не, может, оказывается... Запоминаем.
Далее идем в admin_menu
https://forum.antichat.xyz/attachments/29106198/img_15f516bf33.png
Видим, что флаг стоит как чугунный мост. Видим что можно работать, но заработать прям точное количество денег не получится из-за оплаты труда и комиссии, да и работать слишком долго надо.
Видим, что можем поменять дефолтные креды, которые мы видели ранее на свои и ... О, тут прием пользовательского ввода уязвимый! На вход принимается символы.
Там где мы смотрели креды, там же видно, что все 3 переменные лежат друг за другом, значит, чтобы переписать balance, надо переписать admin_login и admin_pass. Размер admin_login 10байт, размер admin_pass 34байта и далее unsigned int переменная balance. Но как нам записать в int из строки? Можем обратиться к ASCII таблице. Видим что в коде написан hex суммы необходимой для покупки флага, по таблице это будет CDB.
Пробуем нагрузку
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDB и в отладке видим что у нас сумма стала 424443, что нам не подходит. Почему так получилось? Потому что есть Big-Endian и есть Little-Endian. поменяем местами B и C.
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDC - ура, все переписалось как надо, баланс точный и соответствует необходимому для покупки флага. выбираем пункт меню покупка флага и получаем флаг.
Так как у нас pwn, то будем использовать pwn.
https://forum.antichat.xyz/attachments/29106198/img_3356a32575.png
PWNED