como explorar a vulnerabilidade de redirecionamento aberto?
<p>eu tenho a seguinte vulnerabilidade de redirecionamento aberto:</p><pre><code>&lt;?php $redirecturl = $\_get['url']; header("location: $redirecturl"); ?&gt; </code></pre><p>essa exploração envia o usuário da sua página para a página maligna:</p><pre><code>example.com/?url=example.com/faq.php example.com/?url=evil.com/sploitcode.php </code></pre><p>como insiro <code>evil.com/sploitcode.php</code> na página/url da vítima?</p>
<p>exatamente como você está fazendo. a idéia de vulnerabilidades de redirecionamento aberto é usar a confiança que um usuário possui em um site específico (o site vulnerável) e explorá-lo para fazer com que eles visitem seu site.</p><p>então você enviaria este link para um usuário: <code>example.com/?url=evil.com/sploitcode.php</code>. porque o site que eles veem é <code>example.com</code>, e eles confiam neles, eles clicarão nele (em teoria). por outro lado, se você os enviar, <code>evil.com</code>, eles não clicaram nele, porque não conhecem ou confiam nele.</p><p>você também pode ofuscar ainda mais o url <code>example.com/some/nice/sounding/path/%2f..%2f..%2f..%2f..%2f/?url=evil.com/something-less-evil.php?some-unneded=parameters</code>. depois, você também pode agrupá-lo em uma tag nice <code>a</code>, para que os usuários sejam menos suspeitos (a principal vantagem é que passar o mouse sobre o link mostrará a eles um link inocente à primeira vista).</p>
<p>o problema acabou sendo algo tão simples quanto <code>&amp;amp;</code>, mudança simples:</p><pre><code>&lt;input type="hidden" name="return-url" value="&lt;?php echo base64\_encode('index.php?option=com\_file\_manager&amp;amp;view=file&amp;amp;layout=modal&amp;amp;tmpl=component'); ?&gt;" /&gt; </code></pre><p>para:</p><pre><code>&lt;input type="hidden" name="return-url" value="&lt;?php echo base64\_encode('index.php?option=com\_file\_manager&amp;view=file&amp;layout=modal&amp;tmpl=component'); ?&gt;" /&gt; </code></pre><p>fiz o truque. obrigado a todos por suas contribuições.</p> <p>seu site provavelmente foi invadido. meu site teve a infecção <a href="https://blog.sucuri.net/2015/03/pseudo-darkleech-server-root-infection.html">darkleech</a> , que injetou algum código malicioso em <code>wp-includes/nav-menu.php</code>, fazendo com que o .htaccess fosse redefinido para 444 em qualquer carregamento de página.</p><p>eu recomendo que você instale o plugin <a href="https://wordpress.org/plugins/sucuri-scanner/">sucuri</a> e deixe-o restaurar quaisquer arquivos que tenham sido corrompidos. supondo que seu site foi invadido, use a guia post-hack para redefinir plug-ins, senhas e chaves. além disso, verifique se outro usuário administrador não foi criado. use a guia hardening para proteger o máximo possível. você também pode instalar o <a href="https://wordpress.org/plugins/wordfence/">wordfence</a> para mais segurança.</p><p>se você fizer ajustes e o problema continuar voltando, provavelmente você terá uma violação no nível raiz em seu servidor e terá que trabalhar com seu provedor de hospedagem para tentar limpar a infecção.</p> <p>este parece ser um caso de isp injetando arquivos javascript. você está, por acaso, na banda larga bsnl ?. nos últimos dias, o bsnl parece estar injetando o adware em sites http (não criptografados).</p><p>a única solução que eu sei é hospedar seu site em https or alterar seu isp.</p> <p>o operador <a href="http://php.net/manual/en/language.operators.errorcontrol.php"><code>@</code></a> tells php para suprimir mensagens de erro, para que elas não sejam mostradas.</p><p>por exemplo, usando:</p><pre><code>$result = mysql\_query("this is an invalid query"); </code></pre><p>resultaria em um aviso sendo mostrado, informando que a consulta mysql é inválida, enquanto</p><pre><code>$result = @mysql\_query("this is still an invalid query"); </code></pre><p>não faria.</p><p>note, no entanto, que esta é uma prática de programação muito ruim, pois não faz com que o erro desapareça, apenas os esconde e torna a depuração muito pior, já que você não consegue ver o que está realmente errado com seu código.</p><p>em vez de usar <code>@</code>, você deve desativar <s><code>error\_reporting</code> e <code>display\_errors</code></s> apenas <code>display\_errors</code> em <a href="http://no.php.net/manual/en/errorfunc.configuration.php">php.ini</a> </p> <p>olá valdiney, é para você fazer uma variação de código.</p>
<p>usar sua curiosidade e criatividade, variar, não se prender só ao que foi pedido, tipo:</p>
<p></p>fazendo diferente:
<strong> teste 1 </strong>
<strong> teste 2 </strong>
<strong> teste 3 </strong>
<p></p>
<p></p> olá, luis. tudo bom?não consegui entender muito bem sua pergunta. como seria a abertura deste outro código?aqui na devmedia, possuímos um artigo que estarei deixando abaixo, sobre trabalhar com exc... no firefox:

