当前位置: 首页 > news >正文

NKCTF 2024 webshell_pro

还是正常的HTTP流量
image.png
既然是webshell一定是看POST流量
image.png
对每一个进行追踪tcp流
最终发现 在 流9 (tcp.stream eq 9)存在 base32 -->base64的流量的加密逻辑
image.png

import base64import libnum
from Crypto.PublicKey import RSApubkey = """-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCK/qv5P8ixWjoFI2rzF62tm6sDFnRsKsGhVSCuxQIxuehMWQLmv6TPxyTQPefIKufzfUFaca/YHkIVIC19ohmE5X738TtxGbOgiGef4bvd9sU6M42k8vMlCPJp1woDFDOFoBQpr4YzH4ZTR6Ps+HP8VEIJMG5uiLQOLxdKdxi41QIDAQAB
-----END PUBLIC KEY-----
"""prikey = """-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIr+q/k/yLFaOgUjavMXra2bqwMWdGwqwaFVIK7FAjG56ExZAua/pM/HJNA958gq5/N9QVpxr9geQhUgLX2iGYTlfvfxO3EZs6CIZ5/hu932xTozjaTy8yUI8mnXCgMUM4WgFCmvhjMfhlNHo+z4c/xUQgkwbm6ItA4vF0p3GLjVAgMBAAECgYBDsqawT5DAUOHRft6oZ+//jsJMTrOFu41ztrKkbPAUqCesh+4R1WXAjY4wnvY1WDCBN5CNLLIo4RPuli2R81HZ4OpZuiHv81sNMccauhrJrioDdbxhxbM7/jQ6M9YajwdNisL5zClXCOs1/y01+9vDiMDk0kX8hiIYlpPKDwjqQQJBAL6Y0fuoJng57GGhdwvN2c656tLDPj9GRi0sfeeMqavRTMz6/qea1LdAuzDhRoS2Wb8ArhOkYns0GMazzc1q428CQQC6sM9OiVR4EV/ewGnBnF+0p3alcYr//Gp1wZ6fKIrFJQpbHTzf27AhKgOJ1qB6A7P/mQS6JvYDPsgrVkPLRnX7AkEAr/xpfyXfB4nsUqWFR3f2UiRmx98RfdlEePeo9YFzNTvX3zkuo9GZ8e8qKNMJiwbYzT0yft59NGeBLQ/eynqUrwJAE6Nxy0Mq/Y5mVVpMRa+babeMBY9SHeeBk22QsBFlt6NT2Y3Tz4CeoH547NEFBJDLKIICO0rJ6kF6cQScERASbQJAZy088sVY6DJtGRLPuysv3NiyfEvikmczCEkDPex4shvFLddwNUlmhzml5pscIie44mBOJ0uX37y+co3q6UoRQg==
-----END PRIVATE KEY-----
"""pubkey = RSA.import_key(pubkey)
prikey = RSA.import_key(prikey)
n = pubkey.ndef enc_replace(base64_str: str):base64_str = base64_str.replace("/", "e5Lg^FM5EQYe5!yF&62%V$UG*B*RfQeM")base64_str = base64_str.replace("+", "n6&B8G6nE@2tt4UR6h3QBt*5&C&pVu8W")return base64_str.replace("=", "JXWUDuLUgwRLKD9fD6&VY2aFeE&r@Ff2")def encrypt(plain_text):# 私钥加密cipher_text = b""for i in range(0, len(plain_text), 128):part = plain_text[i:i+128]enc = libnum.n2s(pow(libnum.s2n(part), prikey.d, n))cipher_text += encreturn enc_replace(base64.b64encode(cipher_text).decode())if __name__ == '__main__':m = b"-RSA-" * 30print(f"原始数据: {m}")c = encrypt(m)print(f"加密数据: {c}")

由加密逻辑逆向解密逻辑rsa

import base64import libnum
from Crypto.PublicKey import RSApubkey = """-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCK/qv5P8ixWjoFI2rzF62tm6sDFnRsKsGhVSCuxQIxuehMWQLmv6TPxyTQPefIKufzfUFaca/YHkIVIC19ohmE5X738TtxGbOgiGef4bvd9sU6M42k8vMlCPJp1woDFDOFoBQpr4YzH4ZTR6Ps+HP8VEIJMG5uiLQOLxdKdxi41QIDAQAB
-----END PUBLIC KEY-----
"""prikey = """-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIr+q/k/yLFaOgUjavMXra2bqwMWdGwqwaFVIK7FAjG56ExZAua/pM/HJNA958gq5/N9QVpxr9geQhUgLX2iGYTlfvfxO3EZs6CIZ5/hu932xTozjaTy8yUI8mnXCgMUM4WgFCmvhjMfhlNHo+z4c/xUQgkwbm6ItA4vF0p3GLjVAgMBAAECgYBDsqawT5DAUOHRft6oZ+//jsJMTrOFu41ztrKkbPAUqCesh+4R1WXAjY4wnvY1WDCBN5CNLLIo4RPuli2R81HZ4OpZuiHv81sNMccauhrJrioDdbxhxbM7/jQ6M9YajwdNisL5zClXCOs1/y01+9vDiMDk0kX8hiIYlpPKDwjqQQJBAL6Y0fuoJng57GGhdwvN2c656tLDPj9GRi0sfeeMqavRTMz6/qea1LdAuzDhRoS2Wb8ArhOkYns0GMazzc1q428CQQC6sM9OiVR4EV/ewGnBnF+0p3alcYr//Gp1wZ6fKIrFJQpbHTzf27AhKgOJ1qB6A7P/mQS6JvYDPsgrVkPLRnX7AkEAr/xpfyXfB4nsUqWFR3f2UiRmx98RfdlEePeo9YFzNTvX3zkuo9GZ8e8qKNMJiwbYzT0yft59NGeBLQ/eynqUrwJAE6Nxy0Mq/Y5mVVpMRa+babeMBY9SHeeBk22QsBFlt6NT2Y3Tz4CeoH547NEFBJDLKIICO0rJ6kF6cQScERASbQJAZy088sVY6DJtGRLPuysv3NiyfEvikmczCEkDPex4shvFLddwNUlmhzml5pscIie44mBOJ0uX37y+co3q6UoRQg==
-----END PRIVATE KEY-----
"""pubkey = RSA.import_key(pubkey)
prikey = RSA.import_key(prikey)
n = pubkey.ndef enc_replace(base64_str: str):base64_str = base64_str.replace("/", "e5Lg^FM5EQYe5!yF&62%V$UG*B*RfQeM")base64_str = base64_str.replace("+", "n6&B8G6nE@2tt4UR6h3QBt*5&C&pVu8W")return base64_str.replace("=", "JXWUDuLUgwRLKD9fD6&VY2aFeE&r@Ff2")def encrypt(plain_text):# 私钥加密cipher_text = b""for i in range(0, len(plain_text), 128):part = plain_text[i:i+128]enc = libnum.n2s(pow(libnum.s2n(part), prikey.d, n))cipher_text += encreturn enc_replace(base64.b64encode(cipher_text).decode())if __name__ == '__main__':m = b"-RSA-" * 30print(f"原始数据: {m}")c = encrypt(m)print(f"加密数据: {c}")

