题目内涵

一开始不知道题目是啥意思,把压缩包下载解压得到两张图片,瞬间明白了,绷不住了…

image-20220428142736975

这是大图,想必大家都知道东京奥运会体操裁判双目失明仍然坚守岗位的事吧(狗头保命)

image-20220428142913209

阅读更多
MISC

漏洞概述

在CmsEasy7.6.3.2版本中,存在订单金额任意修改逻辑漏洞,攻击者利用业务逻辑层的应用安全问题,在提交订单时抓取数据包并修改,以及对订单的数量进行任意修改(打到资本家!)。此漏洞可能造成企业的资产损失和名誉受损,传统的安全防御设备和措施收效甚微,危害还是比较大的捏。

阅读更多
逻辑漏洞

观察源码

进入靶场发现直接给了源码:

<?php
highlight_file('index.php');

extract($_GET);
error_reporting(0);
function String2Array($data)
{
    if($data == '') return array();
    @eval("\$array = $data;");
    return $array;
}


if(is_array($attrid) && is_array($attrvalue))
{
        $attrstr .= 'array(';
        $attrids = count($attrid);
        for($i=0; $i<$attrids; $i++)
        {
            $attrstr .= '"'.intval($attrid[$i]).'"=>'.'"'.$attrvalue[$i].'"';
            if($i < $attrids-1)
            {
                $attrstr .= ',';
            }
        }
        $attrstr .= ');';
}

String2Array($attrstr);
阅读更多
WEB

分组密码的模式

分组密码与流密码

密码算法可以分为分组密码和流密码两种。

分组密码(block cipher)是每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组(block)。此外,一个分组的比特数就称为分组长度(block length)。

例如,DES 和三重 DES 的分组长度都是64比特。这些密码算法一次只能加密 64 比特的明文,并生成64比特的密文。AES 的分组长度可以从128 比特、192比特和256比特中进行选择。当选择 128 比特的分组长度时,AES一次可加密 128 比特的明文,并生成 128 比特的密文。

流密码(streamcipher)是对数据流进行连续处理的一类密码算法。流密码中一般以1比特、8比特或32比特等为单位进行加密和解密。

分组密码处理完一个分组就结束了,因此不需要通过内部状态来记录加密的进度;相对地,流密码是对一串数据流进行连续处理,因此需要保持内部状态。

什么是模式

分组密码算法只能加密周定长度的分组,但是我们需要加密的明文长度可能会超过分组密码的分组长度,这时就需要对分组密码算法进行迭代,以便将一段很长的明文全部加密。而迭代的方法就称为分组密码的模式 (mode)。说人话就是对分组密码加密的方式。在学习之前,我觉得大部分都会认为:如果明文很长的话,将明文分割成若干个分组再逐个加密不就好了吗?因为我自己就是这么认为的QAQ。事实上可没有那么简单。将明文分割成多个分组并逐个加密的方法称为 ECB模式,这种模式具有很大的弱点(后续介绍)。如果在编写加密软件使用 ECB 模式,会在不经意间产生安全漏洞,所以千万不能使用 ECB模式。

模式有很多种类,分组密码的主要模式有以下5种:

ECB模式:Electronic CodeBook mode(电子密码本模式)

CBC模式:Cipher Block Chaining mode(密码分组链接模式)

CFB模式:Cipher FeedBack mode(密文反馈模式)

OFB模式:Output FeedBack mode(输出反馈模式)

CTR模式:CounTeR mode(计数器模式)

阅读更多
ECB、CBC、CFB、OFB、CTR