uaf-lab 10 hacknote
1.程序分析
分析程序,发现程序是由几个部分组成:Add note、Delete note、 Print note,另外发现了magic函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycbqU3Az-1628251301262)(https://i.loli.net/2021/07/23/R1mvnwpc4h7sF6f.png)]
下面对4个部分进行分析:
1.Add note
分析这个函数,可以知道notelist是一个结构体,他有两个部分组成,一个部分是put,是一个函数指针;另外一个部分是content,是一个字符串指针。
该部分首先输入要存储的buf长度,然后输入buf内容。最多能够有5个note,每个note的size为8个字节
可以看到这里调用了2次malloc,第一次为note申请内存,第二次为buf申请内存
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NFfHbcqb-1628251301264)(https://i.loli.net/2021/07/23/7k9QOx1G2eHcgXa.png)]
2.Delete note
删除时先输入要删除的note的id即可
这里调用了2个free,但是只是清空了指针,没有将其赋值为null,存在uaf漏洞
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tIbMMO2d-1628251301265)(https://i.loli.net/2021/07/23/XPtfpwF9lIjAvzW.png)]
3.Print note
输入一个id,然后打印对应note的buf内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JkJLdSDZ-1628251301268)(https://i.loli.net/2021/07/23/dLqap53hU1rCOZI.png)]
magic函数,可以直接用来打印flag
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zfKpR3sQ-1628251301270)(https://i.loli.net/2021/07/23/NInbTphQmxfAyir.png)]
2.设计思路
既然存在uaf漏洞,那么可以首先申请两次内存,每次申请的buf为32
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQVCQFxF-1628251301271)(https://i.loli.net/2021/07/23/LjgDo1KGa2QcCPA.png)]
然后先del