ad_m1n
这个作者很懒,什么都没留下…
展开
-
pwn-格式化字符串漏洞
部分基础知识来自于CTF-wiki。原理介绍 - CTF Wiki (ctf-wiki.org)常见的有格式化字符串函数有输入 scanf 输出函数 基本介绍 printf 输出到 stdout fprintf 输出到指定 FILE 流 vprintf 根据参数列表格式化输出到 stdout vfprintf 根据参数列表格式化输出到指定 FILE 流 sprintf 输出到字符串 snprintf 输出指定字节数..原创 2021-10-09 21:37:54 · 357 阅读 · 0 评论 -
pwn-Format String之hijack GOT
题目来源:ctf-wiki的hijack GOT。例子 - CTF Wiki (ctf-wiki.org)CTF上的wp有点简洁,复现的时候遇到很多小问题,在这里记录一下。①、checksec和IDA程序的主干代码:没必要一次性看完,下面我们一点一点分析//mainint __cdecl __noreturn main(int argc, const char **argv, const char **envp){ signed int v3; // eax cha..原创 2021-10-07 00:17:35 · 343 阅读 · 0 评论 -
pwn-64和32位ROP以及system与execve的差别
①:ROP位数差别这篇文章讲的很细:(1条消息) [CTF pwn]傻傻分不清的execve、int80、syscall、system及shellcode_漫小牛的博客-CSDN博客核心区别就是:对于32位和64位,要遵循各自的调用约定,32位时摆在栈空间,64位时放在rdi寄存器。②:system与execve参见这篇详细的讲解文章:(1条消息) [CTF pwn]傻傻分不清的execve、int80、syscall、system及shellcode_漫小牛的博客...原创 2021-10-05 18:57:03 · 1378 阅读 · 0 评论 -
pwn-ret2libc基础
题源:基本 ROP - CTF Wiki (ctf-wiki.org)ret2libc的例三这题的特点是:没有system,没有bin/sh。但是有puts,和gets函数。碰到gets函数基本上又是栈溢出大类中的题目。①先检查保护②:计算system和bin/sh的实际地址。核心公式就是:函数真实地址=基地址+偏移量那么我们如何得到 system 函数的地址呢?这里就主要利用了两个知识点①system 函数属于 libc,而 libc.so 动态链接...原创 2021-10-04 18:16:19 · 841 阅读 · 0 评论 -
透过一道基础pwn栈溢出感受函数执行时候的栈的变化。
题源:基本 ROP - CTF Wiki (ctf-wiki.org) 的ret2libc的例一。这道题很简单,bin/sh和system的地址都给了,只需要控制程序执行流返回到相应的地址即可。但是我在编写payload的时候遇到了点小疑问。 为什么栈上system的地址和他的参数bin/sh的地址之间要隔着四个字节呢?bin_sh_addr = 0x08048721system_addr = 0x08048303payload = b'a' * 112 + p32(bin_sh_...原创 2021-10-04 11:31:13 · 190 阅读 · 0 评论 -
pwn基础ROP-碎片组合
题源:基本 ROP - CTF Wiki (ctf-wiki.org)的ret2syscall①:老套路,先检查。没有RXW可执行段。而且NX保护打开了。②:拉到IDA反汇编。没有system,也没有可直接利用的后门函数,但是有bin/sh。什么也没有。而且段都是不可执行段,也不能直接写入整个shellcode段。但是还有gets函数,天无绝人之路,又是栈溢出的类型。看来得自己拿碎片构造rop了(得存在所有的碎片才行)。(这个过程起始就类似于堆积木:积木碎片在房...原创 2021-10-03 21:53:19 · 325 阅读 · 0 评论 -
pwn的最基本的ret2shellcode原理
题源:ctf-wiki的基础ROP的ret2shellcode基本 ROP - CTF Wiki (ctf-wiki.org)①:先checksec检查可以看出基本上没什么保护开启,而且含有RWX段(这个段的意思就是可读可写可执行),很明显是一个shellcode的题目。②:先反编译看看有gets函数,绝对考溢出。而且没有system函数和bin/sh,也没有后门函数可以直接使用。再结合他有RWX段就可以很明显的判断这是一个ret2shellcode的题目。...原创 2021-10-03 20:31:56 · 948 阅读 · 3 评论 -
2.pwn-分析外部函数的调用过程分析。(plt和got)
一、使用的工具:gdb和pwngdb。先下载gdb,在下载pwngdb二、基础知识.gotGOT(Global Offset Table)全局偏移表。这是「链接器」为「外部符号」填充的实际偏移表。.pltPLT(Procedure Linkage Table)程序链接表。它有两个功能,要么在 .got.plt 节中拿到地址,并跳转。要么当 .got.plt 没有所需地址的时,触发「链接器」去找到所需地址三、编写测试程序。我们以一个c语言调用外部的puts函数的程序为..原创 2021-09-27 16:06:56 · 334 阅读 · 0 评论 -
1.pwn基础总结
Int_overflow# Int_overflowcontext(log_level='debug', os='Linux', arch='amd64')p = remote("pwn.blackbird.wang", 9501)payload = "2147483648"p.sendlineafter("Input an int ( <0 )\n", payload)p.interactive()ret2textfrom pwn import *conte.原创 2021-10-03 14:42:24 · 10539 阅读 · 1 评论 -
3.nc在PWN中的使用
一、NC的基本知识。NC:的使用:nc的全名是netcat,其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6。因此,它可以用来网络调试、端口扫描等等。网络调试——测试端口号能否连接 :nc -zv 主机的ip或域名 端口号-z告诉netcat,用户不想发送数据给主机,nc不用等待用户输入。-v告诉netcat输出详细的交互过程。题目:打开kali的命令行:输入上面那一串指令。然后他会换行:不是卡住,而是在等待我们输入进一步的指令。...原创 2021-09-15 20:57:23 · 3862 阅读 · 0 评论