| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> upload-labs_pass21_CTF逻辑老饶了 -> 正文阅读 |
|
[游戏开发]upload-labs_pass21_CTF逻辑老饶了 |
pass21-源码分析和提示提示:
这一关对于学习知识来说,已经意义不大了,但是出题人故意把这一关设计的弯弯绕绕。 代码解析: 首先检查MIME类型。 然后检查文件名,这个也是可以抓包修改的,因为是从POST请求中修改文件名的。 注意这里有一句三目运算符:
如果保存名称是空的,那就保存名称直接赋值成文件的名字。 然后判断保存名称是不是数组:(这一步貌似很奇怪,所以说这一关是为了出题而出题)
是从数组中拿到最后一项。 然后:
又做了一次白名单 的判断。—》所以save_path中的最后一项(save_path是一个数组)也确定了,是白名单的其中一个。 然后是else:
说白了, 然后最后再注意一下PHP的move_uploaded_file函数的特性,在pass20的那一关已经碰到过了。不了解的可以去看一下pass20 pass21-思路首先准备上传shell.php(一句话木马) 然后先抓包: 修改: pass21-连接webshell21关也过了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 21:03:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |