首页
社区
课程
招聘
[翻译]Format strings, from %x to calc(Windows格式化字符串漏洞利用)
发表于: 2011-4-18 00:37 12829

[翻译]Format strings, from %x to calc(Windows格式化字符串漏洞利用)

2011-4-18 00:37
12829

首先声明一下,这篇文章与泉哥翻译的是不一样的,虽然名字很相同,演示的例子是同一个,但自己在翻译过程中写进了很多心得体会。具体看下面:

老钟古序:
  本来是打算翻译作者的另外一篇文章http://net-ninja.net/blog/?p=71的,但是由于在实战分析过程中遇到了一些问题自己暂时无法解决,等技术掌握更深入一些之后再去想办法解决之后再进行翻译(实在不想让它胎死腹中)。因为没有实战分析过的文章对自己产生的价值会小很多,没有实践过就等于把文章最精华的部分给浪费了,不能够为了翻译而翻译。在翻译的过程中加了很多自己的心得体会。

正文就在附件里面。

学习总结:
      学会了如何进行格式化字符串漏洞的利用,但是能否实现一些操作的自动化和能否绕过DEP的保护机制和利用egg-hunter的技术的利用,这些自己都没有涉及到。这里自己可以提供一个预防格式化字符串漏洞的方法,因为造成格式化漏洞的几个主要函数,在编程的时候编译器一般都会有给我们提示,但它又是如何实现的呢?对此我觉得一种思路也是挺不错的,就是字符串的匹配,但这里需要的是多串匹配的算法,这时候就需要用到Aho-Corasick automation(即简称为AC自动机)。这个在编译器的词法分析中有可能会用到的,具体的思想就是Trie树加上KMP字符串匹配的算法,这里推荐两篇学习文章,我放在附件里面。具体的实现网上应该有很多。其次AC自动机远远不止这个用途,比如可以做一些敏感词的过滤,但基于中文的匹配还是有难度的。如果了解了相应的知识之后,可以把那些容易引起格式化字符串漏洞的函数,比如printf几个函数建立一个Trie树,并将我们编写的源代码作为文本,再在这个Trie树上进行匹配,当然前提是我们在Trie树中已经使用了KMP算法,把AC自动机已经建立起来。其效率是优秀的,一般可以认为O(m),m为文本串的长度。
其实在字符串匹配中还有很多优秀的算法,可以参考《柔性字符串匹配》这本书,里面会给你在实际的使用中哪些是效率最好的。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (2)
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
新手学习了
2017-12-16 15:03
0
雪    币: 870
活跃值: (2264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一天学习一点。
2018-7-19 16:35
0
游客
登录 | 注册 方可回帖
返回
//