Por que não posso ir diretamente para o sinal do Oracle na página?

17

Quando colo esse URL (abaixo) no meu navegador da web ... Chrome ou IE
link
recebo um erro dizendo ...

Error! Do not use bookmarked URL.
Please type the URL you are trying to reach directly into your browser.


No entanto, se eu colar esta URL no meu navegador (abaixo), link Em seguida, clique no link Sign In/Register que meu navegador leva para a mesma URL (na parte superior), mas sem um erro.

A minha pergunta é .. Como posso ir diretamente para este URL ( link ) sem ter que ir para algum outro URL no site primeiro?

    
por Rose 05.03.2015 / 17:41

4 respostas

21

Meu primeiro palpite é que a página que você está tentando acessar exige que um token esteja pronto antes de ser carregado corretamente. Parece que você pode registrar rapidamente esse token no servidor e ir para a página seguindo este link:

ligação

Embora esse token possa ter sido útil para outras coisas. Eu já descobri que não é realmente necessário. Ao olhar para os cabeçalhos que este link causou, eu pude determinar que eu seria capaz de duplicar os resultados de (a maioria) o que aconteceu quando você seguiu esse link simplesmente criando este formulário HTML para fazer o post para mim :

<html>
<head>
<title>Oracle SSO</title>
</head>
<form method=post action="https://login.oracle.com/mysso/signon.jsp">
<input name=site2pstoretoken value="v1.2~656BF073~512EDAC9FEA5F9140AE8A612213BCA280B4FF70D159812B6FDF2EB8D5CA98482EB385D4542873325FB366CCD4F17E21E1329A9531F844D92AC97A70A8287652D76277798A2DDF3D738EAB735E756B24FFDF89DC77C46F81AE712DB7D4F3A0CAF8EB1AE708C04FC58FEAC6D44A4DCCA81BD967FA1AD32ED298B5563DABC10443620E45DC539A7F6E5A5AB22A2F7541EF9B3339AFE4EBBC920989B7E7556B3B6DBF84FA7643382B2907A6183D06FDD9E1358A534083E4B73A5FB6BA840A981AE3A41BF878240DA4C48C74765E10DF30AC91057225CDC77C9241409FE189D251B2EAFF14E9776ADDC3C81541F53CFFC745A1A93DFAAD06B496B5630E1A725266B84DA43FEB216463D4C89A6164441B7CEFC600CC991B549A52BC45550156A365C699CF8A89250427BA9" />
<input name=v value="v1.4" />
<input name=p_submit_url value="https://login.oracle.com:443/sso/auth" />
<input name=p_cancel_url value="http://www.oracle.com" />
<input name=p_error_code value="" />
<input name=ssousername value="" />
<input name=subscribername value="" />
<input name=authn_try_count value=0 />
<input name=contextType value=external />
<input name=username value=string />
<input name=contextValue value="/oam" />
<input name=password value=sercure_string />
<input name=challenge_url value="https://login.oracle.com/mysso/signon.jsp" />
<input name=request_id value=-4782010454026398257 />
<input name=OAM_REQ value="VERSION_4~VeXlMi8vRU%2fhyhTAezfX%2fU92tvWZdduOvqF%2b%2fZcYUDnWrzu4V%2fcd4uyZvxIJbR7IxaYlaMA0wEkYKHSaDT5s7MPlYk3PRIlWNYxRTtYnK0kS2JQZrKDOL4CStRvsWAbuaMQJepMzUvRrxCEamyAH0sRT5caX3lCeI1iS7znsSTNIOXOl%2fgzOIoCD4JTPfO6WAbGiW3HdRBx5Y%2bDUrjsA%2fTPURYUU%2bXZ2XpPD%2fzWu11oXQV9C9lR36H8x97UkYcjyjtT%2b9vdHp8a0QwbAxG26N4eDokGnz5MRKaILo%2bsm2itImqCAlaTDWPBhTisfT89Av8Vv6FYAG%2bUDwj1BtTpshXinS0YHDwGAGYK7GB1VIeXraYIhR7V7C92H7dMGl8j%2fNof7JiN%2fjPEIRLjnX%2fgWNqNRzRaJe%2be7LVUrbOfGkvr2l%2fuAtYhY%2b9Q%2b2QvyHp%2bESS4Mnt4We6TdZ7Ap4zQbV3ZWh2f8vbBJYSw25R77Q2JatsjQQCJnAbKtwKwmauNHZgdo8yeeq7KZoltgciAZq9cm34CgQ3IburhracegH%2bFc9jV%2fnfu8BknpoIAjgDOdxtguYtoQpKitkwCGsQLPm9oaxE0n8wbJLWta2Vj7RLh5HmF7Za%2btda6t%2fW9MweMWiq66MvGZtDIa8pNycALi4SHtfp1SiVlhABeuVftbaoM%2fDStyjbPEUXEJBxLVYOiMODjov0GtsD5ZTzP9NH39ata8fZvHjyXUxTgZmhJQsZPH4r5ks2cz2tV%2bpw5Gb4U2Wvl81iXlVcSfiwGSp55qs9xSbJkQkBl9eagNO20RsKBI9W9KNTo3Boku5SMVOTt%2bsPPXwiiJlkblq2Jn7GLhDX8oFH36XsSlo%2bIPqWfCgaesTXyYnnsfK%2b2u8uByuRvDy6XCuj6O0ytLp8sKhFNAGZq1JVhIrh5%2bgxiLkZ%2bL2SVVV1HsP2TweR9WkFvytSgdx06NPrNvDJKFGvlV%2f8428uz5cCAUF5cr%2bX%2fiQ42EwsF3iZF1nQcHqcF44v7CBYYGuAW%2fDr9ojnrjj%2bT6dstOScY1vjLXIpgQs83wsbc1KfA26907E42yEgV5sPexC452gIPvcq4rLRr8Hm4hhWXnMxF1kX2zZnruo7yldr2VIT%2bUy11ZT4mcW7AgSipQaTkmbOgtv3nuvipoiGq9AeEzz%2fyUQurw2BSXcsP4HgMPO2cA5G93%2bBsT90gNEiQySyDwbJShjEVrCfry6a00zDzKXaddOAzinHOe7zHXJSbSoeqOw1XzS3bv8G7gcS3XNGa3yOUP%2fhHcNdpxqa%2bwbsEag9xKvCJRxr5Zr8GZK2GWu5XU8Kx9j6XiIQtsU1%2bl8p1AaP%2bCuKFgXz6gK2YePb6DPYmhyasplXtq569ytFdaD5NOgUN2CeRqjdxoKTOlyZWfr6bNZf1hI0sYUT8FlP0O%2fQ%2bi65j2zRBKPiosOsGNwnzbDOLcF1bZfJCmOL5u6cx8QJXe2VFQewIcC%2fvt8CMFDKwz82N%2bxtYkhMs%2fj2GmACcHeuTPBNnRjAO059S6mE3FMf0hFfLarLbGW6uLCiV%2bWKPq7f6FqIAYy73e%2fW5yd6RtajzaLaA14fd2AIx62WqTCLTbQTMwDBG2Y966dZvyQwzEmfNVWp317NB%2byvdM0HE0bPKlPHs5IVPGBSBPgSPc4ICqTMprlj%2fapVfQT5cDa2m%2fqyo6Z2Rhj19uyJwzSoX4Ib%2bMP3q90E6SqligrDKxFtCDIa2Kc3As9F8sDhU7%2bgvYXX%2bABP1GAGFtlDhq%2fA4vq%2bkD4%2bIFtq2hg1svtuPA7YwajG5z1ZZF1EsZqbKCZKCe8nJKe2GZDf3miXR1%2fAZgTnjmaks7vTHwkB9k48YNomqgSBsqPSOYRNVOIYrKPsKeRMf6xvKCpEl6Whst5E1BsT1zWl6WZPhcn%2f0ABsl%2b5AUtZ%2bvKqI%2fyymq1zOidcpn6Ao%2bO55wSAj%2botPbUr1UyrQbMFlV7jWJPYOs%2bicDSRf1DZlC1w5rsIUz7HRAjVcc4yyRnTwOeGXnoUTuzoHJ5PhmxpBIbr0otlfiDMHY6cm960PvYDAtWUSgOnwA4%2bPtY4YtmBSZuvSrk3W7L%2f1%2fTaYGb0uccJx1sfB6qwD1Isk80NxnKWCCftv0W0AE3zf9xpei1SWNp%2fMJH1yfpVFM%3d" />
<input name=locale value=en_US />
<input type="submit" value="Submit">
</form>
</html>

