Как сканировать защищенную страницу входа в систему. jsp? - PullRequest
1 голос
/ 08 апреля 2020

Я хочу сканировать некоторые данные с веб-сайта с помощью JavaServer Pages и защиты входа в систему.

Проблема в том, что страница входа создается динамически. Сначала я обнаружил, что не могу войти, потому что не могу загрузить страницу входа. URL страницы входа выглядит как https://xxxx.xxxxxxx.edu.au/login/pages/login.jsp. Вот мой python код:

def print_HTML(url):
        request = req.Request(url, headers={"User-Agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"})
        with req.urlopen(request) as response:
                data = response.read().decode("utf-8")
        html =  bs4.BeautifulSoup(data, "html.parser")
        print(html.prettify())

Вот вывод:

<head>
 <meta content="no-cache" http-equiv="pragma"/>
 <meta content="no-cache" http-equiv="cache-control"/>
 <meta content="0" http-equiv="expires"/>
 <noscript>
  <meta content="1;url=https://my.xxxxxxx.edu.au/studentportal/faces/home" http-equiv="refresh"/>
 </noscript>
 <script type="text/javascript">
  function delayedRedirect(){
                        window.location = "https://my.xxxxxxx.edu.au/studentportal/faces/home";
                }
 </script>
 <title>
  Login redirect page
 </title>
</head>
<body onload="setTimeout('delayedRedirect()', 1000)">
 <i> 
  Redirecting to... https://my.xxxxxxx.edu.au/studentportal/faces/home
 </i>
</body>

После этого я go возвращаюсь на последнюю страницу перед входом в систему, которая похожа на https://xxxxxx.xxx.xxxxxxx.edu.au, печатается html, и я нахожу ссылку на go для входа на страницу https://xxxxxx.xxx.xxxxxxx.edu.au/login/saml. Однако, когда я пытаюсь распечатать его, он показывает

