前言

最近看了《代码审计-企业级Web代码安全构架》第一遍,颇有心动,找了个织梦来练练手

环境

win10 mysql5.7+php5.4.45
工具 vs+seay

首先我们先还是必须得熟悉一下dede目录结构

1、程序核心程序目录及简介
/include目录 程序核心目录
config_base.php 环境定义文件。用于检测系统环境,定义工作目录,保存数据库链接信息,引入常用函数等,建议不要修改。
config_hand.php 系统配置文件。定义系统常用的配置信息定义,可从后台管理直接生成该文件。
config_passport.php 通行证文件
config_rglobals.php 检测系统外部变量
config_rglobals_magic.php 同上
inc_archives_view.php 用于浏览文档或对文档生成HTML
inc_arclist_view.php 用于浏览频道列表或对内容列表生成HTML
inc_arcmember_view.php 用于浏览会员发布的文档
inc_arcpart_view.php 用于解析和创建全局性质的模板,如频道封面,主页,单个页面等
inc_arcsearch_view.php 用于文档搜索
inc_arcspec_view.php 用于浏览所有专题列表或对专题列表生成HTML
inc_channel_unit.php 用户解析特定频道的附加数据结构信息
inc_channel_unit_functions.php 系统共用函数集合
inc_downclass.php 防采集随机字符串函数
inc_freelist_view.php 用于对特定内容列表生成HTML
inc_functions.php 可供用户使用的函数集合
inc_imgbt.php GetTypeidSelMember
inc_memberlogin.php 用于用户登录及获得会员状态
inc_photograph.php 用于处理系统中的图片,例如水印,缩略图等
inc_photowatermark_config.php 图片处理参数定义
inc_rss_view.php 用于浏览频道RSS或对RSS生成静态文件
inc_separate_functions.php SpGetArcList函数,用于获得文档列表
inc_sitemap.php 用于生成网站地图
inc_type_tree.php 用于选择栏目的目录树
inc_type_tree_member.php 同上,会员使用
inc_typelink.php 用于显示文章的位置和栏目位置等
inc_typeunit_admin.php 用于频道管理时的一些复杂操作,主要用于后台
inc_typeunit_menu.php 同上
inc_userlogin.php 用于管理员登录
inc_vote.php 用于管理投票
jump.php 用于超链接跳转
pub_charset.php 共用字符处理函数,GB/UTF-8/Unicode/BIG5等互换
pub_collection.php 用于采集
pub_collection_functions.php 采集用函数
pub_datalist.php 后台管理用数据列表
pub_datalist_dm.php 同上,不使用模板
pub_db_mysql.php 用于操作数据库
pub_dedehtml2.php 用于采集中的HTML解析
pub_dedehtml.php HTML解析器
pub_dedetag.php 用于dede模板标签解析
pub_httpdown.php 用于下载http中的资源
pub_oxwindow.php 后台程序扩展
pub_splitword_www.php 织梦分词算法
validateimg.php 验证码
vdimgck.php 验证码

/inc 共用函数目录
inc_fun_funAdmin.php 获取拼音码等函数
inc_fun_funString.php html代码处理等函数
inc_fun_SpGetArcList.php 获取文档列表SpGetArcList
对于菜鸟来说,对于菜鸟来说,config_base.php,这个文件,当你的程序出现问题,需要覆盖,当你的程序出现问题,需要覆盖。不要覆盖 config_base.php和config_hand.php文件,里面都是dede一些核心配置文件,对于高手来说,也许修改几个php页面已经达不到目的了,就需要了解dede的数据库结构,下面是部分关键数据表的结构和说明,不完全,还没有整理完全,过几天发布完整版本 

这里我们先看index.php包含了一个common.inc.php的文件我们跟进看一下

可以看见这里存在变量注册漏洞具体参考

https://xz.aliyun.com/t/2911

Dedecms sp2 5.7 后台getshell审计

 

 然后我们定位漏洞代码

Dedecms sp2 5.7 后台getshell审计

 

 这里者fwrite里面的两个参数我们都可通过Dede的任意变量注册来进行实现控制从而实现任意文件写入

Dedecms sp2 5.7 后台getshell审计

 

 

后台配置文件删除重装getshell

那按照上面的变量覆盖思路很容易就找到一处任意文件删除在del方法里面

Dedecms sp2 5.7 后台getshell审计

 

 但是想法总是美好的 然而现实

Dedecms sp2 5.7 后台getshell审计

 

 

我作斜杠跑哪里去了?

简单的调试一下

Dedecms sp2 5.7 后台getshell审计

 

 看见到这一步的时候对filename做了一个正则处理

Dedecms sp2 5.7 后台getshell审计

 

 我尝试过 但都以失败告终了绕不过那怎么办呐?重新找一个吧

Dedecms sp2 5.7 后台getshell审计

 

 

 

 

 参考

https://www.ay46.com/jiaocheng/gaoji/730.html

https://mochazz.github.io/2018/03/08/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1%E4%B9%8BDedeCMS%20V5.7%20SP2%E5%90%8E%E5%8F%B0%E5%AD%98%E5%9C%A8%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%EF%BC%88%E5%A4%8D%E7%8E%B0%EF%BC%89/

总结

其实都是因为这个全局变量注册漏洞太变态了

快就是慢,少就是多

相关文章:

  • 2022-02-05
  • 2022-01-22
  • 2021-11-09
  • 2021-12-10
  • 2021-07-13
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-23
  • 2021-10-28
  • 2022-12-23
  • 2022-01-21
  • 2022-12-23
  • 2021-10-22
相关资源
相似解决方案