- 博客(16)
- 收藏
- 关注
原创 【Writeup】CISCN2017_Pwn_babydriver
0x01 环境配置题目所给文件三个boot.sh:启动脚本。多用qemu,保护措施与qemu不同的启动参数有关。bzImage:kernel镜像。rootfs.cpio:文件系统映像。boot.sh内容需要安装qemu,然后执行./boot.sh。启动qemu虚拟机显然本题需要进行内核提权,然后获得flag。查看一下init文件内容in...
2019-09-09 20:23:31
2160
3
原创 【Writeup】BUUCTF_Pwn_[OGeek2019]babyrop
0x01 解题思路文件基本信息IDA查看 读取一个随机数,然后与用户输入作比较,需要绕过。strlen遇到**\x00会停止,因此只要开头为\x00,最终比较的长度v1就是0,从而绕过strncmp。 这里read的第三个读取长度参数实际上是前一个函数的返回值,可以通过上一次输入覆盖为\xff**,然后就可以利用栈溢出进行常规ROP了。0x02 EXP#!/usr/...
2019-09-03 13:01:10
2728
6
原创 【Writeup】X-CTF Quals 2016_Pwn_b0verfl0w
0x01 解题思路查看文件信息 没有开NX,可以向栈上写入shellcode。防护措施只开了一个Partial RELRO,这意味着每次栈加载的地址会变化。拖入IDA 32 bits查看main函数里只有一个vuln函数 显然存在栈溢出,但是只能输入50个字节,而填充的padding字段就需要0x20+4=36个字节,再加上EIP,一共40个字节,只有10个字节的shellc...
2019-09-02 21:55:09
641
4
原创 【Writeup】i春秋 Linux Pwn 入门教程_Openctf 2016-apprentice_www
0x01 解题思路查看文件基本信息IDA查看mainsetup调用mprotect函数给.bss、.text、.data等段增加了可读可写可执行权限butterflySwag 接收两次用户输入,第一次输入v1为一个地址,第二次输入v2为一个整数。之后会把v2的最低一个字节写入到v1指向的内存单元。这样就可以把shellcode写入到任意的可读可执行页。但是由于一...
2019-08-27 21:31:07
409
原创 【Tips】使用gdb调试pwntools编写的脚本
在脚本开头处添加context.log_level = 'debug' #便于查看payload的发送情况在调试点如payload发送之前添加gdb.attach(io, 'b *0xXXXXXXXX') #启动gdb并在0xXXXXXXXX处下断点pause() #触发调试中断,在原窗口中按任意键继续,然后在gdb中按c即可停在断点处gdb中比较有用的命令c...
2019-08-21 21:32:21
2125
原创 【Tips】V8引擎的调试
在gdb中使用v8自带的调试命令首先在/path/to/v8/tools目录下找到一个gdbinit文件,把名字改为gdbinit_v8,然后执行以下命令:cp gdbinit_v8 ~/.gdbinit_v8gedit ~/.gdbinit#-----添加以下内容---------#source ~/.gdbinit_v8#------------------------#接...
2019-08-21 21:22:44
2398
1
原创 【Writeup】i春秋 Linux Pwn 入门教程_CSAW Quals CTF 2017-pilot
Linux pwn入门教程(2)——shellcode的使用,原理与变形0x01 解题思路查看文件信息并试运行没有开保护,显示有RWX段。shellcode必须在具有R和X属性的内存空间上才能执行;执行时输出了一个地址0x7ffd426b9ca0;有用户输入点。拖入IDA 64bits,F5查看main如图所示,红框处分别为输出地址和读取用户输...
2019-08-21 21:00:53
729
原创 【Writeup】i春秋 Linux Pwn 入门教程_EasyCTF 2017-doubly_dangerous
Linux pwn入门教程(1)——栈溢出基础0x01 解题思路查看文件信息并试运行 开启了NX,栈上无法执行代码。拖入IDA 32bits,F5查看 main显然存在栈溢出漏洞,目前存在两种思路:覆盖RIP为give_flag地址,执行give_flag函数覆盖v5的值为11.28125,使其通过判断执行give_flag函数通过尝试发现,按...
2019-08-20 22:47:11
845
原创 【Writeup】BUUCTF_Web_高明的黑客
0x01 解题思路 这题下载源码一看似乎有很多一句话木马,但是大多数根本没法执行命令,而且文件和参数都比较多,所以比较普遍的做法是本地搭个环境(PHP7)尝试所有的GET和POST参数。CTF Writeups给的wp:https://www.ctfwp.com/articals/2019qiangwang.html#%E9%AB%98%E6%98%8E%E7%9A%84%E9%BB%91%...
2019-08-19 22:49:26
1219
原创 【Writeup】starCTF2019_Browser_OOB
本题提供了v8的commit版本号以及一个浏览器程序包,内含一个diff文件,关于如何配置v8环境已经在如下文章中记录:【环境配置】如何编译V8引擎并添加diff补丁0x01 解题思路 首先可以利用array.oob()方法进行数组对象MAP类型的读取,利用array.oob([map])进行数组对象MAP类型的修改。由此可以利用一个float类型数组和一个object类型数组实现两...
2019-08-19 22:10:09
929
原创 【Writeup】i春秋网络安全领域专项技能赛_Reverse_flat
0x01 解题思路尝试运行一下拖入ida64,F5分析代码逻辑 代码看起来复杂,但是其实很容易分析出来,只要用户输入的字符串通过了5个check函数就会输出"you got it !",从而获取flag,否则输出“what a shame !!!”。 对5个fun_check进行分析,发现前四个只是规定了flag的格式为UUID格式,即flag{xxxxxxxx...
2019-08-17 17:44:38
421
原创 【Writeup】i春秋网络安全领域专项技能赛_Reverse_srcleak
【Writeup】i春秋网络安全领域专项技能赛_Reverse_srcleak 本题给了一个cpp文件,其内容如下:#include<iostream>using namespace std;typedef unsigned int uint;template <bool Flag, class MaybeA, class MaybeB> class I...
2019-08-17 17:19:55
1485
原创 【Writeup】BUUCTF_Pwn_RIP覆盖一下
0x01 解题思路查看文件信息 没什么防护措施的ELF64文件。拖入IDA x64,F5 显然可以通过栈溢出覆盖RIP。发现命令执行函数地址为0x401186利用peda计算输入点距离RIP的偏移值得出偏移量是23。现在就可以写出覆盖RIP执行fun函数的EXP了。0x02 EXPfrom pwn import *io=0...
2019-08-17 16:58:41
3948
6
原创 【Tips】使用gdb-peda进行RIP覆盖点偏移量的计算
【Tips】使用gdb-peda进行RIP覆盖点偏移量的计算首先运行程序./pwn1查看进程PIDps -aux || grep pwn1使用gdb开始调试sudo gdbattach进程($gdb-peda) attach [PID]生成溢出字符串($gdb-peda) pattern create 200长度需要保证可以溢出覆盖至RIP运行至...
2019-08-15 22:11:24
2628
原创 【Writeup】BUUCTF_Web_随便注
【Writeup】BUUCTF_Web_随便注0x01 解题思路打开页面,显然考点是SQL注入:手工测试一下: ?inject=' ?inject=' or 1# ?inject=' or 0#可以进行基于布尔的盲注。注释里有这么一句话:先用sqlmap常规扫描试试:sqlmap identified the following in...
2019-08-14 22:58:07
4559
3
原创 【Writeup】BUUCTF_Web_WarmUp
source.php<?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) { $whitelist = ["source"=>"source.php","hint"=>"...
2019-08-14 22:48:56
579
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人