返回第27章 揪住黑客!  佚名首页

关灯 护眼     字体:

上一章 目录 下一页

退出阅读模式,即可阅读全部内容

罗韜神色变得郑重了些。

打开源文件,把主工程文件导入自己的编译器,一行一行地查看源码。

林青玉轻手轻脚走进寢室,站在罗韜身后。

隨著时间一点点地过去,她的一颗心渐渐下沉。

突然,罗韜身体向前探去,仔仔细细看了片刻,嘴里道:“发现一处问题。”

说话间移动滑鼠,將一行代码標为高亮。

林青玉连忙凑过去看,发现那行代码是——

fprintf(logfile, log_entry);

“这一行,存在格式化字符串漏洞。”

罗韜手指指著屏幕,对著林青玉解说起来。

“对方若是知道这个漏洞,就会发送一条特製的公开消息,其中嵌入大量的格式化符號——比如%x、%n这些格式说明符。

%x可以从栈上读取数据,泄露內存信息。

%n可以向任意內存地址写入任意值。

因为,%n会將当前已输出的字符数写入对应地址。

攻击者利用这些,一步步地推移栈上的指针,最终覆盖函数返回地址,实现远程代码执行。”

林青玉虽然专业教人编程,却从未涉及安全领域,听了一个似懂非懂。

罗韜不想总是解决这类小问题,唯一办法就是教会对方。

所以,他表现出了极强耐心。

“当伺服器程序將攻击者的消息记录到日誌时,日誌函数没有对消息內容做任何过滤,直接將其作为格式字符串传递给fprintf函数。

攻击者通过那些格式化符號推移栈上的指针,最终用一个%n,將当前输出的字符数写入了程序全局偏移表中fprintf函数的入口地址,將其篡改为他预先布置的shellcode的起始地址。

此后伺服器再次调用fprintf时,实际执行的是攻击者的代码,从而以root权限为他开启了一个后门埠。

他通过这个后门修改了程序內存中標识用户权限的变量,使自己获得了最高权限。”

这一次,林青玉彻底听明白了,由衷地说了一声:“感谢解惑!”

然后摆了摆手:“你先处理漏洞,不用管我。”

罗韜点点头,却没有立即修补漏洞,而是先去追查入侵者的来源。

来而不往非礼也!

对方那么狂,必须给他一点教训。

『加入书签,方便阅读』

上一章 目录 下一页