RSS

分析DEDECMS 5.5 datalistcp.class.php 包含

This entry was posted on Apr 03 2010

作者:st0p
转载请注明出处 http://www.st0p.org

老早就看到有人发的洞,一直想过写分析来着,最近一直呆在UBUNTU下安装东西。。老忘。。。
有时有些朋友加我,教他找洞。。。这个好似是个累活,而且运气占很大一部分。。。所以我还是尽量帮分析过程发出来吧,也方便我自己学习。
具体的EXP,请看:http://www.st0p.org/blog/archives/dedecms-5-5-datalistcp-class-php-contains-exp.html

以前呢,DEDECMS会把出错的SQL信息,写进mysql_error_trace.php,后来被大牛们爆出来了。就改名为mysql_error_trace.inc了。。。
没想到这次又被包含了。。。看来记录SQL信息也不是啥好事。。。

这个EXP的原理呢,是通过构造特殊的请求给plus/digg_ajax.php来达到写入我们的语句到mysql_error_trace.inc,当然可以满足我们这一步写入到mysql_error_trace.inc的文件还有不少。。不过想要执行他就不可能了。。然后这次报出的洞呢就是运气很好才能碰到的。。
关键代码存在于

/include/datalistcp.class.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
$codefile = (isset($needCode) ? $needCode : $cfg_soft_lang);
 
//通过isset函数检查$needCode是否已配置,如已配置则结果为$needCode,否则结果为$cfg_soft_lang
//当我们伪造结果为aa/../../../data/mysql_error_trace时
 
if(file_exists(DEDEINC.'/code/datalist.'.$codefile.'.inc'))
 
{
 
	require_once(DEDEINC.'/code/datalist.'.$codefile.'.inc');
 //后缀是.inc
}
//检查文件是否存在,存在则包含。我们通过../成功跳转到到data目录,包含我们刚才构造过的mysql_error_trace.inc
//成功运行我们mysql_error_trace.inc在构造的语句。。。
...

郁闷,前几次想写分析的时候官方还没补呢。。刚去官方看了下通过正则进行了修补

1
2
3
4
5
6
7
8
9
10
11
$codefile = (isset($needCode) ? $needCode : $cfg_soft_lang);
 
$codefile = preg_replace("/[\w-]/", '', $codefile);
 //通过正则过滤了。。。
if(file_exists(DEDEINC.'/code/datalist.'.$codefile.'.inc'))
 
{
 
	require_once(DEDEINC.'/code/datalist.'.$codefile.'.inc');
 
}
Chinese (Simplified) flagItalian flagKorean flagChinese (Traditional) flagPortuguese flagEnglish flagGerman flagFrench flagSpanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flagCzech flagCroatian flagDanish flagFinnish flagHindi flagPolish flagRomanian flagSwedish flagNorwegian flagCatalan flagFilipino flagHebrew flagIndonesian flagLatvian flagLithuanian flagSerbian flagSlovak flagSlovenian flagUkrainian flagVietnamese flagAlbanian flagEstonian flagGalician flagMaltese flagThai flagTurkish flagHungarian flag
  1. 12 Trackback(s)

  2. great fish food
  3. foundation crack repair in Potsdam OH
  4. facebook/sex
  5. bouncy castle north london
  6. ways to increase facebook fans
  7. clairvoyants
  8. antykwariaty
  9. Alpha Warranty
  10. make a website
  11. Domain Brokerage
  12. spinal injury
  13. accident in asda

You must be logged in to post a comment.