phpAdsNew SQL Injection Vulnerabilities

Risk: Medium
Local: No
Remote: Yes

CVSS Base Score: 7.5/10
Impact Subscore: 6.4/10
Exploitability Subscore: 10/10
Exploit range: Remote
Attack complexity: Low
Authentication: No required
Confidentiality impact: Partial
Integrity impact: Partial
Availability impact: Partial

ZRCSA-200502 - phpAdsNew SQL Injection Vulnerabilities Zone-H Research Center Security Advisory 200502 Date of release: 11/11/2005 Software: phpAdsNew ( Affected versions: <= 2.0.6 2.0.7rc1 (latest CVS snapshot) Risk: Medium Discovered by: Kevin Fernandez "Siegfried" from the Zone-H Research Team Background (from their web site) ---------- phpAdsNew is an open-source ad server, with an integrated banner management interface and tracking system for gathering statistics. With phpAdsNew you can easily rotate paid banners and your own in-house advertisements. You can even integrate banners from third party advertising companies. Details -------- Toni Koivunen has published an advisory yesterday regarding a vulnerability exploitable via /admin/logout.php, that can be used to delete arbitrary data (maybe more). However more sql injections are present in this part of the code, all the functions in /admin/ do not check the "sessionID" variable coming from the cookie, the most interesting is phpAds_SessionDataFetch() because it is called in config.php and makes a simple SELECT query. Snip: [no previous check] if (isset($HTTP_COOKIE_VARS['sessionID']) && $HTTP_COOKIE_VARS['sessionID'] != '') { $result = phpAds_dbQuery("SELECT sessiondata FROM ".$phpAds_config['tbl_session']." WHERE sessionid='".$HTTP_COOKIE_VARS['sessionID']."'" . " AND UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(lastused) < 3600"); <-- ouch Since /admin/config.php is included in /admin/index.php, we don't need to be authenticated to exploit the vulnerability. PoC (cookie): sessionID=adsds'/**/UNION/**/SELECT admin_pw from phpads_config into outfile "/var/www/blah.txt"/*; Just "exploit" one of the many errors in the pages to get the path and here you go, open /admin/index.php with that as cookie. Solution --------- No patch. Filter the variable in the affected functions. Original advisories: English version: French:

Vote for this issue:


Thanks for you vote!


Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.

(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2022,


Back to Top