POC详情: bdf5ee9e938c2ad1cee5d5f29a2a2ae003dc6911

来源
关联漏洞
标题: WordPress plugin PPOM – Product Addons & Custom Fields for WooCommerce 代码问题漏洞 (CVE-2025-11391)
描述:WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台具有在基于PHP和MySQL的服务器上架设个人博客网站的功能。WordPress plugin是一个应用插件。 WordPress plugin PPOM – Product Addons & Custom Fields for WooCommerce 33.0.15及之前版本存在代码问题漏洞,该漏洞源于图像裁剪功能缺少文件类型验证,可能导致未经验证的攻击者上
描述
WordPress PPOM for WooCommerce Plugin <= 33.0.15 is vulnerable to SQL Injection
介绍
# Unauthenticated Blind SQL Injection in PPOM for WooCommerce <= 33.0.15

This repository contains a Proof of Concept (PoC) for an unauthenticated time-based blind SQL Injection vulnerability in the "PPOM for WooCommerce" WordPress plugin, affecting versions up to and including 33.0.15.

## Vulnerability Details

- **Plugin:** PPOM for WooCommerce
- **Affected Versions:** <= 33.0.15
- **Patched Version:** 33.0.16
- **Vulnerability Type:** Unauthenticated Time-Based Blind SQL Injection
- **CVE ID:** CVE-2025-11391 (Assigned for tracking purposes)

### Description

The vulnerability exists because the plugin fails to properly sanitize user-supplied input before using it in an SQL query. Specifically, the `get_product_meta()` function in `classes/plugin.class.php` directly concatenates the `$meta_id` parameter into the SQL query without using prepared statements.

**Vulnerable Code (`classes/plugin.class.php`):**

```php
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}
```

An unauthenticated attacker can exploit this by crafting a malicious payload and injecting it into the `ppom[fields][id]` parameter when adding a product to the cart. This allows the attacker to execute arbitrary SQL commands, such as time-delay functions (`SLEEP()`), enabling them to confirm the vulnerability and potentially exfiltrate sensitive information from the database character by character.

The vulnerability is triggered when the **"Enable Legacy Price Calculations"** option is active in the plugin's settings, as this forces the application to use the vulnerable code path during cart operations.

## Repository Structure

```
└── cve-2025-11391/
    ├── exploit.py                  # The Python Proof of Concept script.
    └── woocommerce-product-addon/  # Vulnerable version of the plugin (v33.0.15).
```

## Setup & Recreation Steps

### 1. Requirements

- A local web server environment (e.g., XAMPP, WAMP, MAMP).
- A fresh WordPress installation.
- The WooCommerce plugin installed and activated.
- Python 3.x with the `requests` library installed (`pip install requests`).

### 2. Lab Setup

1.  Start your local web server (Apache, MySQL).
2.  Install WordPress in a directory (e.g., `/htdocs/wp4hacking/`).
3.  Install and activate the WooCommerce plugin from the WordPress dashboard.
4.  Install the vulnerable version of `woocommerce-product-addon` (v33.0.15) provided in this repository by uploading the `.zip` file from the `woocommerce-product-addon/` directory.
5.  Activate the "PPOM for WooCommerce" plugin.

### 3. Vulnerable Configuration

1.  In the WordPress dashboard, go to **PPOM Fields > Settings**.
2.  Find the option **"Enable Legacy Price Calculations"** and check the box to **enable** it.
3.  Save the changes.
4.  Go to **PPOM Fields** and create a new Field Group (e.g., name it "PoC Group").
5.  Inside this group, add a **Text Input** field. Give it a title (e.g., "SQL Injection") and a data name (e.g., `sql_injection`).
6.  Go to **Products > Add New** to create a new WooCommerce product.
7.  Give the product a name (e.g., "Product Testing") and a price.
8.  On the product edit page, find the "PPOM Fields" tab and select the "PoC Group" you created.
9.  Publish the product. Note the Product ID (e.g., 72).

## Exploitation

The provided `exploit.py` script confirms the vulnerability by injecting a `SLEEP()` command and measuring the server's response time.

### How to Run the Exploit