Como você pode ver, o referenciador não é crítico aqui. Tudo o que importa é que o formulário de login receba as informações contidas no formulário de configuração. Eu ainda não sei onde conseguir esses tokens além do site principal, mas você precisa descobrir isso sozinho.

Depois de brincar um pouco mais com isso, descobri que o único valor no formulário acima que importa é o request_id . A seguinte versão, muito mais simples, pode ser usada:

<html>
<head>
<title>Oracle SSO</title>
</head>
<form method=post action="https://login.oracle.com/mysso/signon.jsp">
<input name=request_id value=-4782010454026398257 />
<input type="submit" value="Submit">
</form>
</html>

Além disso, o formulário aceitará esse valor como GET ou POST. Isso significa que você pode acessar o formulário em: link

Isso torna as coisas muito mais fáceis. Agora, você só precisa descobrir se precisa ou não manter um novo request_id por perto ou se ele durará para sempre. Pode nem mesmo importar o request_id que você usa. Eu não tenho uma conta nessa página (por isso não posso testar isso), mas se eu digitar qualquer número para o request_id ele exibe o formulário. Tente fazer login com um número que você acabou de criar assim:

link

ou mesmo sem identificação, assim:

link

Eu não testei isso além do fato de que isso fará com que o formulário seja exibido. Leia os comentários para ver se alguém mais o fez.

    
por 05.03.2015 / 18:21
6

