一探究竟Linux系统下打应用补丁 – 作者:凯信特安全团队

“大家在工作当中,发现通过软件还是硬件检测到系统漏洞和应用漏洞,前方一大波漏洞袭来,那发现这些漏洞该如何处理,答案:最好的就是打官方补丁包,因为官方会弥补在开发过程中解决的系统bug或者应用软件bug,那如何打补丁包呢?On my way, Movingout!。”

 

0x01:开始生成测试数据

#cat >>example_01 <<EOF

/*模拟写入测试数据example_01*/

$A1A1A1A1

$A1A1A1A1

$A1A1A1A1

$EOF

图片.png

#cat example_01

/*查看被写入的测试数据example_01*/

$A1A1A1A1

$A1A1A1A1

$A1A1A1A1

$EOF

图片.png

#cat >>example_02<<EOF

/*模拟写入测试数据example_02*/

$A2A2A2A2

$A1A1A1A1

$A2A2A2A2

$A1A1A1A1

$EOF

图片.png

#more example_02

 /*查看被写入的测试数据example_02*/

$A2A2A2A2

$A1A1A1A1

$A2A2A2A2

$A1A1A1A1

$EOF

图片.png

0x02:比较两个文件的不同之处,然后生成补丁包。

diff[选项] 从新文件到旧文件,比对两个文件的不同,然后重新生成一个补丁包。有对比,才有发现不同之处。

-r:递归

-N:确保补丁文件将正确地处理已经创建或删除文件的情况

-u:选项以统一格式创建补丁文件

#diff –uN example_01example_02 > example1.patch

/*单个文件使用diff创建补丁example1.patch*/

图片.png

#diff–Nu example_01 example02 > example2.patch

/*单个文件使用参数-N&u创建补丁example2.patch*/

图片.png

#more example1.patch

/*查看测试用例example1补丁包

*+++号代表新文件––号代表旧文件

*+号表示这一行加上的数据–号代表这一行删除的数据

*第一个@@代表开始最后一个@@代表结束

*/

图片.png

0x03:打补丁包选项和参数

patch[选项] [源文件] [补丁包文件]

–p0:选项从当前目录查找目的文件夹

-p1:选项忽略第一层目录,从当前目录开始查找

-E:选项说明如果发现了空文件,那么就删除它

-R:选项说明在补丁文件中的“新”文件和”旧”文件现在要调换过来了

#patch –p0 < example1.patch

/*当前目录下打补丁example1.patch*/

图片.png#patch –p0 < example1.patch

/*再次在当前目录打补丁包example1,输入”y”,然后会生成源数据包。*/

图片.png#cat example_01.orig

/*查看源数据包example_01内容*/

图片.png

#patch –p0 < example1.patch

/*再次在当前目录打补丁包example1,输入两次”n”,生成源数据包。*/

图片.png

#cat example_01.rej

/*查看旧数据包example_01.rej*/

图片.png

#patch –RE –p0 < test1.patch

/*去除补丁,恢复旧版本*/

图片.png

#cat example_01

/*查看源数据*/

图片.png“总言而之,不同的操作系统,打补丁的方式不一样,取决于你的操作系统,因为不同的操作系统的安装包管理机制不一样,所以打补丁的方式方法也不一样,补丁打完之后,要不断测试系统的健壮性还有安全性,打补丁之前一定要备份好数据,做好系统快照和重要数据备份,养成良好的操作习惯,学以致用。”

来源:freebuf.com 2019-03-27 13:17:15 by: 凯信特安全团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论