Mail Header Injection은 mail을 보낼 때 $header부분에 참조할 수 있는 옵션이 있습니다.

메일을 보낼 때 참조해서 보내면 해당 메일은 수신자에게 가는 동시에 참조인에게도 함께 보내지게 됩니다.

해당 문제는 $header에 참조 옵션을 통해서 문제를 해결 할 수 있습니다.



PHP Mail header 옵션에는 반드시 Form이 있어야 하고, 추가적으로 CC라는 옵션이 존재합니다.

CC란 참조 옵션으로 Form으로 설정된 수신자 이외의 보낼 사람을 지정할 수 있습니다.

이때 Form과 CC사이에는 개행 문자. 즉, \r\n이 필요합니다.


그렇게 만들어지는 값은 test@test.com\r\n[자신의 메일주소] 입니다.

이때 \r\n은 인코딩 된 값인 %0d%0a를 사용해야 올바르게 전송됩니다.


하지만 해당 값을 입력하면 문제가 해결되지 않습니다.

Burp suite로 확인해보니 '%'가 인코딩되어 %25로 변경되어 있습니다.



그래서 해당 값을 직접 수정해서 전송하게 되면 올바른 password를 보여주게 됩니다.





[참고]


PHP Mail: http://php.net/manual/kr/function.mail.php

[PHP] HTTP Header 인젝션: http://blog.habonyphp.com/entry/php-HTTP-%ED%97%A4%EB%8D%94-%EC%9D%B8%EC%A0%9D%EC%85%98

'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 51  (0) 2018.12.07
[webhacking.kr] prob 54  (0) 2018.12.07
[webhacking.kr] prob 42  (0) 2018.12.06
[webhacking.kr] prob 38  (0) 2018.12.06
[webhacking.kr] prob 34  (0) 2018.12.06

+ Recent posts