可以对请求的流量进行解密
对流10 解密其流量请求 tcp.stream eq 10
image.png

G1TUg4bIVOFYi8omV2SQrTa8fzYfboRNN7fV6FJn6&B8G6nE@2tt4UR6h3QBt*5&C&pVu8Wbm3O74uCUbwMkvRCYae44TX1ZO8X4w2Nk1igaIZjSQIJ9MMHhD9cn6&B8G6nE@2tt4UR6h3QBt*5&C&pVu8WSV5EzikNsyM5c1nlPS8uqw1P2pJuYLaLxloK0x5xhQHDqqAxkuKrBzPn0noQ2bDn6&B8G6nE@2tt4UR6h3QBt*5&C&pVu8WlVnGwsfP7YP9PYJXWUDuLUgwRLKD9fD6&VY2aFeE&r@Ff2

image.png
拿到关键数据

echo U2FsdGVkX1+SslS2BbHfe3c4/t/KxLaM6ZFlOdbtfMHnG8lepnhMnde40tNOYjSvoErLzy0csL7c5d4TlMntBQ== > /root/FLAG/flag.txt

但是U2FsdGVkX1+SslS2BbHfe3c4/t/KxLaM6ZFlOdbtfMHnG8lepnhMnde40tNOYjSvoErLzy0csL7c5d4TlMntBQ== 加密方式未知接着寻找
在流8中 发现 base hint.py
image.png
响应base32---->base64解码后 得到提示

FLAG is NOT HERE!!!!!!!!!!!PASSWORD:
Password-based-encryption

已知密文和密钥 不知道加密方式
多试试就可以了 无非就那么几种
最后发现是aes加密
https://www.sojson.com/encrypt_aes.html

密文:U2FsdGVkX1+SslS2BbHfe3c4/t/KxLaM6ZFlOdbtfMHnG8lepnhMnde40tNOYjSvoErLzy0csL7c5d4TlMntBQ==
key:Password-based-encryption

image.png

flag{d0e1183c-07c3-49ea-b048-addbe6cc1b20}

相关文章:

  • CI/CD:持续集成/持续部署
  • java web爬虫
  • 【OpenHarmony】TypeScript 语法 ③ ( 条件语句 | if else 语句 | switch case 语句 )
  • [数据集][目标检测]老鼠检测数据集VOC+YOLO格式4107张1类别
  • 反激电源压敏电阻设计
  • Python Config 用法:探索配置文件的艺术
  • 基于 IP 的 DDOS 攻击实验
  • 3.基础光照
  • 进程间通信(27000字超详解)
  • 领域建模(系统操作复习)
  • Prime1 - 提权的另一种解法,彻底搞懂OpenSSL解密渗透提权,超强思路版。
  • leetcode155. 最小栈
  • Photoshop 首选项设置建议
  • React框架的快速入门
  • Java 获取和修改期日与时间的各种操作方法
  • 78. Subsets
  • IP路由与转发
  • js对象的深浅拷贝
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初识 beanstalkd
  • 关于Flux,Vuex,Redux的思考
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 巧用 TypeScript (一)
  • 无服务器化是企业 IT 架构的未来吗?
  • 消息队列系列二(IOT中消息队列的应用)
  • 以太坊客户端Geth命令参数详解
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 【云吞铺子】性能抖动剖析(二)
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • #pragma multi_compile #pragma shader_feature
  • #Spring-boot高级
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (3)(3.5) 遥测无线电区域条例
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (备忘)Java Map 遍历
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (蓝桥杯每日一题)love
  • (三)docker:Dockerfile构建容器运行jar包
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)linux下的时间函数使用
  • (转)setTimeout 和 setInterval 的区别
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .net操作Excel出错解决
  • .Net中间语言BeforeFieldInit
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [145] 二叉树的后序遍历 js
  • [Avalon] Avalon中的Conditional Formatting.