[极客大挑战 2019]Upload 1

[极客大挑战 2019]Upload 1

审题

看到是一个文件上传类题型。

知识点

一句话木马的注入

知识点详解

一句话木马的原理

eval()函数会将参数作为PHP代码进行执行,因此通过eval()函数中的参数v提交要执行的代码即可完成漏洞利用。语句中的@符号作用是可以屏蔽函数执行过程中遇到问题而产生的一些错误、警告信息,这样用户就看不到程序的出错信息。如此一来,即使$_POST[]变量没有获取到参数值时也不会报错。这样除了用户界面会友好一些外,更重要的是安全性,因为屏蔽了出错文件的路径等信息。

成功上传一句话木马文件后可以直接用菜刀或蚁剑连接,也可以访问文件上传路径实现任意命令执行,通过v参数传入命令执行函数system(),执行system()函数中的系统命令。

一句话木马的基本写法。

php 复制代码
1.<?php @eval($_POST['cmd']);?>
2.<?=@eval($_POST['cmd']);?>
3.<script language="php">eval($_REQUEST[cmd])</script>

绕过后缀的有文件格式有php,php3,php4,php5,phtml,pht

解题

上传含有一句话木马的b.txt文件,并使用bp抓包更改后缀

其中前面加上GIF89a,这个可以伪造成jpg格式的文件。

看到更改为.php后缀时显示NO,php所以尝试其他后缀,.phtml成功绕过。但题目又写到no,hacker,你的文件有<?

所以,使用另一种一句话木马格式

更改后发现上传成功

一般上传后的文件在/upload/路径下。

打开b.phtml连接蚁剑。

在根目录下找到flag。

相关推荐
谷歌开发者1 小时前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
报错小能手2 小时前
计算机网络自顶向下方法36——网络层 网络地址转换 网络安全(防火墙、入侵检测系统)
网络·计算机网络·智能路由器
QT 小鲜肉2 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
研究司马懿3 小时前
【ETCD】ETCD常用命令
网络·数据库·云原生·oracle·自动化·运维开发·etcd
Mr.Jessy3 小时前
Web APIs 学习第五天:日期对象与DOM节点
开发语言·前端·javascript·学习·html
存在morning4 小时前
【人工智能学习笔记 三】 AI教学之前端跨栈一:React整体分层架构
笔记·学习·架构
咖啡教室4 小时前
每日一个计算机小知识:ICMP
后端·网络协议
张人玉4 小时前
网络通讯TCP和UDP的区别
网络协议·tcp/ip·udp
独行soc4 小时前
2025年渗透测试面试题总结-234(题目+回答)
网络·python·安全·web安全·渗透测试·1024程序员节·安全狮
咖啡教室4 小时前
每日一个计算机小知识:IGMP
后端·网络协议