CTF练习week04

1. 幂数加密

在这里插入图片描述
下载附件
在这里插入图片描述
百度了一下
在这里插入图片描述
将原文档处理了一下
在这里插入图片描述
flag为cyberpeace{WELLDONE}

附上大佬的脚本

s = '8842101220480224404014224202480122 '

s1 = s.split('0')

for s2 in s1:
    sum=0
    for i in range(len(s2)):
        sum=sum+int(s2[i] )
    print(str.upper(chr(ord('a')+sum-1)) ,end='')

运行脚本得到

WELLDON

2. Railfence

在这里插入图片描述
根据题目提示,发现可能是栅栏密码,并且栏数为5,下载附件
在这里插入图片描述
附件是已经被加密过的密文, 尝试了栅栏解密没有得到flag。查了一下,发现是栅栏密码的变种,W型加密
在这里插入图片描述
flag格式为cyberpeace{xxxxxxxxxx},前面知道了栏数为5,整理一下密文
在这里插入图片描述
排列成W型
在这里插入图片描述

按照箭头方向读取字符串,得到flag为cyberpeace{railfence_cipher_gogogo}

上面的步骤比较麻烦,也可以用在线工具解题
栅栏密码加密/解密【W型】
在这里插入图片描述

3. easy_RSA

在这里插入图片描述

下载附件
在这里插入图片描述
RSA算法

1.随机选择两个不相等的质数p和q。
2.计算p和q的乘积n(n=pq),n的长度就是密钥长度。
3.计算n的欧拉函数φ(n): φ(n) = (p-1)(q-1)
4.随机选择一个整数e,也就是公钥当中用来加密的那个数字 条件是1< e < φ(n),且e与φ(n) 互质。
5.计算e对于φ(n)的模反元素d。也就是密钥当中用来解密的那个数字
所谓"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1,ed 1 (mod φ(n)) 。
6.将n和e封装成公钥,n和d封装成私钥,(n,e),(n,d)就是密钥对。
7.首先对明文进行比特串分组,使得每个分组对应的十进制数小于n,然后依次对每个分组m做一次加密,所有分组的密文构成的序列就是原始消息的加密结果,即m满足0<=m<n,则加密算法为:
c≡ m^e mod n; c为密文,且0<=c<n。
对于密文0<=c<n,解密算法为:
m≡ c^d mod n;

贴上大佬的脚本

def exgcd(a, n):
    if n == 0:
        return 1, 0
    else:
        x, y = exgcd(n, a % n)
        x, y = y, x - (a // n) * y
        return x, y
 
 
def getReverse(a, n):
    re, y = exgcd(a, n)
    while(re < 0):
        re += n
    return re
 
 
if __name__ == "__main__":
    p = 473398607161
    q = 4511491
    e = 17
    d = getReverse(e, (p - 1)*(q - 1))
    print('d = ' + str(d))

运行脚本

d = 125631357777427553

4. cookie

在这里插入图片描述
访问网址
在这里插入图片描述
F12,点击控制台上的Application,查看Cookies下的网址在这里插入图片描述
看到有个cookie.php,我们打开一下
在这里插入图片描述
根据提示查看http响应,继续F12,点击控制台上面的Network,然后ctrl+r
在这里插入图片描述
点击cookie.php,在Response Headers下可以发现flag
在这里插入图片描述

在这里插入图片描述

5. backup

在这里插入图片描述
访问网址
在这里插入图片描述
这道题目主要考察是否清楚index.php备份文件的文件名格式
一般备份文件的格式后缀为.bak

因此访问url+/index.php.bak即可,访问后会自动下载一个文件,打开该文件,即可得到flag
在这里插入图片描述

有关备份文件

很多开发人员在编辑文件前,都会先进行一次备份,同时会把备份文件和源文件放在服务器上的同一个地方。这样的话,如果存在绕过身份验证,就可以直接下载到这个备份文件,从而得到网站源代码。

有关备份文件的可以利用的情况主要有3种:

  1. 代码编辑器产生的备份文件

  2. 没有删除版本控制系统(VCS)产生的备份文件

  3. 没有删除开发人员手动备份的文件

常见备份文件的后缀

.rar
.zip
.7z
.tar.gz
.bak
.swp
.txt
.html
linux中可能以" ~ " 结尾

猜你喜欢

转载自blog.csdn.net/qq_46150940/article/details/107565019