摘要: 分析一下这串代码,每次读取flag.txt的一个字符存入buf[0]里面,然后用write输出(buf代表的是buf[0]),读到文件末尾退出返回0xFF。其实就输出flag啦,我们只要将栈溢出返回地址填到这个函数就行 这里注意没有把rbp压入栈,结尾也没有leave,不用加8 exp from p 阅读全文
posted @ 2025-01-16 17:06 fdddddd 阅读(33) 评论(0) 推荐(0)
摘要: 格式字符串漏洞的篡改内容 看到x值为3,将x的值改为4就好 首先传入x参数的地址,这个地址存放在栈上偏移为11的位置,利用%11$n,定位到了偏移为11的位置,往这个位置写入数据,写入的数据由%11$n前面的参数的长度决定,而我们的x参数的地址,正好是4位,不需要添a来补齐位数就可以直接利用,将x参 阅读全文
posted @ 2025-01-16 16:34 fdddddd 阅读(30) 评论(0) 推荐(0)
摘要: 整数溢出 要使栈溢出,则应该输入nbytes,使其转换为int类型小于10,但转换为unsigned int类型大于0x10+ int类型:在C语言中,int类型是有符号整数,通常占用4个字节(32位)。它的取值范围是-2147483648到2147483647。 unsigned int类型:un 阅读全文
posted @ 2025-01-16 13:36 fdddddd 阅读(48) 评论(0) 推荐(0)
摘要: 先让我们输入s1,如果不是'administrator'程序将退出。 然后输入1会让我们输入src(限制读入128个字符) 输入2会展示我们输入的src,输入3有个system 输入4会将src拷贝到dest里面,注意到strcpy没有限制,而dest离ebp为0x48,而src最多可以输入128. 阅读全文
posted @ 2025-01-16 01:37 fdddddd 阅读(65) 评论(0) 推荐(0)
摘要: 打开ida 记得绕过加密,因为它会改变s里面的值 exp from pwn import * from LibcSearcher import * context(os='linux', arch='amd64') context.log_level='debug' io=remote('node5 阅读全文
posted @ 2025-01-16 00:10 fdddddd 阅读(38) 评论(0) 推荐(0)