本文最后更新于11 天前,其中的信息可能已经过时,如有错误请发送邮件到
matter_lmoon5731@outlook.com
文件上传练习
PolarCTF
坏掉的上传页
1.打开环境发现无法进行选择文件,分析其前端源码发现,前端没有给选择文件配置监听器导致无法进行上传文件,然后利用dirsearch扫描器目录得到一个响应为200的 /config.php

打开对应得到网页得到一个php代码,主要得到内容为上传的文件会先database.db显示路径
然后由于无法进行选择文件上传于是只能进行模拟POST发包伪造的请求如下
POST / HTTP/1.1
Host: 6fda5dab-f236-4ef7-9caa-b29794718c3d.www.polarctf.com:8090
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Length: 205
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="123.php"
Content-Type: image/jpeg
------WebKitFormBoundary7MA4YWxkTrZu0gW--
然后点击发包然后发现有回显,提示 文件上传成功!已记录到数据库

然后没有想要database.db是可以直接进行访问的,然后看到我们最新上传的文件

得到路径之后利用蚁剑进行连接,然后在发现更目录中没有,env中的flag为假的flag于是在终端进行find一下找到flag文件然后得到其中的flag’

传马
发现环境对上传文件的后缀和文件检验又限制图片于是上传一个jpg后缀的木马,然后测试执行命令是否可以执行


发现可以执行于是传入一句话木马,然后利用蚁剑进行连接发现flag在根目录

flag{420F9CED0C3E6CE65A90817A65197A09}
笑傲上传
打开环境发现禁止只允许上传png,jpg,gif图片,并且在多次上传文件发现不论上传什么的后缀的文件最后靶机的逻辑都会变成jpg结尾

所以上传文件这条路是不通了,接下来在参看前端源码中发现一个提示
奡神的神秘链接
打开后发现是一个php代码
含义为如果file有get传参的数据时,即$file有值时,将$file的数据打印出来,如果没有把当前这个 PHP 文件自己的源码显示出来

然后测试发现靶机是可以进行读取文件中的内容的
http://e77b7e06-0d90-4df4-aa05-bfd55485683d.www.polarctf.com:8090/include.php?file=/etc/passwd

于是尝试一个flag是否在根目录于是,得到flag
http://e77b7e06-0d90-4df4-aa05-bfd55485683d.www.polarctf.com:8090/include.php?file=/flag.txt

flag{dfbb09ce0b4ae994b2a8249b810ea22d}










