Вставьте шелл-код

У меня возник небольшой вопрос.

Скажем, у меня есть следующий код внутри консольного приложения:

printf("Enter name: ");

scanf("%s", &name);

Я хотел бы воспользоваться этой уязвимостью и ввести следующий шелл-код (MessageboxA):

6A 00 68 04 21 2F 01 68 0C 21 2F 01 6A 00 FF 15 B0 20 2F 01

Как я могу ввести свой шелл-код (шестнадцатеричные значения) через консоль?

Если я ввожу ввод как есть, он обрабатывает числа как символы, а не как шестнадцатеричные значения.

Большое спасибо.


person Michael    schedule 19.05.2012    source источник


Ответы (1)


Вы можете использовать в качестве стандартного ввода файл с желаемым содержимым или использовать команду echo.

Предположим, ваш шелл-код — AA BB CC DD (очевидно, это недопустимый шелл-код):

echo -e "\xAA\xBB\xCC\xDD" | prog
person MirkoBanchi    schedule 19.05.2012
comment
Я не понимаю, можете ли вы объяснить и привести пример, пожалуйста? Я не могу изменить исходный код.. - person Michael; 19.05.2012
comment
Создайте файл input.txt в каком-нибудь шестнадцатеричном редакторе, содержащий эти символы. Затем запустите консольное приложение следующим образом: program.exe < input.txt - person K.Steff; 19.05.2012
comment
Понятно, а как насчет команды echo? Как это может мне помочь? - person Michael; 19.05.2012
comment
Однако я вижу, что ваш шелл-код содержит нулевые байты... scanf будет копировать до первого нулевого байта, поэтому вам нужно создать шелл-код без нулевых байтов. - person MirkoBanchi; 19.05.2012
comment
@MirkoBanchi: Поскольку он упомянул MessageBoxA, я предполагаю, что речь идет о Windows, где этот echo не сработает. - person DCoder; 19.05.2012
comment
Я попытался скопировать и вставить вашу эхо-строку, и, к сожалению, сканф принял только слово эхо в качестве входных данных. Так что это все еще не работает. Я понимаю, что это очень интуитивно понятно для вас, но я никогда не использовал команду echo и хотел бы объяснить, что я делаю неправильно, большое спасибо! - person Michael; 19.05.2012
comment
К сожалению, я не очень хорошо знаю Windows... однако, возможно, это может быть полезно . - person MirkoBanchi; 19.05.2012