Wysłanie request'u uzywajac SSL przez proxy

0

Witam serdecznie,

Chce wyciągnąć dane z pewnej strony internetowej X przy użyciu BS4, która to z kolei korzysta z technologii AJAX. Problem leży w tym, że aby połączyć się ze stroną muszę najpierw wysłać request używając SSL, ale gdy wysyłam go to proxy mi je blokuje :).
Jedno jest pewne , dostęp do strony mam - sprawdzane z poziomu przeglądarki

Znajdzie się jakiś szpec ?:)

0
  1. Jakie proxy? Co to znaczy blokuje?
  2. Co to znaczy request używając SSLa?
  3. A ta strona na pewno tych danych nie serwuje jakimś webserwisem?
0

SSL/TLS zwykle jest prawie niewidoczne dla ciebie. Ot po prostu socket TCP IP który może zgłaszać jakieś dodatkowe błędy.
Prawdopodobnie problem jest z certyfikatem.
Najprawdopodobniej twoja aplikacja python jest tak skonfigurowana, że nie ufa certyfikatowi jakim serwer się identyfikuje.
Podaj dokładnie jaki masz błąd.

0

Hej , cześć(strasznie zamuliłem, nawał pracy)

Generalnie robię coś takiego :

import requests
import ssl

CA_path = ssl.get_default_verify_paths().openssl_cafile
rq = requests.get("https://some.url", verife = CA_path)


OSError: Could not find the TLS certificate file, invalid path: C:\Program Files (x86)\Common Files\SSL/cert.pem # error

pliku tam nie ma i zastanawiam się nad tym, jak przeglądarka robi taki request ..skąd ona bierze właściwy certyfikat, bo jeśli ja bym miał dostęp do tej ścieżki to prawdopodobnie problem by się rozwiązał :)


  1. proxy? Co to znaczy blokuje?
  2. Co to znaczy request używając SSLa?
  3. A ta strona na pewno tych danych nie serwuje jakimś webserwisem?
  1. Znajduje się w sieci firmowej i bałem się, że proxy odrzucało mój request z jakiegoś powodu, ale dlaczego miał by to robić? skoro przeglądarka może się komunikowac
  2. Miałem na myśli to, że strona uzywa HTTPS i chce wysłać taki request żeby serwer chociaż odpowiedział kodem 200.
  3. Przyznam, że nie rozumiem ( ale zdaje się, że tak). Dostanie się do strony to dopiero początek, generalnie storna używa AJAXA, a ja chciałbym sparsować albo statycznie wygenerowany HTML z odpowiedzi, albo jeśli się uda to złapać JSON'a :), ale na razie nie wiem nic, bo utknąłem na samej komunikacji .
0

Chyba nie rozumiesz jak to działa.
Przeglądarka, ma preinstalowany zestaw ceryfikatów CA, do których producent przeglądarki ma zaufanie.
W momencie łączenia się z jakimś serwerem, serwer wysyła swój łańcuch zaufania, a przeglądarka sprawdza poprawność łańcucha i sprawdza, czy ten łańcuch ma ogniwo należące do zestawu zaufanych certyfikatów.
Python też ma jakiś zestaw zaufanych ceryfikatów. W programie w razie potrzeby możesz zdefiniować ten zestaw.
A twój błąd polega na tym, że coś jest źle skonfigurowane i pod wskazaną ścieżką nie ma pliku certyfikatu.

0
MarekR22 napisał(a):

Chyba nie rozumiesz jak to działa.
Przeglądarka, ma preinstalowany zestaw ceryfikatów CA, do których producent przeglądarki ma zaufanie.
W momencie łączenia się z jakimś serwerem, serwer wysyła swój łańcuch zaufania, a przeglądarka sprawdza poprawność łańcucha i sprawdza, czy ten łańcuch ma ogniwo należące do zestawu zaufanych certyfikatów.
Python też ma jakiś zestaw zaufanych ceryfikatów. W programie w razie potrzeby możesz zdefiniować ten zestaw.
A twój błąd polega na tym, że coś jest źle skonfigurowane i pod wskazaną ścieżką nie ma pliku certyfikatu.

Owszem, wiedziałem że pewnie gdzieś brakuje mi jakiegoś elementu układani, dziękuje za wyjaśnienie.

Wydaje mi się, że poszedłem o krok dalej ...:), a mianowicie - teraz dostaje kod odpowiedź HTTP 401 od aplikacji.


url='https://mojUrl.aspx'
response = requests.post(url,verify=False)

print(response.status_code)

 InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)
401

Nie wiem jak to działa i jak ten mechanizm się nazywa, ale po zalogowaniu się do swojego konta Windows, przeglądarka loguje się niejawnie z moimi poświadczeniami( czyli login windowsowy i hasło) do tej strony, przypuszczam że wysyła moje poświadczenia przez cookies, albo cos.. nie jestem specem od WEB'U.

request metodą GET wygląda tak

fromp.png


Dam więcej info, może ktoś się dołączy :).
W momencie wprowadzenia danych w tym oknie formularza:

2019-09-18_13h54_30.png

zostają tworzone 2 requesty typu GET!

2019-09-18_13h54_40.png

Po kliknięciu w żadana pozycje w menu, zostają robione dodatkowe requesty POST:

2019-09-18_13h54_50.png

i teraz:

2019-09-18_13h54_60.png

tutaj jest request , który ja bym chciał złapać. To tu są najcenniejsze informacje dla mnie, zakładając że nie będę musiał parsować statycznego HTML'a. Może ta informacja coś jeszcze komuś podpowie. Widziałem, ze w niektórych polach była często używana naza SNMP, może w ten sposób spróbować ??

0

Zainstaluj sobie BurpSuite Free i zobacz co tam idzie między przeglądarką a serwerami. Albo ew. Wiresharka, tylko pamiętaj, żeby ustawić sobie SSL log file: https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/

1 użytkowników online, w tym zalogowanych: 0, gości: 1