1.  Open the `exploit.py` file and configure the following variables:

    - `PRODUCT_URL`: The full URL to the vulnerable product page you created.
    - `add_to_cart_data['add-to-cart']`: The ID of your vulnerable product.

2.  Run the script from your terminal:
    ```bash
    python exploit.py
    ```

### Expected Output

If the target is vulnerable, the server will take longer than the `SLEEP()` duration to respond, causing the script to time out. The script correctly interprets this timeout as a successful exploitation.

```
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.
```

## Mitigation

- **Update Immediately:** Upgrade the "PPOM for WooCommerce" plugin to version **33.0.16** or later.
- **Use Prepared Statements:** The patched version uses `$wpdb->prepare()` to properly sanitize the input, preventing the SQL injection.

**Patched Code (`classes/plugin.class.php`):**

```php
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );
```

## Disclaimer

This PoC is intended for educational and research purposes only. Do not use it on any system you do not own or have explicit permission to test. The author is not responsible for any misuse or damage caused by this script.
文件快照

[4.0K] /data/pocs/bdf5ee9e938c2ad1cee5d5f29a2a2ae003dc6911 ├── [1.6K] exploit.py ├── [5.1K] README.md └── [4.0K] woocommerce-product-addon ├── [4.0K] assets │   ├── [ 13] _hashfile.txt │   ├── [ 43] htaccess │   └── [3.3K] ppom-basic-meta.json ├── [4.0K] backend │   ├── [4.0K] assets │   │   ├── [ 17K] deps.js │   │   ├── [ 12K] grid-layout.css │   │   ├── [4.0K] jquery-ui-accordion │   │   │   ├── [ 16K] jquery-ui.min.css │   │   │   └── [ 17K] jquery-ui.min.js │   │   ├── [4.0K] notifications │   │   │   ├── [4.4K] notifications.css │   │   │   └── [4.7K] notifications.js │   │   ├── [ 13K] settings.css │   │   ├── [3.8K] settings.js │   │   ├── [4.0K] tooltip │   │   │   ├── [6.9K] tooltip.css │   │   │   └── [ 40K] tooltip.js │   │   ├── [4.0K] videopopup │   │   │   ├── [2.1K] videopopup.css │   │   │   └── [4.4K] videopopup.js │   │   └── [6.7K] wp-color-picker-alpha.min.js │   ├── [3.2K] changelog_handler.php │   ├── [ 31K] options.php │   ├── [ 22K] settings-panel.class.php │   └── [4.0K] templates │   ├── [ 13K] admin-settings.php │   └── [4.0K] inputs │   ├── [1.4K] checkbox.php │   ├── [ 551] color.php │   ├── [2.8K] css_editor.php │   ├── [1.6K] select.php │   ├── [ 594] textarea.php │   ├── [ 593] text.php │   └── [1.5K] typography.php ├── [ 21K] CHANGELOG.md ├── [4.0K] classes │   ├── [ 28K] admin.class.php │   ├── [4.0K] attach-popup │   │   ├── [1.1K] container-item.class.php │   │   ├── [ 532] container-view.class.php │   │   └── [6.1K] select-component.class.php │   ├── [ 79K] fields.class.php │   ├── [ 11K] form.class.php │   ├── [8.4K] freemium.class.php │   ├── [ 20K] frontend-scripts.class.php │   ├── [3.8K] input.class.php │   ├── [9.8K] input-meta.class.php │   ├── [4.0K] inputs │   │   ├── [4.6K] input.audio.php │   │   ├── [5.4K] input.checkbox.php │   │   ├── [5.6K] input.color.php │   │   ├── [9.3K] input.cropper.php │   │   ├── [9.0K] input.date.php │   │   ├── [8.0K] input.daterange.php │   │   ├── [4.0K] input.divider.php │   │   ├── [4.2K] input.email.php │   │   ├── [7.6K] input.file.php │   │   ├── [2.4K] input.hidden.php │   │   ├── [7.1K] input.image.php │   │   ├── [6.5K] input.measure.php │   │   ├── [5.3K] input.number.php │   │   ├── [6.8K] input.palettes.php │   │   ├── [5.0K] input.pricematrix.php │   │   ├── [6.6K] input.quantities.php │   │   ├── [4.7K] input.radio.php │   │   ├── [3.4K] input.section.php │   │   ├── [5.2K] input.select.php │   │   ├── [5.4K] input.textarea.php │   │   ├── [6.9K] input.text.php │   │   └── [5.3K] input.timezone.php │   ├── [4.0K] integrations │   │   └── [4.0K] elementor │   │   ├── [1.9K] elementor.class.php │   │   └── [1.5K] shortcode-widget.php │   ├── [3.6K] legacy-meta.class.php │   ├── [ 32K] plugin.class.php │   ├── [ 13K] ppom.class.php │   ├── [3.0K] scripts.class.php │   └── [2.5K] survey.class.php ├── [4.0K] css │   ├── [4.0K] bootstrap │   │   ├── [242K] bootstrap.css │   │   └── [5.2K] bootstrap.modal.css │   ├── [2.9K] codemirror-theme.css │   ├── [1.9K] divider.css │   ├── [4.0K] font-awesome │   │   ├── [4.0K] css │   │   │   ├── [ 37K] font-awesome.css │   │   │   └── [ 30K] font-awesome.min.css │   │   ├── [4.0K] fonts │   │   │   ├── [132K] FontAwesome.otf │   │   │   ├── [162K] fontawesome-webfont.eot │   │   │   ├── [434K] fontawesome-webfont.svg │   │   │   ├── [162K] fontawesome-webfont.ttf │   │   │   ├── [ 96K] fontawesome-webfont.woff │   │   │   └── [ 75K] fontawesome-webfont.woff2 │   │   ├── [ 323] HELP-US-OUT.txt │   │   ├── [4.0K] less │   │   │   ├── [ 713] animated.less │   │   │   ├── [ 585] bordered-pulled.less │   │   │   ├── [ 452] core.less │   │   │   ├── [ 119] fixed-width.less │   │   │   ├── [ 495] font-awesome.less │   │   │   ├── [ 49K] icons.less │   │   │   ├── [ 370] larger.less │   │   │   ├── [ 377] list.less │   │   │   ├── [1.6K] mixins.less │   │   │   ├── [ 771] path.less │   │   │   ├── [ 622] rotated-flipped.less │   │   │   ├── [ 118] screen-reader.less │   │   │   ├── [ 476] stacked.less │   │   │   └── [ 22K] variables.less │   │   └── [4.0K] scss │   │   ├── [ 715] _animated.scss │   │   ├── [ 592] _bordered-pulled.scss │   │   ├── [ 459] _core.scss │   │   ├── [ 120] _fixed-width.scss │   │   ├── [ 430] font-awesome.scss │   │   ├── [ 49K] _icons.scss │   │   ├── [ 375] _larger.scss │   │   ├── [ 378] _list.scss │   │   ├── [1.6K] _mixins.scss │   │   ├── [ 783] _path.scss │   │   ├── [ 672] _rotated-flipped.scss │   │   ├── [ 134] _screen-reader.scss │   │   ├── [ 482] _stacked.scss │   │   └── [ 22K] _variables.scss │   ├── [4.0K] jq-ui │   │   └── [4.0K] smoothness │   │   ├── [4.0K] images │   │   │   ├── [ 393] ui-bg_glass_55_fbf9ee_1x400.png │   │   │   ├── [ 265] ui-bg_glass_65_ffffff_1x400.png │   │   │   ├── [ 323] ui-bg_glass_75_dadada_1x400.png │   │   │   ├── [ 324] ui-bg_glass_75_e6e6e6_1x400.png │   │   │   ├── [ 390] ui-bg_glass_95_fef1ec_1x400.png │   │   │   ├── [ 325] ui-bg_highlight-soft_75_cccccc_1x100.png │   │   │   ├── [6.9K] ui-icons_222222_256x240.png │   │   │   ├── [4.6K] ui-icons_2e83ff_256x240.png │   │   │   ├── [6.9K] ui-icons_454545_256x240.png │   │   │   ├── [6.9K] ui-icons_888888_256x240.png │   │   │   └── [4.6K] ui-icons_cd0a0a_256x240.png │   │   ├── [ 36K] jquery-ui.css │   │   ├── [ 31K] jquery-ui.min.css │   │   └── [ 17K] theme.css │   ├── [ 29K] loader.gif │   ├── [ 35K] ppom-admin.css │   ├── [6.4K] ppom-modal.css │   ├── [1.8K] ppom-simple-popup.css │   ├── [ 11K] ppom-style.css │   ├── [ 15K] select2.css │   ├── [7.9K] share.png │   ├── [1.4K] style.php │   └── [8.7K] sweetalert.css ├── [3.2K] global.d.ts ├── [4.0K] images │   ├── [ 25K] cropping.jpg │   ├── [3.3K] delete_16.png │   ├── [4.4K] delete_32.png │   ├── [5.6K] delete.png │   ├── [3.2K] down_16.png │   ├── [4.1K] down_32.png │   ├── [1.2K] edit-photo.png │   ├── [3.3K] edit.png │   ├── [ 71K] fb-addon.png │   ├── [2.3K] file.png │   ├── [ 535] help.svg │   ├── [1.7K] left-arrow.png │   ├── [1.6K] loading.gif │   ├── [2.9K] logo.jpg │   ├── [3.3K] Mail_logo.png │   ├── [3.3K] minus.png │   ├── [1.4K] nmedia-logo.png │   ├── [3.4K] plus.png │   ├── [1.6K] right-arrow.png │   ├── [5.0K] upload-button-bg-over.png │   ├── [4.1K] upload-button-bg.png │   └── [6.3K] zoom.png ├── [4.0K] inc │   ├── [ 26K] admin.php │   ├── [ 26K] arrays.php │   ├── [ 344] deprecated.php │   ├── [ 24K] files.php │   ├── [ 70K] functions.php │   ├── [ 30K] hooks.php │   ├── [ 62K] nmInput.class.php │   ├── [ 46K] prices.php │   ├── [ 22K] rest.class.php │   ├── [ 11K] validation.php │   └── [ 41K] woocommerce.php ├── [4.0K] js │   ├── [4.0K] admin │   │   ├── [2.3K] jquery.tabletojson.min.js │   │   ├── [ 72K] ppom-admin.js │   │   ├── [6.6K] ppom-bulkquantity.js │   │   ├── [4.1K] ppom-deactivate.js │   │   ├── [6.3K] ppom-meta-table.js │   │   ├── [ 997] pre-load.js │   │   └── [4.5K] serializejson.js │   ├── [4.0K] bootstrap │   │   └── [ 61K] bootstrap.min.js │   ├── [4.0K] bs-slider │   │   ├── [9.0K] bootstrap-slider.min.css │   │   └── [ 34K] bootstrap-slider.min.js │   ├── [4.0K] croppie │   │   ├── [4.9K] croppie.css │   │   └── [ 23K] croppie.min.js │   ├── [4.0K] datatable │   │   ├── [ 14K] datatables.min.css │   │   └── [ 80K] jquery.dataTables.min.js │   ├── [ 40K] exif.js │   ├── [ 26K] file-upload.js │   ├── [4.0K] images │   │   ├── [ 148] sort_asc_disabled.png │   │   ├── [ 160] sort_asc.png │   │   ├── [ 201] sort_both.png │   │   ├── [ 146] sort_desc_disabled.png │   │   └── [ 158] sort_desc.png │   ├── [2.2K] image-tooltip.js │   ├── [4.0K] inputmask │   │   ├── [188K] jquery.inputmask.bundle.js │   │   ├── [140K] jquery.inputmask.min.js │   │   └── [4.0K] phone-codes │   │   ├── [ 78K] phone.js │   │   ├── [ 28K] phone-nl.js │   │   └── [ 31K] phone-uk.js │   ├── [ 110] new.change.txt │   ├── [3.0K] popup.js │   ├── [ 13K] ppom-conditions.js │   ├── [ 18K] ppom-conditions-v2bkp.js │   ├── [ 21K] ppom-conditions-v2.js │   ├── [ 17K] ppom.inputs.js │   ├── [ 19K] ppom-modal.js │   ├── [4.3K] ppom-plusminus.js │   ├── [3.9K] ppom-simple-popup.js │   ├── [2.7K] ppom-tooltip.js │   ├── [1.4K] ppom-validation.js │   ├── [4.0K] price │   │   ├── [ 39K] ppom-price.js │   │   └── [ 17K] ppom-price-v2.js │   ├── [ 69K] select2.js │   ├── [4.0K] sweetalert │   │   ├── [ 68K] sweetalert2.js │   │   └── [ 25K] sweetalert2.min.css │   ├── [4.0K] ui │   │   └── [4.0K] css │   │   └── [4.0K] smoothness │   │   ├── [4.0K] images │   │   │   ├── [1.7K] animated-overlay.gif │   │   │   ├── [ 212] ui-bg_flat_0_aaaaaa_40x100.png │   │   │   ├── [ 208] ui-bg_flat_75_ffffff_40x100.png │   │   │   ├── [ 335] ui-bg_glass_55_fbf9ee_1x400.png │   │   │   ├── [ 207] ui-bg_glass_65_ffffff_1x400.png │   │   │   ├── [ 262] ui-bg_glass_75_dadada_1x400.png │   │   │   ├── [ 262] ui-bg_glass_75_e6e6e6_1x400.png │   │   │   ├── [ 332] ui-bg_glass_95_fef1ec_1x400.png │   │   │   ├── [ 280] ui-bg_highlight-soft_75_cccccc_1x100.png │   │   │   ├── [6.8K] ui-icons_222222_256x240.png │   │   │   ├── [4.4K] ui-icons_2e83ff_256x240.png │   │   │   ├── [6.8K] ui-icons_454545_256x240.png │   │   │   ├── [6.8K] ui-icons_888888_256x240.png │   │   │   └── [4.4K] ui-icons_cd0a0a_256x240.png │   │   ├── [ 31K] jquery-ui-1.10.3.custom.css │   │   └── [ 26K] jquery-ui-1.10.3.custom.min.css │   └── [8.3K] validate.js ├── [4.0K] languages │   └── [110K] woocommerce-product-addon.pot ├── [ 49] README.md ├── [ 20K] readme.txt ├── [ 259] secure-uploaded-files.txt ├── [4.0K] templates │   ├── [4.0K] admin │   │   ├── [3.1K] addons-list.php │   │   ├── [3.6K] changelog.php │   │   ├── [5.1K] existing-meta.php │   │   ├── [ 34K] ppom-fields.php │   │   ├── [ 0] ppom-nm-plugins.php │   │   ├── [ 698] product-modal.php │   │   └── [ 304] products-list.php │   ├── [4.0K] frontend │   │   ├── [4.0K] component │   │   │   ├── [1.4K] form-data.php │   │   │   ├── [4.0K] image │   │   │   │   └── [ 892] image-modals.php │   │   │   └── [4.0K] quantities │   │   │   ├── [3.9K] grid-layout.php │   │   │   ├── [4.2K] horizontal-layout.php │   │   │   └── [4.2K] vertical-layout.php │   │   ├── [4.0K] inputs │   │   │   ├── [3.4K] audio.php │   │   │   ├── [4.8K] checkbox.php │   │   │   ├── [2.0K] color.php │   │   │   ├── [4.0K] cropper.php │   │   │   ├── [2.3K] date.php │   │   │   ├── [2.0K] daterange.php │   │   │   ├── [5.6K] divider.php │   │   │   ├── [2.0K] email.php │   │   │   ├── [3.1K] file.php │   │   │   ├── [ 621] hidden.php │   │   │   ├── [ 11K] image.php │   │   │   ├── [2.9K] measure.php │   │   │   ├── [2.0K] number.php │   │   │   ├── [5.2K] palettes.php │   │   │   ├── [3.7K] pricematrix.php │   │   │   ├── [2.3K] quantities.php │   │   │   ├── [3.3K] radio.php │   │   │   ├── [1.0K] section.php │   │   │   ├── [3.4K] select.php │   │   │   ├── [2.2K] textarea.php │   │   │   ├── [2.4K] text.php │   │   │   └── [2.0K] timezone.php │   │   └── [2.1K] ppom-fields.php │   ├── [4.0K] input │   │   └── [9.3K] quantities.php │   ├── [ 29K] render-fields.php │   └── [4.0K] v10 │   ├── [ 732] file-modals.php │   └── [ 679] image-modals.php ├── [4.0K] vendor │   ├── [ 748] autoload.php │   ├── [4.0K] codeinwp │   │   └── [4.0K] themeisle-sdk │   │   ├── [4.0K] assets │   │   │   ├── [4.0K] images │   │   │   │   ├── [4.7K] animation.jpg │   │   │   │   ├── [ 20K] conditions.jpg │   │   │   │   ├── [8.7K] css.jpg │   │   │   │   ├── [1.6K] neve.png │   │   │   │   ├── [ 36K] optimole-logo.svg │   │   │   │   ├── [4.0K] otter │   │   │   │   │   ├── [ 26K] otter-builder.png │   │   │   │   │   ├── [173K] otter-library.png │   │   │   │   │   └── [ 87K] otter-patterns.png │   │   │   │   ├── [2.6K] sparks.png │   │   │   │   ├── [142K] team.jpg │   │   │   │   ├── [9.4K] themeisle-logo.png │   │   │   │   └── [1.9K] wplk.png │   │   │   └── [4.0K] js │   │   │   └── [4.0K] build │   │   │   ├── [4.0K] about │   │   │   │   ├── [ 122] about.asset.php │   │   │   │   ├── [6.9K] about.css │   │   │   │   └── [ 10K] about.js │   │   │   ├── [4.0K] float_widget │   │   │   │   ├── [ 122] float.asset.php │   │   │   │   ├── [3.8K] float.css │   │   │   │   └── [1.9K] float.js │   │   │   ├── [4.0K] promos │   │   │   │   ├── [ 208] index.asset.php │   │   │   │   ├── [ 22K] index.js │   │   │   │   └── [3.5K] style-index.css │   │   │   ├── [4.0K] survey │   │   │   │   ├── [ 84] survey_deps.asset.php │   │   │   │   └── [2.3K] survey_deps.js │   │   │   └── [4.0K] tracking │   │   │   ├── [ 84] tracking.asset.php │   │   │   └── [ 37K] tracking.js │   │   ├── [ 23K] CHANGELOG.md │   │   ├── [ 43] index.php │   │   ├── [ 34K] LICENSE │   │   ├── [8.7K] load.php │   │   ├── [4.0K] src │   │   │   ├── [4.0K] Common │   │   │   │   ├── [6.4K] Abstract_module.php │   │   │   │   └── [2.4K] Module_factory.php │   │   │   ├── [ 18K] Loader.php │   │   │   ├── [4.0K] Modules │   │   │   │   ├── [ 15K] About_us.php │   │   │   │   ├── [ 11K] Announcements.php │   │   │   │   ├── [7.7K] Compatibilities.php │   │   │   │   ├── [ 14K] Dashboard_widget.php │   │   │   │   ├── [7.2K] Featured_plugins.php │   │   │   │   ├── [8.6K] Float_widget.php │   │   │   │   ├── [ 35K] Licenser.php │   │   │   │   ├── [7.7K] Logger.php │   │   │   │   ├── [ 14K] Notification.php │   │   │   │   ├── [ 60K] Promotions.php │   │   │   │   ├── [8.7K] Recommendation.php │   │   │   │   ├── [2.5K] Review.php │   │   │   │   ├── [ 12K] Rollback.php │   │   │   │   ├── [6.3K] Script_loader.php │   │   │   │   ├── [ 19K] Translate.php │   │   │   │   ├── [5.9K] Translations.php │   │   │   │   ├── [ 24K] Uninstall_feedback.php │   │   │   │   └── [4.9K] Welcome.php │   │   │   └── [ 10K] Product.php │   │   └── [2.0K] start.php │   └── [4.0K] composer │   ├── [ 222] autoload_classmap.php │   ├── [ 225] autoload_files.php │   ├── [ 139] autoload_namespaces.php │   ├── [ 133] autoload_psr4.php │   ├── [1.6K] autoload_real.php │   ├── [ 695] autoload_static.php │   ├── [ 16K] ClassLoader.php │   ├── [1.8K] installed.json │   ├── [1.1K] installed.php │   ├── [ 17K] InstalledVersions.php │   └── [1.0K] LICENSE ├── [7.6K] woocommerce-product-addon.php └── [561K] yarn.lock 69 directories, 336 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。