| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> ctfhub技能树 文件上传 -> 正文阅读 |
|
[PHP知识库]ctfhub技能树 文件上传 |
目录 要做文件上传的题目首先要了解文件上传的危害 通过文件上传我们可以通过上传木马来获取服务器的webshell权限,从而接管网站的服务器 接着我们需要了解一下一句话木马 eg:<?php @eval($_POST['boom']);?> 其中eval就是执行命令的函数,$_POST[‘boom’]就是接收的数据。eval函数把接收的数据当作php代码来执行。这样我们就能够让插了一句话木马的网站执行我们传递过去的任意php语句。 一句话木马+webshell客户端就会有更强大的功能。如:中国菜刀,中国蚁剑,冰蝎 1无验证首先进入题目 这道题如题所示是无任何限制的,那么我们直接上传一句话木马 已经上传成功了,我们把相对路径组合一下成为绝对路径 ?http://challenge-d2ce6b4eeac11565.sandbox.ctfhub.com:10800/upload/one.php 一句话木马我们已经上传了,而且木马的绝对路径也清楚了,那么我们打开中国蚁剑 将URL地址粘贴进去,链接密码就写自己在一句话木马当中写的密码,我这里密码为boom ?成功连接到上传进去的一句话木马了,在html当中我们可以发现一个flag 的文件 打开就找到了这个题目的flag 2前端验证进入题目 这道题是前端验证,那么我们先上传一个正常的jpg文件找到它的相对路径 ?接下来我们试着上传一句话木马 因为这道题目是在前端对网页源代码做了限制,所以我们把一句话木马改为jpg格式的文件 上传时我们进行抓包 我们可以看到请求当中就有我们要上传的one.jpg,我们在这里将jpg改为php,然后发送 ?网页提示上传成功 虽然显示的还是jpg的文件,但其实我们已经改好了 打开蚁剑添加数据 ?已经成功连接 接着在文件html当中找到flag就完成了 ?3. .htaccess首先我们进入题目 我们知道题目的意思就是让我们使用.htaccess 那么我们先创建一个.htaccess,因为windows不能创建没有文件名只有拓展名的文件所以我们先随便起一个名字
?意思是将jpg为拓展名的文件,作为php来解析 接着我们将它上传,上传时进行抓包 把filename="11.htaccess" 改为 .htaccess 接下来放包,上传成功。 接下来将一句话木马改为jpg的拓展名,这样它就会被作为php的文件来进行解析 ?上传成功我们进入蚁剑,添加数据 ?连接成功,添加数据,找到flag ?任务完成 4.MIME绕过首先我们先了解一下什么是MIME MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式 也就是说在上传文件时,浏览器会告诉服务器这个要上传的文件是什么类型的 那么我们进入题目 首先我们,上传一个Jpg格式的文件,上传时进行抓包 ?可以 看到Content-Type: image/jpeg,而且我们上传的时候可以看到是可以成功上传的 那么我们将Content-Type: image/jpeg复制下来 接着去上传一句话木马,我们把原来的Content-Type:改为Content-Type: image/jpeg ?上传成功 ?去蚁剑添加数据查找flag 任务完成 附: 常见的MIME类型 ????? 1)超文本标记语言.html文件的MIME类型为:text/html ????? 2)普通文本.txt文件的MIME类型为:text/plain ????? 3)PDF文档.pdf的MIME类型为:application/pdf ????? 4)MicrosoftWord文件.word的MIME类型为:application/msword ????? 5)PNG图像.png的MIME类型为:image/png ????? 6)GIF图像.gif的MIME类型为:image/gif ????? 7)MPEG文件.mpg、.mpeg的MIME类型为:video/mpeg ????? 8)AVI文件.avi的MIME类型为:video/x-msvideo 5.文件头检测文件头检测说明还会检测文件的文件头来查看文件是否合规 首先我们进入题目,先上传一张图片试试是否能正常上传,我自己试了好多次jpg格式的图片都无法正常上传可能是文件头没法正常读取?最后换了一张png图片可以上传。 ?上传一个php文件并不可以 ?我们在cmd当中制作一张图片马
用这个代码来制作自己的图片马,接着打开bp准备开始上传图片马 ??在这里我们也需要将MIME改好,图片头文件是png就将它改为 image/png 图片代码内容太多了我们删去一些 已经上传成功了接着进入蚁剑 ?找到flag 6.00截断进入题目 ?首先上传一个正常的png文件 ?上传成功后并没有像以前一样显示文件的相对路径,果然和之前的题目不太一样 那么根据00截断我们给一句话木马加上
那么一句话木马的名字会是 文件名.php%00.png 接着我们上传文件 发现文件直接上传成功了 但是我们去蚁剑按照原来的前几题的URL连接发现是连不上的,那么我们抓包看看 查看里面的代码
通过查资料了解到 ?$des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") move_uploaded_file($_FILES['file']['tmp_name'], $des 这里会对我们上传的文件修改文件名并修改地址,在$_GET[‘road’]后面进行00截断 在请求当中POST /?road=/var/www/html/upload/ HTTP/1.1 我们将自己上传的木马名输入后再截断 POST /?road=/var/www/html/upload/2.php%00 HTTP/1.1 上传成功,去蚁剑添加数据记得url是要输入之前的上传目录也就是 upload/2.php ?得到flag 7.双写绕过首先进入题目我们上传一个PHP文件 ?发现其实是可以上传成功的,只是会对php进行一个屏蔽 那么我们写两遍php ?接着上传 ?也是一样的会都进行屏蔽,那么我们把PHP夹在php当中 比如.pphphp 当拓展名的php被屏蔽后就会形成另一个php,接着上传 ?一句话木马上传成功,连接蚁剑找到flag。 |
|
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/14 14:36:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |