2022年春秋杯网络安全联赛 冬季赛-wp

misc—nan’s analysis


一眼丁真要流量分析找root密码
wireshark打开流量包,检索password找到一个包

keyisChunqiuGame00504

翻找流量包发现有shell.php文件,可能有后门
然后在终端读这个文件

应该是零宽隐写,用下面这个网站解
https://yuanfux.github.io/zero-width-web/

:::success
压缩密码格式’abac’*4,abac为纯数字形如1213,此密码与root密码有关
前面找到一个密码ChunqiuGame00504
猜测可能是0504 *4
0504050405040504
:::

找到一个文件上传的的地方,打开康康

他把上传的后门给加密了,eval的时候会执行解密,直接改成echo把结果打印出来

再跑一遍

:::success
/8MARVmEAnfKntdp2/HP0w==
这个就是加密的root密码的密文
:::

上号,拿flag

web— ezphp

1
2
3
4
5
6
7
8
<?php
highlight_file(__FILE__);
$num $_GET['num'];
if(is_string($num) && strlen($num) < 5 && strpos($num,'111') === false && strpos($num,'0') === false && eval("return 111===${num};")){
    readfile('/flag');
}

?>

参考:(https://www.cnblogs.com/chengd/p/7803664.html)
:::tips
is_string($num) //检查参数num是否为字符串
:::
:::info
strlen($num) < 5 //参数num的长度要小于5
:::

strpos($num,’111’) === false && strpos($num,’0’) === false //字符串里面不能含有111和0

eval(“return 111===${num};”) //eval执行,要求(“return 111===${num};”)的返回值为true

满足以上条件就读取flag
关键在于 “return 111===${num};” //${num}=$num
字符串里不允许有111,又要它等于111
一开始想到加减乘除,尝试加减无果,除法好像会超长度
用乘法:37x3=111

?num=37*3


2022年春秋杯网络安全联赛 冬季赛-wp
http://example.com/2023/02/09/2022年春秋杯网络安全联赛 冬季赛-wp/
作者
J_0k3r
发布于
2023年2月9日
许可协议
BY J_0K3R