先贴一下原文:http://www.john-jean.com/blog/securite-informatique/ipb-invision-power-board-all-versions-1-x-2-x-3-x-admin-account-takeover-leading-to-code-execution-742

这是个好漏洞,倒不是IPB现在使用的有多么广(虽然还在我那个年代是用的挺广的,sigh,好老)

只是这个漏洞主要利用的亮点其实不在于IPB,而是在于对MySQL特性的了解上:

1、在INSERT的时候,如果你插入的字符超出了MySQL的字段长度,MySQL会自动截断到最大长度然后插入,并不会出错。

2、在SELECT的时候,如果你查询某字段等于'a      ',他的效果和分别查询 'a   '或者是 'a'没有区别。如图所示:

关于IPB刚出的0day漏洞

除了漏洞中利用的几个之外,mysql还有很多类似于类型转换造成的问题,比如大家所周知“0等于一切”的特性。

所以,IPB只是个躺枪的,各位深挖以下,可以挖出更多类似的问题。安全研究者对各类系统的特性研究,很多时候要多于开发者和使用者自身。灵活应用自身优势,眼界会很不一样。

-------------------------------------------------------

更新下,才发现可以算是我们PHP安全研究者统一的偶像Stefan Esser牛,早在08年就根据同样的特性给出了类似的漏洞:

http://www.suspekt.org/2008/08/18/mysql-and-sql-column-truncation-vulnerabilities/

source

吐了个槽:

1#

Sogili (. )( .) | 2013-05-14 10:34

好思路!

2#

only_guest (PKAV-誓与AV抢宅男!) | 2013-05-14 10:53

占楼。还在看

3#

HuGtion | 2013-05-14 11:20

占楼

4#

GaRY | 2013-05-14 11:26

小更新了下

5#

cnrstar (Be My Personal Best!) | 2013-05-14 11:45

看下。厉害

6#

Zvall (▄︻┻═┳一 ?????????) | 2013-05-14 12:29

顶!。以后 要记得 trim一下!!

7#

Zvall (▄︻┻═┳一 ?????????) | 2013-05-14 12:35

哦 不行! trim可以绕过!

8#

鬼哥 | 2013-05-14 12:56

@Zvall 要判断下字符长度+trim

9#

_Evil (年轻人切忌浮躁,性趣是最好的导师.) | 2013-05-14 13:49

@鬼哥 @Zvall  %09怎m办!

10#

axis | 2013-05-14 13:53

@GaRY小哥,你不看《白帽子讲Web安全》么,请参阅7.2.5一节。该技巧当年一出来的时候@猪猪侠 就在blog上分析过了。

11#

GaRY | 2013-05-14 13:59

@axis 惭愧,还是黑哥告诉我的。

12#

落叶纷飞 (im luoye,Once the 00day) | 2013-05-14 14:07

从前就很膜拜我非我牛

13#

horseluke (微碌) | 2013-05-14 14:10

IPB那个洞其实还有一个问题,那就是用str_replace自己改变了email格式后再验证...

改变格式这种事本身就存在风险啊,以前不是就因为类似改变格式再验证,导致出什么截断漏洞么.......

14#

3c0de | 2013-05-14 14:19

HI @axis

《白帽子讲Web安全》    我是看pdf因為台灣買不到

《Web前端黑客技術揭秘》 這本我買了

這2本內容不錯

不過我個人發現有幾個要小小建議的地方這樣

因為有點不易閱讀

書本中的 代碼的排版應該高亮一下

書本中的 都用新細明體 有時還出現標楷體 然後這樣2種字體都不適合印刷

就醬稍微給個建議:)