Как вы, возможно, знаете, я люблю информационную безопасность, и поэтому неудивительно, что когда-нибудь в будущем мне просто нужно было найти эксплойт в Python 3.5+.

Так получилось, что я нашел тот, который по сути является вилкой-бомбой на Python. Я не совсем уверен, как это работает, но я предполагаю, что он выделяет слишком много ресурсов, а системе просто не хватает памяти, она блокируется и выдает «ошибку сегментации». Этого не должно происходить, Python должен иметь ограничение памяти или какой-либо способ защиты от переполнения буфера, чтобы этого не могло произойти, однако для ctypes нет песочницы.

Чтобы значительно упростить, мы создаем массив C char * с действительно огромным числом (например, 640000000), а затем заполняем этот массив максимально возможным количеством экземпляров char *. Затем мы создаем полезную нагрузку, используя «\ x02 \ x02», и добавляем первый элемент в этот огромный буфер, а затем завершаем полезную нагрузку сотней экземпляров «\ x00 \ x00». STX недействителен; мы говорим Python начать передачу строки, а затем начать передачу строки, не завершая ее. Однако, если бы песочница для ctypes существовала, а она должна была быть, это было бы НЕ возможно.