web-ssrfme

代码分析

<?php
highlight_file(__file__);
function curl($url){  
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   echo curl_exec($ch);
   curl_close($ch);
}

if(isset($_GET['url'])){
   $url = $_GET['url'];

   if(preg_match('/file\:\/\/|dict\:\/\/|\.\.\/|127.0.0.1|localhost/is', $url,$match))
  {
       die('No, No, No!');
  }
   curl($url);
}
if(isset($_GET['info'])){
   phpinfo();
}
?>

可以看到有一个过滤条件,它限制了file,dict协议,127.0.0.1和localhost 也不能用,其实就是不想你探测内网端口,也不能读取内网服务文件。

查看内网ip

目前还不知道当前主机的内网ip,但是源码提供了一个查看phpinfo的功能:

查看phpinfo,如下图,可以看到当前主机的内网ip为172.17.0.3:

查看内网端口

我们可以使用ssrf扫描一下这个内网主机的端口,这里使用burpsuite:

利用gopherus写入shell

探测发现6379redis在活动,可以利用gopherus写入shell

可以看看内容写的啥

进行二次编码

更改shel.php

我们这里要改一下shell.php的内容,改为查看flag 

<?php system(\"cat /flag\");?>

查看flag

然后我们就可以查看一下flag

成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值