接下来就是编写exp了: 1frompwnimport*23p = process('./ciscn_s_3')4elf = ELF('./ciscn_s_3')5context.log_level ='debug'67main_addr = elf.symbols['main']8csu_end = 0x040059A9csu_front = 0x040058010ret_addr = 0x004003a911rax_59_ret = 0x04004E212syscall = 0x04005171314#gdb.att...
64位程序,打开ida进行分析,mian主函数调用了vuln函数 这里有两个函数,sys_read和sys_write函数,分别往栈上写0x400的数据,和从栈上读0x30的数据,那么存在栈溢出 我们可以看到有一个gadgets函数 要重点关注mov rax,0fh和mov rax,3bh这两条命令 这两个gadget控制了rax的值,我们可以看看是什么系统调用 0xfh 15 s...
一个子进程 clone 按照指定条件创建子进程execve运行可执行文件... (2)文件控制操作 fcntl文件控制open打开文件read读文件... (3)系统控制 ioctl...空间一般情况下,用户进程是不能访问内核的。它既不能访问内核所在的内存空间,也不能调用内核中的函数。Linux内核中设置了一组用于实现各种系统功能的子程序,用户可以...
BUU ciscn_2019_s_3 最近在做XYCTF,遇到了一道srop的题目,想起来之前这道题还没做,就当做复习srop,就把做了这道题,写完了看了下别人的wp,用srop的方法感觉大部分都是将'/bin/sh'写到栈上,确定其在栈的位置,然后做一次srop来execve,(一个ret2csu的方法我不会,哈哈),我是构造了srop链,把'/bin/sh'写...
ciscn_2019_s_4*** 这是十分经典的栈迁移题目 拿到题目例行检查 32位程序开启了nx保护 进入ida,发现了很明显的system 我们进入main函数查看vul 可以看到溢出的部分不够我们rop所以这道题通过栈迁移去做 首先先通过溢出泄露出ebp的地址然后通过ebp的地址进行偏移...
s = process('./ciscn_2019_es_4') #s = remote('node4.buuoj.cn',25370) libc = ELF('./glibc-all-in-one/libs/2.27-3ubuntu1_amd64/libc-2.27.so') elf = ELF('./ciscn_2019_es_4') def add(index,size,content): s.sendlineafter(b'4.show\n' , b'1') ...
执行call后注意看eip,就是我们call的时候esp在的位置了,就继续执行shellcode了。稍微注意一下32位shellcode写法就行了,这道题好像用shellcraft会太长 exp: frompwnimport*fromLibcSearcherimport*# from ae64 import AE64fromctypesimportcdllfilename='./ciscn_s_9'context.arch='i386'context.log_level='debug...
ciscn_2019_s_9 与 ez_pz_hackover_2016 的解题关键如下:ciscn_2019_s_9: 利用fgets溢出:由于fgets导致的缓冲区溢出,无法直接泄露got地址,因此选择编写shellcode。 汇编指令jump esp:使用汇编指令“jump esp”无条件地将控制权转移至ESP寄存器所指向的内存地址处的代码段。 调整ESP值:由于shell...
vuln函数中有一个memcpy操作,将s的值复制到dest中。由于vuln传入的size是0x400,而dest没有这么大,因此会发生溢出。要进入vuln函数,我们可以利用strcmp会被\x00截断的特点,输入crashme\x00+payload即可。这道题还直接打印了栈地址,因此我们需要确定给出的栈地址和我们的shellcode的偏移。由于在栈上有...
LIMIT 1;");$stmt->bind_param("s",$username);$stmt->execute();$stmt->store_result();$count=$stmt->num_rows;if($count===0){returnfalse;}returntrue;}publicfunctionadd_user($username,$password){if($this->user_exist($username)){returnfalse;}$password=sha1($password."SiAchGHmFx");$...