Доброго времени. Нашел такую XSS на сайте, во время редактирования своего профиля - все поля отсылаются в JSON'e, и если там присутствует символ " - он его экранирует и получается \". Во время сохранения профиля я перехватил запрос с помощью BURP'a и удалил символ экранации, т.е. получил чистую свою строку "><img src=x onerror=prompt(1)>, после чего было всплывающее окошко что у вас ошибка в JSON'e {весь JSON} ну и через это сообщение вылезла XSS. Хоть данные и сохранились, но при следующих переходах на данную страницу - XSS не отрабатывало... Вопрос, что можно сделать с помощью непонятной такой XSS? Спасибо
Ты просто изменил исходный код, естественно он не сохранится. Он меняется только у тебя, но не на сервере.
Ну reflected xss работают так же.. единственное что ты можешь зашарить линку, но они так же не хранятся на сервере... поэтому и спрашиваю, может быть можно что-то другое залить на сервер или достать с сервера за счет того что существует такая возможность. Потому что в других местах на сайте - у меня просто вылетает ошибка, что, что-то пошло не так, а тут мне возвращается весь JSON да и еще с конвертацией тегов. Спасибо
возможно выводится ошибка и вместе с ней вектор. посмотри, какой ответ приходит при невалидном JSON и куда он вставляется в страницу
В общем когда не валидный JSON на сервер походу отправляется репорт host/js-report. туда кидается большой кусок верстки + куча скриптов... но тело POSTa следующая: HTML: -----------------------------2391265022744 Content-Disposition: form-data; name="uri" https://host/dashboard/business/profile -----------------------------2391265022744 Content-Disposition: form-data; name="caller" function onerror(event) { prompt(2) } -----------------------------2391265022744 Content-Disposition: form-data; name="dom" <script id="dashboard-navigation" src="/dashboard/navigation.js" type="text/javascript" async="true" data-global-interface="dashboardNavigation" data-app-id="dashboard" data-api-url="https://host"></script> <div id="dashboard-navigation__container"><style>@media screen and (min-width: 1258px){ ... etc. и еще куча всего посылается... ... } -----------------------------297832247625910 Content-Disposition: form-data; name="arguments" 2 -----------------------------297832247625910-- т.е. походу XSS не запихнуть... разве что может быть можно что-то на сервер залить!? Буду благодарен за ответ.
йопт ладно, еще раз попытаюсь объяснить... во время изменений своего профиля в одно из полей я вставил payload "><img src=x onerror=alert(1)>. При сохранении я поменял свой запрос заново, т.к. отправляется в JSON формате, и там идет экранация символа ". XSS - сработала, но когда я перезахожу на страницу заново - XSS нет (какае-то типа reflected, но только я могу ее получить, и другим не могу отправить ее...). В это же время отправлися ответ о ошибке на сервер (тело запроса выше). Вопрос, могу ли я что-то добавить \ залить в этот репорт, чтоб получить \ скачать какие-то интересные данные? Думаю сейчас понятнее.... Спасибо.
Наткнуля на xss на json , вставляю в форму алерт и он срабатывает без перезагрузки странички . Сделав такую же форму и отправив алерт не получаю . Как юзать такие баги ? Передавать гетом тоже пробовал но не срабатывает
Ему это уже не нужно , 2 года прошло ) Лучше мне подскажите, есть форма в которой исполняется алерт без перезагрузки страниы, но браузер не отправляет ничего на сервер. Как заюзать такой баг ?Можно кк то открыть его в айфрейме на своем сайте и вставлять код в форму уже в айфрейме . ?