【极客大挑战2019】Upload解题

本文详细描述了一位安全研究员如何在BUUCTF的极客大挑战2019中,逐步绕过后端和前端的过滤机制,成功上传并执行了一个PHP一句话木马。通过修改文件后缀、内容及添加图片头,最终利用菜刀工具连接到服务器并找到flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、打开BUUCTF在线评测,选择web---->【极客大挑战2019】Upload。

2、首先上一句话木马。

 报错了,说明进行了前端过滤非图片格式文件。

3、 将文件后缀名改为.jpg后在上传。

报错,说明进行了后端过滤,文件内容不能包含'<?'。

4、修改文件内容,然后上传。

 

 继续报错

 应该是对图片头进行了校验,那添加图片头,然后上传。

 终于上传成功了,但此时我们上传的是一个.jpg图片,利用不了。

 

5、通过bp抓包,并修改图片后缀名为.phtml,使网页后端执行我们的一句话木马。

 6、猜测路径为upload。使用菜刀连接。

 连接成功,在根目录下找到flag

 

 

### 如何参与极客挑战2019以及完成文件或作品的上传 #### 参与方式 华为云计划在未来两天举办一系列活动,其中包括丰富的专题论坛、圆桌论坛,还有Codelabs、极客挑战赛等活动[^1]。这些活动旨在让开发者能够与华为专家面对面交流,激发技术创新的想法。因此,如果想要参与极客挑战2019,可以通过关注华为云官方渠道获取具体报名方法和时间安排。 #### 文件或作品上传流程 对于希望分享技术成果的人士来说,“Web开发资源荟萃”提供了一种便捷的方式。只需点击发布按钮创建新文章或其他形式的内容,并在保存时添加特定标签——即“Web开发资源荟萃”,便可成功提交自己的创作供更多人学习参考[^3]。 以下是简单的代码示例展示如何通过接口实现自动化的文档上传过程(假设存在这样的API服务): ```python import requests def upload_content(api_url, content, tag): payload = { 'content': content, 'tags': [tag] } response = requests.post(api_url, json=payload) if response.status_code == 200: print("Content uploaded successfully.") else: print(f"Failed to upload content. Status code: {response.status_code}") # Example usage api_endpoint = "https://example.com/api/upload" article_text = """This is an example article about web development resources.""" upload_tag = "Web开发资源荟萃" upload_content(api_endpoint, article_text, upload_tag) ``` 此脚本利用Python中的`requests`库向指定URL发送POST请求来模拟内容上传操作。实际应用中需替换真实的API地址及相关参数配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值