본문 바로가기
웹 해킹/webhacking.kr

webhacking.kr 47번

by sonysame 2018. 2. 10.

Mail Header injection

*서버문제로 mail함수는 주석처리 해놓은 상태이며 취약점을 공략할 수 있는 구문을 입력했을 때
정답이 출력되도록 하드코딩 해놨습니다.

Mail :


소스코드는 다음과 같다.


<html>
<head>
<title>Challenge 47</title>
</head>
<body>
Mail Header injection
<pre>
*서버문제로 mail함수는 주석처리 해놓은 상태이며 취약점을 공략할 수 있는 구문을 입력했을 때<br>
정답이 출력되도록 하드코딩 해놨습니다.
<br><br>
<form method=post action=index.php name=mailfrm>
<font size=2>Mail</font> : <input type=text name=email size=50 style=border:0 maxlength=50><input type=submit>
</form>


</pre>

<!-- index.phps -->

</body>
</html>

주석처리 된 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>


mail($to,$subject,$txt,$headers);

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


subject-> readme

txt-> password is $pass

headers-> $header -> From: $_POST[email]\r\n



메일 보낼때 admin@hacking.kr로 보내지기 때문에 패스워드를 알 수 없다!

따라서 

CC(참조)를 이용해주어야 한다!


다음과 같이 cc를 추가해서 보내면

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

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

참조받은 사람도 메일을 받을 수 있다!




Password is 743903a5f0f2967570f67b6601b3974d

*cc와 bcc의 차이

cc: 참조 ->받은 사람의 화면에도 참조 주소가 노출된다., 참조된 사람의 화면에도 메일 받는 사람이 노출된다. 주소가 서로에게 노출되는 것이다.

bcc: 숨은 참조-> 받는 사람은 숨은 참조는 보이지 않는다. 참조인의 화면에도 숨은 참조는 보이지 않는다. 숨은 참조인의화면에는 보내는 사람, 받는 사람, 참조인의 정보를 모두 확인할 수 있다. 

'웹 해킹 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 23번-XSS  (0) 2018.02.10
webhacking.kr 20번  (0) 2018.02.10
webhacking.kr 58번  (0) 2018.02.10
webhacking.kr 32번-파이썬 스크립트  (0) 2018.02.10
webhacking.kr 31번-포트포워딩  (0) 2018.02.09