当前位置: 首页 > article >正文

【THM-课程内容答案】:Web Hacking Fundamentals-Upload Vulnerabilities-Remote Code Execution

覆盖服务器上存在的文件很好。这对维护网站的人来说很麻烦可能会导致一些漏洞但让我们更进一步让我们去RCE吧远程代码执行顾名思义将允许我们在web服务器上任意执行代码。虽然这可能是一个低权限的web用户帐户例如Linux服务器上的www数据但它仍然是一个极其严重的漏洞。通过web应用程序中的上传漏洞进行的远程代码执行往往会被上传用与网站后端相同的语言或服务器理解并将执行的另一种语言编写的程序所利用。传统上这将是PHP然而在最近其他后端语言变得越来越普遍Python Django和Node.js形式的Javascript是主要的例子。值得注意的是在路由应用程序中即以编程方式定义路由而不是映射到文件系统的应用程序这种攻击方法变得更加复杂发生的可能性也大大降低。大多数现代web框架都是以编程方式路由的。在利用文件上传漏洞时有两种基本方法可以在Web服务器上实现RCEwebshell和反向/绑定shell。实际上一个功能齐全的反向/绑定shell是攻击者的理想目标然而webshell可能是唯一可用的选项例如如果对上传施加了文件长度限制或者防火墙规则阻止任何基于网络的shell。我们将依次查看这些内容。作为一种通用方法我们希望上传一种或另一种shell然后激活它如果服务器允许的话可以直接导航到文件限制不足的非路由应用程序或者以其他方式强制Web应用程序为我们运行脚本路由应用程序中必需。Web Shell假设我们找到了一个带有上传表单的网页我们接下来该何去何从好吧让我们从gobuster扫描开始看起来我们这里有两个目录——uploads和assets。其中我们上传的任何文件似乎都会被放置在“uploads”目录中。我们将首先尝试上传一个合法的图像文件。在这里我从上一个任务中选择了我们可爱的狗的照片现在如果我们去http://demo.uploadvulns.thm/uploads我们应该看到小狗的照片已经上传了好的我们可以上传图片。现在让我们试试webshell。事实上我们知道这个Web服务器是用PHP后端运行的所以我们将直接跳到创建和上传shell。在现实生活中我们可能需要做更多的枚举。一个简单的webshell通过接收参数并将其作为系统命令执行来工作。在PHP中这样做的语法是?phpecho system($_GET[cmd]);?此代码接受GET参数并将其作为系统命令执行。然后它将输出回声输出到屏幕上。让我们尝试将其上传到网站然后使用它显示我们的当前用户和当前目录的内容成功我们现在可以使用这个shell从系统中读取文件或者从这里升级到反弹shell。现在我们有了RCE。请注意使用webshell时通过查看页面的源代码通常更容易查看输出。这大大改进了输出的格式。反弹shell上传反向shell的过程几乎与上传webshell的过程相同因此本节将更短。我们将使用无处不在的Pentest Monkey反弹shell它在Kali Linux上默认提供但也可以在此处下载raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php。您需要编辑shell的第49行。目前它将显示$ip127.0.0.1使用前需要将127.0.0.1更改为您的TryHackMe tun0 IP地址该地址可以在访问页面上找到。编辑完shell后我们需要做的下一件事是启动一个Netcat侦听器来接收连接。nc-lvnp 1234现在让我们上传shell然后通过导航到来激活它http://demo.uploadvulns.thm/uploads/shell.php.shell的名称是您自己定义的。网站应该挂起无法正常加载——但是如果我们切换回终端我们就会发现反弹shell已成功运行我们已获取靶机的shell权限我们再次获得了此Web服务器上的RCE。从这里开始我们希望稳定我们的shell并提升我们的特权但这些是另一次的任务。现在是时候你自己试试了【习题答案】导航到shell.uploadvulns.htm并完成此任务的问题。使用上面截图中的语法在网站上运行Gobuster扫描。它可能用于上传的目录是什么注意这是一个好习惯在接下来的任务中会对你很有帮助……Run a Gobuster scan on the website using the syntax from the screenshot above. What directory looks like it might be used for uploads?(N.B. This is a good habit to get into, and will serve you well in the upcoming tasks...)/resources【思路】直接运行gobuster扫描网站根目录路径字典路径为/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt在机器上获取web shell或反向shell。服务器/var/www/目录中的标志是什么 Get either a web shell or a reverse shell on the machine. Whats the flag in the /var/www/ directory of the server?THM{YWFhY2U3ZGI4N2QxNmQzZjk0YjgzZDZk}【思路】1- 使用Pentest Monkey反弹shell相关内容直接根据课程内容中链接获取并生成php反弹shell文件。2- 修改反弹shell文件中IP以及端口信息IP为攻击机IP地址端口保持默认1234。3- 在攻击机上通过netcat启动监听。4- 将反弹shell文件通过网站的上传功能进行上传并确认已上传成功。5- 通过浏览器访问对应url后缀为test.php。6- 发现已成功获取shell权限测试命令执行效果

