漏洞fix简明教程
漏洞fix简明教程
栈溢出漏洞
直接限制输入大小,非常简单不过多介绍
格式化字符串漏洞
方法一
把printf函数改为puts函数,比较简单。但是puts函数与printf函数还是有一点点区别的,因为puts函数是自动在输出的字符串尾部加入一个回车符,在有些比赛的check脚本中是通过比较两次输入与输出是否全等,就会导致这种patch方法不能过关。
方法二
给printf函数添加参数
首先需要在.eh_frame写入参数%s
然后改变printf参数
改变前
改变后
1 |
|
整数溢出漏洞
UAF漏洞
方法一
跳转到.eh_frame段,布置代码进行指针清空,但是需要.eh_frame可执行权限
修复前
修复后
取下标的操作和原函数保持一致就行
方法二
直接重写free操作
修复前
修复后
1 |
|
这种方法比较万能,但是比较吃字节控制