vá no menu --> help --> restart with add-ons disabled e teste se ainda redireciona p/ páginas estranhas. <p>oi murilo, tudo bem?</p>
<p>achei um post que espero que seja útil para você: <a target="\_blank" href="https://templateria.com/blog/conteudo/usando-remarketing-ou-retargeting-no-email-marketing/" rel="nofollow">https://templateria.com/blog/conteudo/usando-remarketing-ou-retargeting-no-email-marketing/</a></p> rogerio, aprenda a gostar do google, uma simples pesquisa pelo termo validação jquery formulario já trouxe dezenas de links:[url:descricao=https://www.google.com.br/webhp?sourceid=chrome-instant&io... <p>atualização de janeiro de 2013: a <strong> <a href="https://github.com/blog/1381-a-whole-new-code-search">nova pesquisa chegou!</a> </strong>, com base em <strong> - <a href="http://www.elasticsearch.org/community/">elasticsearch.org</a> </strong>:</p><p>uma busca por stat dentro do ruby repo será expressa como <strong> <a href="https://github.com/search?q=stat%20repo:ruby/ruby&amp;type=code&amp;ref=advsearch&amp;l="><code>stat repo:ruby/ruby</code></a> </strong>, e agora irá funcionar<sup><sup>tm</sup></sup>.<br> (o nome do repositório não faz distinção entre maiúsculas e minúsculas: <a href="https://github.com/search?q=repo:wordpress/wordpress%20test&amp;type=code&amp;ref=searchresults"><code>test repo:wordpress/wordpress</code></a> retorna o mesmo que <a href="https://github.com/search?q=repo:wordpress/wordpress%20test&amp;type=code&amp;ref=searchresults"><code>test repo:wordpress/wordpress</code></a> )</p><p><img src="https://i.stack.imgur.com/okler.png" alt="enter image description here"></p><p>darei:</p><p><img src="https://i.stack.imgur.com/mjptm.png" alt="enter image description here"></p><p>e você tem muitos outros exemplos de pesquisa, baseados <a href="https://stackoverflow.com/a/5740886/6309">em seguidores</a> , ou <a href="https://stackoverflow.com/a/12241932/6309">em garfos</a> , ou ...</p><hr><p><strong> atualização de julho de 2012 </strong> (antigos dias de pesquisa lucene e indexação de código pobre, combinados com gui quebrada, mantidos aqui para arquivamento):</p><p>a pesquisa (com base em <a href="http://wiki.apache.org/solr/solrquerysyntax">solrquerysyntax</a> ) é agora mais permissiva e o temido "<code>invalid search query. try quoting it.</code>" desapareceu ao usar o <em>default</em> ​​seletor de pesquisa "everything" :)</p><p>(eu suponho que todos nós podemos <strong> <a href="https://twitter.com/pea53">tim pease</a> </strong>, que tinha em um de seus objetivos <a href="https://github.com/blog/1116-tim-pease-is-a-githubber">"hacking em melhorada experiências de busca para todas as propriedades do github</a> ", e <a href="https://twitter.com/vonc\_/status/197565733830541313">eu mencionei essa questão do stack overflow</a> na época;))</p><p>aqui está uma ilustração de um grep dentro do código ruby: ele procura por repositórios e usuários, mas <em>também</em> para o que eu queria pesquisar em primeiro lugar: o código!</p><p><img src="https://i.stack.imgur.com/hhkvy.png" alt="github more permissive search results"></p><hr><p>resposta inicial e ilustração da primeira edição (setembro de 2012 =&gt; março de 2012)</p><p>você pode usar o <a href="http://github.com/search">formulário de pesquisa avançada do github</a> :</p><ul> <li>escolha <code>code</code>, <code>repositories</code> ou <code>users</code> no drop-down e</li> <li>use os prefixos correspondentes <strong> listados para esse tipo de pesquisa </strong>.</li> </ul><p>por exemplo, use a diretiva <strong><code>repo:username/repo-name</code></strong> para limitar a pesquisa a um <strong> código </strong> repositório.<br> a página inicial "<code>advanced search</code>" inclui a seção:</p><blockquote> <p><strong> <em>code</em> </strong> pesquisar:</p> <p>a pesquisa do código examinará todo o código hospedado publicamente no github. você também pode filtrar por:</p> <ul> <li>o idioma <strong><code>language:</code></strong></li> <li>o nome do repositório (incluindo o nome de usuário) <strong><code>repo:</code></strong></li> <li>o caminho do arquivo <strong><code>path:</code></strong></li> </ul> </blockquote><p>portanto, se você selecionar o seletor de pesquisa "<code>code</code>", sua consulta para um texto dentro de um repositório funcionará:</p><p><img src="https://i.stack.imgur.com/a58wf.png" alt="good search selector"></p><hr><p>o que é <em>incrivelmente</em> <strong> inútil </strong> do github é que:</p><ul> <li>se você esquecer de colocar o seletor de busca correto (aqui "<code>code</code>"), você receberá uma mensagem de erro:<br> "<strong><code>invalid search query. try quoting it.</code></strong>"</li> </ul><p><img src="https://i.stack.imgur.com/fjtq8.png" alt="wrong selector for the code filer"></p><ul> <li> <p>a mensagem de erro não ajuda em nada.<br> nenhuma quantidade de "<code>quoting it</code>" tirará você deste erro.</p> </li> <li> <p>depois de receber essa mensagem de erro, você não verá as seções lembrando a associação correta entre a pesquisa <em>seletores</em> ("<code>repositories</code>", "<code>users</code>" ou "<code>language</code>") e a pesquisa (à direita) <em>filtros</em> (aqui "<code>repo:</code>").<br> qualquer outra tentativa que você fizer não exibirá essas associações (seletores-filtros) de volta. apenas a mensagem de erro que você vê acima ...<br> a única maneira de recuperar esses arrays é clicando no ícone "<code>advance search</code>":</p> </li> </ul><p><img src="https://i.stack.imgur.com/fpefn.png" alt="advance search icon on github"></p><ul> <li> <p>o seletor de pesquisa "<code>everything</code>", que é o padrão, é na verdade o <em>errado</em> um para <em>todos</em> dos filtros de pesquisa! exceto "<code>language:</code>" ...<br> (você poderia imaginar/assumir que "<code>everything</code>" ajudaria você a escolher qualquer que seja o seletor de pesquisa que realmente funcione com o filtro de pesquisa "<code>repo:</code>", mas não. isso seria fácil demais)</p> </li> <li> <p>você não pode especificar o seletor de pesquisa desejado por meio do campo "<code>advance search</code>" sozinho!<br> (mas você pode para "<code>language:</code>", mesmo que "<code>search language</code>" seja outra caixa de combinação logo abaixo do "<code>search for</code>" 'digite' uma ...)</p> </li> </ul><p><img src="https://i.stack.imgur.com/6awa6.png" alt="wrong search selector"></p><hr><p>então, a experiência do usuário geralmente é a seguinte:</p><ul> <li>você clica em "<code>advanced search</code>", observa essas seções de filtros e percebe uma que deseja usar: "<code>repo:</code>"</li> <li>você faz uma primeira pesquisa avançada "<code>repo:jruby/jruby stat</code>", mas com o seletor de pesquisa padrão "<code>everything</code>"<br> =&gt; <code>fail</code>! (e os arrays que exibem a associação "seletores-filtros" são <strong> desaparecidos </strong>)</li> <li>você percebe que "search for" selector thingy, selecione o <em>first</em> ​​choice "<code>repositories</code>" ("dah! eu quero pesquisar dentro de repositórios ...")<br> =&gt; <code>fail</code>!</li> <li>desanimado, você seleciona a próxima opção de seletores (aqui, "<code>users</code>"), sem sequer olhar para o dito seletor, só para dar mais uma chance ...<br> =&gt; <code>fail</code>!</li> <li>"dane-se, a busca no github é <strong> quebrada </strong>! eu estou fora daqui!"<br> ...<br> <sup>(a pesquisa avançada do github não está realmente quebrada. apenas sua gui é ...)</sup></li> </ul><hr><p>então, para recapitular, se você quiser "grep para algo dentro de um código do projeto do github", como o op <a href="https://stackoverflow.com/users/392350/ben-humphreys">ben humphreys</a> , não se esqueça de selecionar o seletor de pesquisa "<code>code</code>" ...</p>