Normally things like invalid certificates throw an error within google chrome, and if the page has hsts in place, there is no way to bypass that.
For normal users this is a good thing, but if you’re the developer/admin and have logged out yourself because of a miss configured server or you’re a pentester and want to access the contents of a wrongly configured web server, this can be frustrating.
And there is a way to access the pages, even though it is not available in the normal google chrome version.
You need to use the selenium driver. Therefore in turn you need the WebDriver library and the chromedriver.
1. Download the latest WebDriver https://www.nuget.org/api/v2/package/Selenium.WebDriver/
2. Download the latest ChromeDriver https://chromedriver.storage.googleapis.com/index.html (Keep in mind, that Version 2.10 is higher than 2.9)
3. Open PowerShell and import the WebDriver using “Import-Module” (or more specifically the correct dll for your installed .net version)
4. Unzip the chromedriver and place it inside of “./bin/selenium.chromedriver/”
5. Use PowerShell or C# to launch a new browser instance
$options = [OpenQA.Selenium.Chrome.ChromeOptions]::new() $options.setBinary('./bin/selenium.chromedriver') [OpenQA.Selenium.Chrome.ChromeDriver]::new($options)
Or use this script to install it inside of your current directory:
function Install-PSArchive { param() $null = Install-PackageProvider -Name PowerShellGet -Force -Scope CurrentUser Install-Module -Name 'Microsoft.PowerShell.Archive' -Force -Repository PSGallery -Scope CurrentUser -WarningAction SilentlyContinue } function Install-Selenium { param($ChromeSeleniumVersion = '2.45') Invoke-WebRequest -Uri 'https://www.nuget.org/api/v2/package/Selenium.WebDriver/' -UseBasicParsing -OutFile './selenium.webDriver.nupkg.zip' Expand-Archive -Path ./selenium.webDriver.nupkg.zip -Force $null = New-Item -Name './lib/selenium.webDriver' -ItemType Directory -Force Copy-Item -Path ./selenium.webDriver.nupkg/lib/netstandard2.0/WebDriver.dll -Destination ./lib/selenium.webDriver -Force Copy-Item -Path ./selenium.webDriver.nupkg/lib/netstandard2.0/WebDriver.xml -Destination ./lib/selenium.webDriver -Force Remove-Item -Recurse -Force -Path './selenium.webDriver.nupkg' Remove-Item -Recurse -Force -Path './selenium.webDriver.nupkg.zip' $ChromeSeleniumURLLinux = 'https://chromedriver.storage.googleapis.com/{0}/chromedriver_linux64.zip' -f $ChromeSeleniumVersion $ChromeSeleniumURLMacOS = 'https://chromedriver.storage.googleapis.com/{0}/chromedriver_mac64.zip' -f $ChromeSeleniumVersion $ChromeSeleniumURLWindows = 'https://chromedriver.storage.googleapis.com/{0}/chromedriver_win32.zip' -f $ChromeSeleniumVersion If ($IsWindows) { Invoke-WebRequest -Uri $ChromeSeleniumURLWindows -OutFile 'chromedriver.zip' } elseif ($IsLinux) { Invoke-WebRequest -Uri $ChromeSeleniumURLLinux -OutFile 'chromedriver.zip' } elseif ($IsMacOS) { Invoke-WebRequest -Uri $ChromeSeleniumURLMacOS -OutFile 'chromedriver.zip' } else { Write-Error -Message 'Platform not supported.' } $null = New-Item -Name './bin/selenium.chromedriver' -Force -ItemType Directory Expand-Archive -Path 'chromedriver.zip' -Force -DestinationPath ./bin/selenium.chromedriver Remove-Item -Recurse -Force -Path './chromedriver.zip' If ($IsLinux -or $IsMacOS) { chmod a+x ./bin/selenium.chromedriver/chromedriver } } function Install-HtmlAgilityPack { param() Invoke-WebRequest -Uri 'https://www.nuget.org/api/v2/package/HtmlAgilityPack/' -OutFile ./HtmlAgilityPack.zip Expand-Archive -Path './HtmlAgilityPack.zip' -Force $null = New-Item -Name './lib/HtmlAgilityPack' -ItemType Directory -Force Copy-Item -Path ./HtmlAgilityPack/lib/netstandard2.0/HtmlAgilityPack.dll -Destination ./lib/HtmlAgilityPack -Force Copy-Item -Path ./HtmlAgilityPack/lib/netstandard2.0/HtmlAgilityPack.xml -Destination ./lib/HtmlAgilityPack -Force Remove-Item -Force -Recurse -Path './HtmlAgilityPack' Remove-Item -Force -Recurse -Path './HtmlAgilityPack.zip' } Install-PSArchive Import-Module -Name 'Microsoft.PowerShell.Archive' Install-Selenium Import-Module './lib/selenium.webDriver/WebDriver.dll' ## If you need to parse some html inside of your scripts and want to have cross platform functionality (or if internet explorer is not enabled), you also need to install HtmlAgilityPack, as powershell on windows relies upon it for parsing html into objects. Install-HtmlAgilityPack Import-Module './lib/HtmlAgilityPack/HtmlAgilityPack.dll'