Что необходимо для получения текста веб-страницы с аутентификацией SOAP в Powershell? - PullRequest
0 голосов
/ 30 ноября 2018

В частности, какие значения ниже необходимы для фактического получения информации с веб-страницы, которую я хочу?Он находится за страницей входа, и с помощью Fiddler на веб-сайте моей компании я смог найти полную информацию заголовка / файла cookie / запроса на странице, которую я пытаюсь получить.Однако, поскольку я все еще новичок, я не уверен, какие именно значения / синтаксис необходимы для извлечения данных с правильной веб-страницы с powershell.

Я могу войти на страницу, используяpost invoke-webrequest, но возвращаемая информация поступает со страницы, которую вы получите при успешном входе в систему (добро пожаловать на сайт, ваше имя), а не с информацией о URL запрашиваемой страницы.

Информация о скрипаче на странице, которую я хочу видеть:

Get /com.fakename.fakename.fakename.fakename.detail.content.EntityDetailsContent.pa?id=17645401423347344&entityType=project HTTP/1.1
Accept: */*
X-Requested-With: XMLHttpRequest
Referer: https://fakename.fakename.com/home.pa
Accept-Language: en-US
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: fakename.fakename.com
Connection: Keep-Alive

Cookie:

login=fakeid; 
customerid=1215fakename; 
lang=en;
loginServer=fakeserver; 
ISESSIONID=111111f-2111-1119-911d-21111112f918; 
JSESSIONID=12381681FLINJLIjn79ED; 
notificationLastRun=1533333246

Запрос вернул страницусо всей информацией, которую я хотел.Конечно, настоящая проблема заключается в том, чтобы делать это программно с PowerShell.То, что я пробовал до сих пор, провалилось.Я также попробовал httprequest - но я не уверен, что это за заголовки / cookie / синтаксис - я пробовал решение, которое только возвращало информацию на экране входа в систему, оно даже не передавало его.

$username = "fakeid" : $password = "passwordtogetintosite"
$url = "Https://PathtothissiteMainPage.com"
$url2 = "Https://PathofUrlIwant.com/Id=112332323"
$r = Invoke-WebRequest -uri $url -SessionVariable websession
$form = $r.Forms[0]
$form.fields['login'] = $username
$form.fields['password'] = $password
$r = Invoke-WebRequest -uri ($url + $form.Action) -WebSession $websession -Method Post -Body $form.Fields
$r2 = Invoke-WebRequest -URI $url2 -WebSession $websession
$r2.Content|select-string "id on the page I want"

Учитывая предоставленную информацию, как / что мне не хватает, чтобы заставить команду работать по запросу аутентифицированного URL?Кстати, переменная $ websession содержит jsession, login, customerid, но не переменную isession, которую fiddler нашел, если это поможет.Также кажется, что страницы работают с SOAP, если это облегчает процесс.

1 Ответ

0 голосов
/ 04 декабря 2018

Я на самом деле задал этот же вопрос в Microsoft и был перенаправлен в мою компанию.Оказывается, у компании есть специальный документ, о котором мне не сообщили, в котором упоминается, что вам нужны специальные учетные данные для запроса с этого сайта.Этот пользователь на самом деле не может просматривать веб-страницу, только API веб-страницы.С powershell-я обнаружил, что с помощью этого

$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols
$proxy = New-WebServiceProxy -Uri "https://domain.site.com/services/WebService?wsdl" -Credentials $superUser

$ proxy var выдает команды из схемы, по которой я могу запросить сайт, например, $ proxy.getRequestFields ('ID9191'), котораявернул бы все текстовые поля запроса ID9191.Таким образом, ответ на этот вопрос - если это защищенный https-сайт - перейдите к администратору сайта и получите права на выполнение запросов к нему, или же удачи во взломе сайта.

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