2016ZCTFnote3:一种新解法最近在学习unlink做到了这道题,网上有两种做法:一种是利用edit功能读入id时整数溢出使索引为-1,一种是设置块大小为0使得写入时利用整数溢出漏洞可以将数据溢出到下一个块中。我采取了另一种思路:程序在分配id=7块时虽然提示块已满,但没有采取措施,依然分配了一个块,并将块地址放在了存放块0size的位置,使得可以往块0写入足够多的数据溢出到下一个块中。我先分析我的解法,然后再简单叙述一下另外两种解法的原理。程序分析一般步骤查看程序保护措施。该程序有4个功能:NewnoteShownote(假的,只打印一个字符串)EditnoteDeletenoteN
攻防世界repeater题解查看程序保护情况,开启了PIE,没开NX,RELRO全开。在ida64中打开分析程序,这道题程序比较简单。可以发现的信息如下:字符数组s大小为0x20,但可以读入0x40的长度,起始于rbp-30h处(见红框)变量v5可以控制循环、条件控制输出main函数地址,该变量位于rbp-20h字符数组s空间后(见粉框)通过字符串s溢出可控制变量v5的值及函数返回地址程序运行起始可输入数据到内存BSS段(见蓝框)根据这些信息,这道题的思路就出来了:程序起始运行,提示输入name时,输入一段shellcode(将存储到byte_202040处)通过字符串s溢出控制变量v5的值为
2016ZCTFnote3:一种新解法最近在学习unlink做到了这道题,网上有两种做法:一种是利用edit功能读入id时整数溢出使索引为-1,一种是设置块大小为0使得写入时利用整数溢出漏洞可以将数据溢出到下一个块中。我采取了另一种思路:程序在分配id=7块时虽然提示块已满,但没有采取措施,依然分配了一个块,并将块地址放在了存放块0size的位置,使得可以往块0写入足够多的数据溢出到下一个块中。我先分析我的解法,然后再简单叙述一下另外两种解法的原理。程序分析一般步骤查看程序保护措施。该程序有4个功能:NewnoteShownote(假的,只打印一个字符串)EditnoteDeletenoteN
攻防世界repeater题解查看程序保护情况,开启了PIE,没开NX,RELRO全开。在ida64中打开分析程序,这道题程序比较简单。可以发现的信息如下:字符数组s大小为0x20,但可以读入0x40的长度,起始于rbp-30h处(见红框)变量v5可以控制循环、条件控制输出main函数地址,该变量位于rbp-20h字符数组s空间后(见粉框)通过字符串s溢出可控制变量v5的值及函数返回地址程序运行起始可输入数据到内存BSS段(见蓝框)根据这些信息,这道题的思路就出来了:程序起始运行,提示输入name时,输入一段shellcode(将存储到byte_202040处)通过字符串s溢出控制变量v5的值为
TheNameCalculator题解题目链接:TheNameCalculator题解首先看程序开启的保护,有Canary和NX栈不可执行。IDA打开程序,shift+F12查看字符串,发现有"Hereisyourflag:"。点进去通过交叉引用找到该字符串在superSecretFunc()函数中,该函数可以执行"catflag"命令获得flag。使用交叉引用发现该函数没有被任何地方调用,所以这道题就是想办法修改某个执行地址为这个函数地址,从而执行该函数。程序main函数中存在缓冲区溢出,通过溢出buf修改变量v4的值,从而执行secretFunc()函数,这很容易实现。secretFunc
TheNameCalculator题解题目链接:TheNameCalculator题解首先看程序开启的保护,有Canary和NX栈不可执行。IDA打开程序,shift+F12查看字符串,发现有"Hereisyourflag:"。点进去通过交叉引用找到该字符串在superSecretFunc()函数中,该函数可以执行"catflag"命令获得flag。使用交叉引用发现该函数没有被任何地方调用,所以这道题就是想办法修改某个执行地址为这个函数地址,从而执行该函数。程序main函数中存在缓冲区溢出,通过溢出buf修改变量v4的值,从而执行secretFunc()函数,这很容易实现。secretFunc
Vulnhub-DarkHole_2-Writeup靶机地址:DARKHOLE:2Difficulty:Hard目标发现与探索使用arp-scan发现目标IParp-scan-l使用nmap扫描开放端口nmap-sV-p-192.168.164.194打开目标80端口发现没什么东西,查看源代码也没什么,只有一个登录连接我们点进登录页面想到可能是SQL注入,但是尝试之后没有结果。太久没做了,都忘记该怎么做了,然后就去看了一下别人的解题过程,下面才是这个靶机的正确打开方式。.git源码泄露漏洞首先使用nmap-A192.168.164.194进行扫描时,可以发现一个http-git页面这里涉及.g
Vulnhub-DarkHole_2-Writeup靶机地址:DARKHOLE:2Difficulty:Hard目标发现与探索使用arp-scan发现目标IParp-scan-l使用nmap扫描开放端口nmap-sV-p-192.168.164.194打开目标80端口发现没什么东西,查看源代码也没什么,只有一个登录连接我们点进登录页面想到可能是SQL注入,但是尝试之后没有结果。太久没做了,都忘记该怎么做了,然后就去看了一下别人的解题过程,下面才是这个靶机的正确打开方式。.git源码泄露漏洞首先使用nmap-A192.168.164.194进行扫描时,可以发现一个http-git页面这里涉及.g