相关文章:

【THM-课程内容答案】:Web Hacking Fundamentals-Upload Vulnerabilities-Remote Code Execution

覆盖服务器上存在的文件很好。这对维护网站的人来说很麻烦,可能会导致一些漏洞,但让我们更进一步;让我们去RCE吧! 远程代码执行(顾名思义)将允许我们在web服务器上任意执行代码。虽然这可能是一个低权限的…...

3步快速修复损坏MP4视频:Untrunc终极指南免费恢复珍贵回忆

3步快速修复损坏MP4视频:Untrunc终极指南免费恢复珍贵回忆 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否遇到过珍贵的家庭录像、重要会议记录或…...

Ragas评估框架:3分钟学会AI应用质量保障的终极指南

Ragas评估框架:3分钟学会AI应用质量保障的终极指南 【免费下载链接】ragas Supercharge Your LLM Application Evaluations 🚀 项目地址: https://gitcode.com/gh_mirrors/ra/ragas 你是否正在为LLM应用的质量评估而烦恼?想要一个简单…...

哈佛大学2013年普林斯顿评论排名解析

1. 哈佛大学在2013年普林斯顿评论中的排名解析作为全球最具影响力的高等教育机构之一,哈佛大学在各个权威排名中的表现一直备受关注。2013年普林斯顿评论(The Princeton Review)发布的"梦想大学"(Dream College&#xf…...

告别天价授权!手把手教你用TwinCAT 3搭建EtherCAT主站(Windows平台保姆级教程)

零成本玩转EtherCAT:TwinCAT 3免费试用全攻略 在工业自动化领域,EtherCAT以其卓越的实时性能和灵活的拓扑结构,正成为越来越多工程师的首选总线协议。然而,对于个人开发者和小型团队而言,动辄数万元的主站授权费用常常…...

全国县域数据库(2000-2022年)

01、数据介绍全国县域数据库5.0是一个综合性的数据资源,它涵盖了全国范围内各个县域的多种信息,为政府决策、学术研究、商业分析等领域提供了重要的数据支持。全国县域数据库是一个重要的数据资源,它对于推动县域经济社会的发展、促进区域协调…...

网络篇13-网络收发包过程中的路由原理

2026-04-24 本文的图片均来自于张彦飞内功修炼,博文为作者的学习笔记 一 、Linux中的路由表 路由表可以理解为一种网络命名空间级别的资源。每个 net namespace 都会有自己独立的一套网络栈资源,包括: IPv4/IPv6 协议栈相关状态路由表&…...

ESP8266项目功耗太高?手把手教你用INA226模块精准测量并优化(从接线到数据分析)

ESP8266项目功耗优化实战:用INA226实现精准测量与深度调优 在物联网设备开发中,电池供电设备的续航能力往往决定了产品的成败。ESP8266作为一款高性价比的Wi-Fi芯片,其功耗特性直接影响着设备的运行时间。本文将带你从硬件连接到数据分析&…...

告别手动MIRO:用SAP ERS实现采购到付款自动化,提升财务效率的完整指南

告别手动MIRO:用SAP ERS实现采购到付款自动化,提升财务效率的完整指南 在数字化转型浪潮中,企业财务部门正面临前所未有的效率挑战。传统采购到付款(P2P)流程中,手动发票校验(MIRO)不…...

从‘人工调参’到‘AI自优化’:储能EMS的算法演进与国产化实践(以RK3588平台为例)

从‘人工调参’到‘AI自优化’:储能EMS的算法演进与国产化实践(以RK3588平台为例) 在新能源革命的浪潮中,储能系统正经历着从"被动响应"到"主动决策"的智能化跃迁。作为储能系统的神经中枢,能量管…...

别再只会用/bin/bash了!Docker容器报错‘OCI runtime exec failed’的三种排查思路与终极解决方案

突破思维定式:当Docker容器报错"OCI runtime exec failed"时的深度解决方案 凌晨三点,CI/CD流水线突然中断,你盯着屏幕上刺眼的红色报错信息——"OCI runtime exec failed: exec failed: unable to start container process: …...

SemScore:基于语义相似度的大语言模型评估方法

1. 项目概述SemScore是一种基于语义相似度的新型大语言模型(LLM)评估方法。在自然语言处理领域,传统的评估指标如BLEU、ROUGE等主要关注词汇层面的匹配程度,而SemScore则深入挖掘文本的语义内涵,通过计算生成文本与参考文本在语义空间中的相似…...

强化学习策略熵动态与基准精度优化实践

1. 强化学习中的熵动态与基准精度优化在强化学习训练过程中,策略熵(Policy Entropy)的动态变化直接影响着智能体的探索(Exploration)与利用(Exploitation)平衡。策略熵的计算公式为:…...

动态规划进阶:多维状态设计与竞赛级优化

1. 动态规划问题难度升级方法论动态规划(DP)作为算法设计的核心方法,其本质是通过状态转移方程将复杂问题分解为相互关联的子问题。在竞赛编程领域,DP问题的难度升级通常遵循"维度扩展约束叠加"的基本范式。下面我们通过…...

Python函数参数的封包与拆包

当自定义函数有大量参数或者参数数量不定时,可以使用参数封包;当调用的函数有大量参数或者参数数量不定时,可以使用参数拆包。 1 函数参数的封包 在《Python自定义函数的位置参数和关键字参数》中提到,python函数的参数主要分为…...

BilibiliDown:5分钟掌握跨平台B站视频批量下载终极方案

BilibiliDown:5分钟掌握跨平台B站视频批量下载终极方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/…...

5个高效技巧:如何快速掌握GDSDecomp逆向工程工具的核心功能?

5个高效技巧:如何快速掌握GDSDecomp逆向工程工具的核心功能? 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp 你是否曾经面对一个Godot游戏项目,想要修改某…...

如何5分钟掌握CPP漫展智能抢票神器:终极自动化解决方案

如何5分钟掌握CPP漫展智能抢票神器:终极自动化解决方案 【免费下载链接】cppTickerBuy cpp cp30 漫展 活动 抢票 无差别 同人展 项目地址: https://gitcode.com/gh_mirrors/cp/cppTickerBuy 你是否曾经在CPP漫展门票开售的瞬间,眼睁睁看着票务页面…...

WPF 进阶特性详解:依赖属性、附加属性、Transform、Effect 与路由事件

大家在学习 WPF 的时候,前期最容易接触到的是控件、布局和数据绑定;但真正把这些能力串起来的,其实是 WPF 自己的一整套机制。 比如为什么有些属性能绑定、有些属性能做动画、为什么 Grid.Row 能写在 Button 上、为什么一个按钮点击后父级也能…...

如何应对“不懂技术的领导”?向上管理实战手册

当专业壁垒遇上管理权威在软件研发体系中,测试岗位因其独特的技术深度与质量视野,常常成为技术与业务、管理与执行的关键交汇点。许多测试工程师都曾面临一个经典困境:如何与一位对自动化框架、性能瓶颈、安全漏洞或敏捷测试策略缺乏深度理解…...

Spring Security配置踩坑大全:从CSRF禁用、密码加密到自定义登录页,一次讲清

Spring Security实战避坑指南:CSRF、密码加密与登录页定制深度解析 1. 当POST请求遭遇403:CSRF防护的精准控制策略 那个令人抓狂的403错误页面,可能是大多数开发者首次接触Spring Security时最深刻的记忆。明明在Postman测试正常的API接口&…...

建立个人技术品牌:从GitHub到技术博客的完整攻略

为何软件测试工程师需要建立个人技术品牌?在软件开发生命周期中,测试工程师的角色正经历着深刻变革。从传统的“找bug”到如今的“质量赋能者”、“过程改进专家”和“自动化架构师”,测试工作的价值内涵不断拓展。然而,这种专业价…...

LeetCode热题100(Java)(3)滑动窗口

本章包括的题目有: 3. 无重复字符的最长子串 - 力扣(LeetCode) 438. 找到字符串中所有字母异位词 - 力扣(LeetCode) 1.无重复字符的最长子串 思路解析: 要在一个字符串中找出最长的不含重复字符的子串…...

Python农业物联网融合不是“拼接”,而是“重构”:用本体建模+动态权重分配实现作物胁迫预警准确率跃升至94.3%(IEEE IoT Journal 2024最新实践)

更多请点击: https://intelliparadigm.com 第一章:Python农业物联网多源数据融合 多源异构数据接入挑战 现代农业物联网系统常集成土壤温湿度传感器、气象站、无人机遥感影像、边缘摄像头及历史农事日志等多类数据源,其协议(MQT…...

外业人必看:如何把电脑上的CAD图纸快速传到手机,在外业精灵里直接叠加地图做采集?

外业工作者必备:CAD图纸移动化全流程实战指南 站在荒郊野外的测量点上,掏出手机却发现CAD图纸还锁在办公室电脑里——这种场景对测绘、林业、工程等外业工作者来说再熟悉不过。传统工作流中,CAD图纸从设计端到现场端的"最后一公里"…...

FPGA开发者必看:四款热门开发板HDMI接口电路设计对比与选型指南

FPGA开发板HDMI接口设计深度对比:从电路细节到选型策略 当你在项目需求文档中写下"支持HDMI输出"这行字时,真正的挑战才刚刚开始。四款主流FPGA开发板——正点原子达芬奇、小梅哥AX720、米联客ZYNQ7030和ZYNQ7020,它们的HDMI接口电…...

Godot 4插件SmartShape2D:2D地形智能绘制与纹理化工作流

1. 项目概述:SmartShape2D,一个改变2D地形绘制方式的Godot插件如果你在Godot引擎里做过2D游戏,尤其是那些需要大量手绘地形、平台、水体或者复杂背景的项目,一定对多边形绘制和纹理填充的繁琐深有体会。传统的Polygon2D节点虽然基…...

SM2证书链验证失败?SM3摘要跨平台不一致?——Python国密工程化中那3个没有文档记载的ASN.1 DER编码陷阱

更多请点击: https://intelliparadigm.com 第一章:SM2/SM3国密算法工程化落地的现实困境 在金融、政务及关键基础设施领域,SM2(椭圆曲线公钥密码算法)与SM3(密码杂凑算法)已成强制合规要求&…...

基于NestJS与MongoDB的全栈个人空间系统:从架构到部署实战

1. 项目概述:一个现代、全栈的个人空间系统如果你和我一样,折腾过不少博客系统,从WordPress到Hexo,再到各种静态生成器,那你大概也经历过类似的烦恼:要么是后台太重、维护麻烦,要么是功能太单一…...

别再瞎调参数了!手把手教你用Hugging Face Transformers设置大模型temperature、top_p等核心参数

别再瞎调参数了!手把手教你用Hugging Face Transformers设置大模型核心参数 刚接触大模型调参的开发者常陷入两个极端:要么保守地使用默认参数导致输出平庸,要么盲目调整参数组合让结果失控。本文将用代码实例展示如何像专业炼丹师一样精准控…...