Q1IQ's blog

Archives · All

Home

About

Archives

loading..
PWN

xman wp

weapon_store三个功能:view、buy、checkout view,有点想吐槽,你一个卖武器的,价目表居然跟实际价格不一样。。下面的buy功能可以看到实际价格计算方法是100 * (v3 + 1) - 29,也就是说武器1卖171,武器2卖271。371。471。。。。 buy,先计算买的武器单价*数量是不是超过了手里的money,没超过就放到购物车里,但可以通过整数溢出绕过这个限制;另外可以看到malloc的时候还和0x1ff与了一下,可能有堆溢出。 checkout,当手里的money少于买下所有武器要花的钱时,就给你一次堆溢出的机会,这时可以把其他武器的name改换为flag输出。 输入选项的地方看起来可以泄露点什么出来 但这个地方存放的是两个栈里的值,一个text段的值,也得不到..

Read more
loading..
PWN

ByteCtf note_five 两种解法

阅读大佬的wp后复现了一下本题的多种解法 题目分析 本题是一道菜单题,只有new、edit和delete功能,没有show功能。不存在UAF。 edit所用的输入函数存在Off-By-One漏洞 chunk 的大小限制在 0x8f ~ 0x400 解题思路1(exp见文末)利用Off-By-One漏洞构造Overlapping,构造块的bk 为global_max_fast -0x10, unsorted bin attack 修改global_max_fast;利用 stdout-0x51处的 0xff 作为 chunk 的 size,fast bin attack 到_IO_2_1_stdout_附近分配chunk,修改_IO_write_base中的值,使它指向想要泄露的地址(stdout+0..

Read more
loading..
TOOL

IDA打patch学习小结

keypatch基本使用Edit -> Keypatch -> Patcher选中一行指令patch 可以输入汇编代码 nop啥的 Edit -> Keypatch -> Fill Range选中一定范围的指令一起patch 可以输入汇编代码 也可以输入16进制 “90” “0x90” “90,91” “AAh”等。 Edit -> Patch program -> Apply patches to input file撤消上一个操作,而且可以撤销多次(好像是无限制?亲测20次还是能继续撤销(好哎 Edit -> Patch program -> Apply patches to input file将修改保存到一个新的二进制文件(这是ida原本就有的功能 E..

Read more
loading..
PWN

pwnable wp

fdfd是文件描述符,fd=0为标准输入 ssize_t read(int fd,void *buf,size_t nbyte) read函数从fd中读取内容到buf。 col构造命令行参数 from pwn import * pwn_ssh = ssh(host='pwnable.kr',user='col',password='guest',port=2222) code = '\xE8\x05\xD9\x1D'+'\x01'*16 cn = pwn_ssh.process(argv=['col',code],executable='./col') print(cn.recv()) b..

Read more
1234