<html>
 <head>
  <base target="_self"/>
 </head>
 <body onload="document.myForm.submit()">
  <noscript>
   <p> 
    JavaScript is required. Enable JavaScript to use OAM Server.
   </p>
  </noscript>
  <form action="https://auth.xxxxxxx.edu.au/login/pages/login.jsp" method="post" name="myForm">
   <!------------ DO NOT REMOVE ------------->
   <!----- loginform renderBrowserView ----->
   <!-- Required for SmartView Integration --> 
   <input name="contextType" type="hidden" value="external"/>
   <input name="username" type="hidden" value="string"/>
   <input name="OverrideRetryLimit" type="hidden" value="6"/>
   <input name="password" type="hidden" value="secure_string"/>
   <input name="challenge_url" type="hidden" value="https%3A%2F%2Fauth.unimelb.edu.au%2Flogin%2Fpages%2Flogin.jsp"/>
   <input name="request_id" type="hidden" value="1031689933436939677"/>
   <input name="authn_try_count" type="hidden" value="0"/>
   <input name="OAM_REQ" type="hidden" value="VERSION_4~Dx0y9HYwplTsrfWQuqCU5Y2hQlk96FnIkBSXmLxTfuyLy0XUtqGK20TF4Z7nTGFfHouR5m7KmcK96in%2f670EPaaukVhyOLld36hlyZe4ZtPW9Bvz%2bs%2fN%2fQXgcBw5z5ppJksT6HckJtxSI1TSWL5fPHKBjCQk0MuIzrxmH%2b%2fP4NnoeL73NCL4mCLoIu6NrPQ8q28kYR8Gi2Qh9i1mqOtr1QXl%2bXzeAXMS6ShA307odSH%2fT1GzsEcxTEEPKd7JLXUd8Z28iQM4t5PyVQJVHqiqTgyVxvFgiPlsrs%2bBb%2bhJ1tmCyvuPPsCc9cOsX7p1Jg0gHZkoRJjxrbYhXKVqJvAj9HhBve5zI6Hs73m6YyKyWgztO3gmlj5clBHMAzEY5EJ4MU8OojP6fxdd5cRL2GQPUQ6cGk9IV4HOSV2SPCaKdzkXGt5DwLXnMLsx3AJpiPEXptSns%2fDm%2fzPcnWbtD%2fZrFKgM%2b6hatFtlsFPk65N0fbNu1T5FMGVNioqIVBbkdcNyEHyoPmioCBXb9eB5KWXdGDudLApKy0nVdLjrYE14hRDwZstX8SkpqvKhjKB5JeiWCKuPvPe%2bWFg6ZcVftSj3UuaNaH%2f4Wst4suXGKq9t8di2e1kbJAV5pBamxkwVKrHJ9cz%2boJzqgJ5Cx6s1dxb%2brHBxTw6VJ%2f9otIlaplxNvKwilRUOhXqgoGVJxsVp5z9BDdnWt%2fzgjK8Rxq6qtQt1LfmM5pSdNB3Rn%2b6Q3S0kgofs7goOr%2bEqo1Fc3kTxn%2ffMjvASU%2fdYwFuVafahA4lkgplHT7986SdHt8V1A5dLLRSdX8PgwHMd4XlJHYEkw1Neeoog%2fG7Lq%2fysG%2bfDc5rCvjoj0gLZy%2fowUhgqYwaZvfNGLNkH7H802e0bP59Ms3IU605%2f9o7in%2bS1u3ZE3PnNabP1pu0somVqcRxz8hxOEkRbRLHZwYB%2fTNvAalywCAZ9sCwweH8tU0oFAuXwWdUDuviq8Hz%2bBWwhHEJkSfv%2b100lgRBlX6p%2b9HJYW4cqgcXU1oT%2f8qBywYHw1Ap6DmZb6L0S7MUNw%2ft8%2fg%2bO5NwGRbrOjlV0cQ4tCEU3ehZiEnXwuunjVOAfjjiyACjkfstnY7vSsFbcWEeBwtvZIW2RXFFV2qYPaS6iqZxlt0fWpV2VvL%2fb9BipKOgtJxFigvnsSa5a9THBrlBM%2byA1pNNI2dm3s18Fx68z0oIQhNDEVVx7Q7oOl5TBdUxYgU7uWrkqtKf%2flxvGrsKEmhdWModmOIiYKq2I4U6KcYmN2fogi7neh6t%2fZbg7%2bMQ%2fvQAeVOrKpJWB558DXm0qDW65msxQgmwhg6ct7D29iSOVDyLGpnrMAw5QU%2fB7jwx5OinbJ83UyGCJqTm0T9%2fm9fAq4ofjQ0p3YV62iokrCC0E0ZR7GBh6%2bFaaElOSdoL1nxdVJN2KNXTuwFgg8iK5%2fPVcoYgLsCRXGq0Dutwaf%2fp6UgjdTKHz5y0W4DO3ZTsPF4jhhWUJ%2fvtG3slDJHN1EOb78ACnrAi5S4q109xFPqj8s5U835yUdaHIMFXxMpT2pWutWtbC39p09y9LXuwUM4obMutVmA5EvYvSLqPnu3KAiMGDttfbvmkA9AjSDvV6mAwv8k9urj%2bo%2fSQkFxNt3aUD4ymERZ7ksyjQbm2ud%2f15gFvfNizTRE6JsamIWO4UICJUX6Pr7A%3d%3d"/>
   <input name="locale" type="hidden" value="en_AU"/>
   <input name="resource_url" type="hidden" value="%252Fuser%252Floginsso"/>
  </form>
 </body>
</html>

Можно ли как-нибудь сделать свою программу python go на странице jsp? Спасибо.

1 Ответ

0 голосов
/ 08 апреля 2020

откройте devtools в вашем браузере, нажмите сеть, go на
https://auth.xxxxxxx.edu.au/login/pages/login.jsp, войдите в систему. Проверьте, что было отправлено браузером в пост-запросе. Если это простая аутентификация, просто скопируйте весь пост-запрос с заголовками et c и поместите все это в ваш запрос.
Или еще более просто скопируйте как CURL из devtoll и конвертируйте в запросы (например, здесь https://curl.trillworks.com/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...