声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。
前言:
又是我,深情哥大弟子江南韵(压星河),最近跟着学了一手更新包审计1day,感觉又更新了技能书。
1.官网查找更新包:
https://www.dedecms.com/download#changelog
看了一圈就是这个更新日志了,里面都是更新包dede标签,我们直接下载一个最新的更新包
然后直接打开看看,研究了一下应该是类似文件覆盖的更新的
那就好办了,他们教我直接看文件大小就行
2.直接定位更新的代码
发现多出了这个,这一看不就限制了任意读取或者删除
再往下面看,发现了危险函数,接下来就看参数是不是我们可控的就行了
3.审计的基本思路
听学长说拿到代码最好看一下目录结构,一般网上都会有的,可以更方便的定位到存在漏洞的功能点,然后再网上就找到了
文件再后台/dede/.php里面,其实更新日志都写了
接下来就是路由了,听说好像直接get传入参数就可以给$赋值了
可控加路由+危险函数,漏洞点就产生了dede标签,真离谱,下次有时间再看看路由情况
1day的poc如下
/dede/upload.php?delete=../../要删除的文件
4.还有一个存在漏洞上传的php
/puls/.php前台的,当时以为是前台的上传,后面发现不是
危险函数为和,那就是文件包含了应该
看一下参数可不可控跟踪$发现是可控的aid是我们可以赋值的
$cacheFile = DEDEDATA.'/cache/mytag-'.$aid.'.htm';
接下来就是$,经过调式可得,首先得满足aid=1&=1,才能走下去,$是通过$控制的
再往上走$是由$row控制
再看看$row,是由我们传入的aid控制的,所以这里两个参数都可以控制,但是具体$row的值还是不知道从来里来的
所以我们直接看数据库对应的表,还有注释
可以分析出这个功能点应该再自定义标签js哪里,如图:
然后警告调试的值是通过查询自定义id值1,再将图中正常内容的值赋值给,也就是上面的
所以一目了然了,通过再后台自定义标签js正常内容添加内容,通过将内容写入到data/cache/mytag-1.htm,包含这个文件就行了。
include $cacheFile;
但是还是有一堆内容检测,挺好绕的,大家可以测试一下,我就不放poc了
global $cfg_disable_funs;
$cfg_disable_funs = isset($cfg_disable_funs) ? $cfg_disable_funs : 'phpinfo,eval,assert,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,file_put_contents,fsockopen,fopen,fwrite,preg_replace';
$cfg_disable_funs = $cfg_disable_funs.',[$]GLOBALS,[$]_GET,[$]_POST,[$]_REQUEST,[$]_FILES,[$]_COOKIE,[$]_SERVER,include,require,create_function,array_map,call_user_func,call_user_func_array,array_filert';
foreach (explode(",", $cfg_disable_funs) as $value) {
$value = str_replace(" ", "", $value);
if(!empty($value) && preg_match("#[^a-z]+['"]*{$value}['"]*[s]*[([{']#i", " {$myvalues}") == TRUE) {
$myvalues = dede_htmlspecialchars($myvalues);
die("DedeCMS提示:当前页面中存在恶意代码!
{$myvalues}");}if(!empty($value) && ("#
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。