Description
Category: Web
Source: webhacking.kr
Points: 150
Author: Jisoon Park(js00n.park)
Description:
Write-up
Mail Header Injection 문제이다.
페이지 소스를 열어보면 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 계정으로 password 정보를 보내도록 되어있다.
제목에서 알려준대로 injection을 하기 위해 우선 email header의 구조를 알아보자.
검색을 통해 email header를 찾아보면 굉장히 여러가지를 넣을 수 있도록 되어있는 것 같은데, 일단 저 메일을 나에게 보내는 것이 목적이니 관련 필드를 찾아보면 To, Cc, Bcc가 있다.
To를 넣어봐야 mail 함수에서 admin@webhacking.kr으로 덮어쓸것 같으니 날아가는 패킷을 잡아 Cc로 원하는 주소를 넣어보자.
원래는 내 실제 이메일 주소를 넣어야 하지만, 대충 Cc에 뭔가 다른 주소가 들어오면 password를 알려준다.
알아낸 password를 auth 등록하면 점수를 획득할 수 있다.
'writeups > Web' 카테고리의 다른 글
WTF_CODE (0) | 2019.11.23 |
---|---|
webhacking.kr 058 (0) | 2019.11.23 |
webhacking.kr 039 (0) | 2019.11.23 |
webhacking.kr 038 (0) | 2019.11.23 |
webhacking.kr 032 (0) | 2019.11.23 |