Eles estão fazendo uma magia negra estranha com base no cabeçalho Referer , que contém o URL da página anterior, se houver.

Basicamente, se o referenciador estiver presente e definido para outra de suas páginas, tudo está bem, caso contrário, eles lançam um erro. Só eles podem explicar por que estão fazendo isso.

Isso pode ser uma tentativa de aumentar a segurança, mas para mim isso parece um teatro de segurança como favorito da URL genuína parece mais seguro do que digitar e possivelmente digitar incorretamente o domínio, o que permitiria que um invasor registrasse o domínio digitado incorretamente ( oralcle.com por exemplo) e colocasse uma página de phishing.

    
por 05.03.2015 / 17:56
4

É um sistema de "login único". O domínio login.oracle.com apenas permite que você se autentique, mas não possui conteúdo próprio. Assim, se você não vier de outro domínio que requeira que você faça login, ele não exibirá conteúdo algum.

Como não há conteúdo nesse domínio e seus favoritos não incluem informações sobre o que você estava tentando acessar, eles apenas avisam que seu favorito está apontando para o endereço errado.

Após o login e a duração da sessão, você pode acessar qualquer subdomínio no oracle como um usuário autenticado sem a necessidade de efetuar login novamente.

Parece que você costuma trabalhar com o google: você precisa fazer o login em accounts.google.com , mas normalmente você o acessa usando outros domínios ( www.google.com , mail.google.com , etc)

    
por 05.03.2015 / 21:27
3

É provável que seja um provedor de identidade centralizado, que pode ser usado por vários sistemas. Parece que está usando o SSO do Oracle Application Server. Eu não estou familiarizado com esse produto específico, mas esse sistema pode ser assim:

  1. O usuário acessa o site de destino.

  2. O site de destino redireciona para o usuário para o servidor de login. O redirecionamento inclui um token que fornece detalhes sobre a solicitação original. (O cabeçalho de referência também poderia ser usado, mas tornaria mais difícil lidar com casos em que a solicitação inicial era uma solicitação POST em vez de uma solicitação GET.)

  3. O servidor de login aceita o token, reconhece que o usuário ainda não está conectado e solicita que ele faça login.

  4. O usuário efetua login no servidor de login.

  5. O servidor de login retorna o usuário ao recurso solicitado originalmente, fornecendo informações sobre a solicitação original e a identidade do usuário de volta ao aplicativo.

  6. O aplicativo reconhece e confia na asserção de identidade fornecida pelo provedor de identidade, para que ele manipule a solicitação original.

Uma vantagem para este sistema é que o sistema de identidade é menos acoplado ao aplicativo que consome os serviços de SSO. O provedor de identidade é responsável por autenticar os usuários, portanto, aplicativos individuais não precisam se preocupar com a mecânica de autenticação de usuários.

Uma organização também pode fazer grandes alterações no processo de autenticação sem que cada aplicativo precise ser reconfigurado para o novo método. Isso poderia significar o aprimoramento de logins baseados em senha com um chaveiro RSA, alternando para a Autenticação Integrada do Windows, movendo os usuários de um sistema LDAP legado para o Active Directory e assim por diante.

Se vários aplicativos usam o mesmo provedor de identidade, você também obtém o benefício do logon único. Isso significa que, uma vez que você tenha feito login em um aplicativo, o processo de acesso a outro aplicativo integrado será:

  1. O usuário acessa o site de destino.

  2. O site de destino redireciona para o usuário para o servidor de login. O redirecionamento inclui um token que fornece detalhes sobre a solicitação original. (O cabeçalho de referência também poderia ser usado, mas tornaria mais difícil lidar com casos em que a solicitação inicial era uma solicitação POST em vez de uma solicitação GET.)

  3. O servidor de login reconhece o usuário da sessão existente. Ele retorna o usuário ao recurso solicitado originalmente, fornecendo informações sobre a solicitação original e a identidade do usuário de volta ao aplicativo.

  4. O aplicativo reconhece e confia na asserção de identidade fornecida pelo provedor de identidade, para que ele manipule a solicitação original.

Observe que, como o usuário já está conectado ao provedor de identidade, tudo o que ele experimentará são alguns redirecionamentos rápidos.

    
por 06.03.2015 / 00:50