Size: a a a

2021 April 05

L

Lex in SPbCTF
а, ну типо можно наверное ret addr на стеке найти
источник

PB

Pavel Blinnikov in SPbCTF
ну крч
с помощью форматки из  bss меняем любой из адресов стека, которые лежат на стеке на адрес return value
затем в новосформированный адрес пишем one gadget
источник

L

Lex in SPbCTF
и его переписать
источник

PB

Pavel Blinnikov in SPbCTF
done
источник

L

Lex in SPbCTF
чет сложно, не понимать
источник

PB

Pavel Blinnikov in SPbCTF
пропустил шаг
итак, значение лежащее по адресу стека на стеке переписываем на ret address, потом по адресу ret addr пишем one gadget, выходим
другой способ: также формируем адрес на стеке, но уже например malloc_hook
там чуть более сложно, потому что нужно еще одну запись делать
источник

PB

Pavel Blinnikov in SPbCTF
крч суть в том, чтобы с помощью самой форматки сформировать на стеке адрес, по которому мы можем записать
источник

L

Lex in SPbCTF
о, только дошло) годно, спасибо
источник

VR

Vlad Roskov in SPbCTF
streamlined-способ - это с argv
источник

L

Lex in SPbCTF
как ты показывал через переменные окружения или арги?
источник

VR

Vlad Roskov in SPbCTF
типа гарантированно на стеке есть поинтер argv[0], который указывает на строчку на стеке
источник

VR

Vlad Roskov in SPbCTF
да
источник

VR

Vlad Roskov in SPbCTF
верней даже есть поинтер argv, который указывает на argv[0], который указывает на строчку
источник

VR

Vlad Roskov in SPbCTF
через argv[0] патчишь эту строчку, записывая туда за байтом байт, а через argv патчишь argv[0] чтоб сдвигать его на 1 байт вперед
источник

L

Lex in SPbCTF
а, ну со стеком получается тоже самое, что Павел выше сказал
источник

L

Lex in SPbCTF
найти адрес, на стеке, который указывает еще куда то на стек
источник

L

Lex in SPbCTF
и их две по очереди менять
источник

L

Lex in SPbCTF
а еще тогда вопрос) на стеке реально найти адрес, который указывает на адрес либсы?
источник

L

Lex in SPbCTF
у меня типо puts(stack_addr+i)
источник

L

Lex in SPbCTF
а %s запрещен)
источник