云曦3月断网考
misc
一系列的流量分析,得到的附件 去010查看得知,这是一个压缩包
去010查看得知,这是一个压缩包 所以更改文件名,后缀是.zip的,就可以解压缩文件了
所以更改文件名,后缀是.zip的,就可以解压缩文件了 解压缩得到流量包
解压缩得到流量包
1

我们需要的是流量包的信息,那么就需要照找到哪里看
在菜单栏的<统计>,选择<捕获文件属性>查看该流量包的详细信息
在信息中看到时间,需要的是秒数,那么就计算

2
 
同样是在那个信息中查看,
3
 
找受害者的ip,那么前面两道的那个页面的信息就无用了。ip我们得先看看什么协议,
 查看一下http协议
查看一下http协议 仅有两个不同的ip,那么我们都试一下就可以了
仅有两个不同的ip,那么我们都试一下就可以了
法2
但是其实我们不需要去试,通过一些有显示状态码的去看就能知道
那些状态码是被访问的返回给访问的,那么这里的source就是该题的被攻击者的ip了
4

操作系统,含在流量包的server这条信息中,所以我们就搜索server
5


 所以就是nmap工具
所以就是nmap工具
6

7
 
这里找的是登录点,我们试试搜搜admin,因为这是常见的用户名(虽然不确定会不会有用户名的输入),这次很有幸,搜到了 并且在同一条信息中我们看到了第8的答案
并且在同一条信息中我们看到了第8的答案
8


法2
搜索password,但是需要扫描到很多条才能到答案
web
ez_rce
开启环境,看到php代码 大致就是:post传参a,b,get传参num;num需要等于123456,但是又不能是数字;a,b的值不等,但是a,b的md5加密后的值强比较相等。经过如上两个绕过才会输出successful。那么就传入参数
大致就是:post传参a,b,get传参num;num需要等于123456,但是又不能是数字;a,b的值不等,但是a,b的md5加密后的值强比较相等。经过如上两个绕过才会输出successful。那么就传入参数 绕过成功,然后我们用php伪协议获得
绕过成功,然后我们用php伪协议获得f11111ag.php的源码,并且是post传入参数file base64解码
base64解码 得到源码,过滤成功就直接访问这个php文件进行下一层的操作
得到源码,过滤成功就直接访问这个php文件进行下一层的操作
<?php
error_reporting(0);
function no($txt) {
    if(!preg_match("/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|exec|printf|passthru|proc_open|shell_exec|eval|popen|f/i", $txt)) {
        return $txt;
    } else {
        die("what's up");
    }
}
$e = $_POST['e'];
if (isset($_GET['m']) && isset($_GET['n']) && isset($_POST['e'])) {
    $param1 = no($_GET['m']);
    $param2 = no($_GET['n']);
    if (function_exists($e)) {
        call_user_func($e, $param1, $param2);
    } else {
        die("Function not allowed.");
    }
} else {
    echo "nonono";
}
?> 根据题目提示“写一句话木马”,先简单解析一下源码:
根据题目提示“写一句话木马”,先简单解析一下源码:
一个no函数,定义了一堆黑名单;需要传入post参数e,get参数m,n;一个call_user_func()函数使e成为一个函数,m,n是e这个函数的参数
所以开始进行传参。e传入参数file_put_contents
使用 file_put_contents 函数时,可以指定文件名、要写入的数据以及其他可选标志。例如,向文件写入字符串的基本用法如下:
<?php
$file = 'example.txt';
$data = '这是一些文本';
file_put_contents($file, $data);
?>
如果没有example.txt,那么该段代码的作用就是写了一句话给参数data,将文件名给参数file。最后我们得到一个文件名为example.txt、文件内容为‘这是一些文本’的文件。
然后m传入自己想要的文件名,n传入一句话木马(注意参数m,n中不能含有黑名单的内容。 传入成功,然后进行连接
传入成功,然后进行连接 直接查看根目录,ls /
直接查看根目录,ls / 看到了一个flag的形式的文件,cat它
看到了一个flag的形式的文件,cat它
ez_upload
我们首先看到了灯泡,点亮后可以上传 随便上传一个一句话木马有弹窗
随便上传一个一句话木马有弹窗 前端禁用js,
前端禁用js, 再上传没了弹窗,但是显示bad
再上传没了弹窗,但是显示bad 然后试试其他文件,最后尝试出phtml可以
然后试试其他文件,最后尝试出phtml可以 蚁剑连接成功
蚁剑连接成功

找到flag文件

得到flag

ez_ssrf
从一文中了解SSRF的各种绕过姿势及攻击思路_ssrf绕过-CSDN博客
开启环境,看源码
<?php
highlight_file(__FILE__);
//flag在/flag路由中
if (isset($_GET['url'])){
    $url = $_GET['url'];
    
    if (strpos($url, 'http://127.0.0.1') !== 0){
        echo json_encode(["error" => "Only http://127.0.0.1 URLs are allowed"]);
        exit;
    }
    $host = parse_url($url, PHP_URL_HOST);
    $ip = gethostbyname($host);
    $forbidden_ips = ['127.0.0.1', '::1'];
    if (in_array($ip, $forbidden_ips)){
        echo json_encode(["error" => "Access to localhost or 127.0.0.1 is forbidden"]);
        exit;
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'curl/7.68.0');
    
    $response = curl_exec($ch);
    if (curl_errno($ch)){
        echo json_encode(["error" => curl_error($ch)]);
    } else {
        echo $response;
    }
    curl_close($ch);
} else {
    echo json_encode(["error" => "Please provide a 'url' parameter"]);
}
?> 大致分析:get传参传入url,如果没有这个参数就会返回“error”“Please provide a 'url' parameter”
传入的url参数如果不是http://127.0.0.1开头,就会显示“error” "Only http://127.0.0.1 URLs are allowed"
然后识别端口,如果是127.0.0.1或者::1(ipv6的本地地址)就显示“error”"Access to localhost or 127.0.0.1 is forbidden"
直接访问flag,是不能行
用@分隔开,这里可以看到我们是到达了127.0.0.1,所以这样能行 但是仍然是不能直接访问的
但是仍然是不能直接访问的 但是在linux中0.0.0.0也表示127.0.0.1所以我们吧@后的更改
但是在linux中0.0.0.0也表示127.0.0.1所以我们吧@后的更改
