用户
 找回密码
 入住 CI 中国社区
搜索
楼主: visvoy
收起左侧

[讨论/交流] 脆弱的CI缓存系统,1天攻陷你的CI网站

    [复制链接]
发表于 2009-3-18 02:15:30 | 显示全部楼层
这些无非就是 module 和 layout 方面的东西,对 CI 进行一些扩展完全可以做到,CI 没有不能扩展的东西。
可以具体问题具体分析。
不过,话说回来,CI 的设计理念就是轻量,CI 核心不可能包括那么多功能,不可能和 ZF 一样面面俱到,CI 的理念就是需要什么扩展什么,由第三方类库来实现。

还有,关于缓存,我认为如果对缓存有更多要求,肯定是要自己实现缓存类库,而不能用 CI 自带的,关于缓存的 PHP 类库简直太多了,都可以集成进来。
发表于 2009-3-26 16:27:44 | 显示全部楼层
本帖最后由 ken.sniper 于 2009-3-26 16:30 编辑

http://codeigniter.org.cn/user_guide/libraries/user_agent.html
也有补救方法,这个是判别浏览器来源,以及是否机器人。没有楼主说的那么恐怖。
刚把手册大概看了一遍,收获不小,准备再熟悉两遍。
发表于 2009-3-27 00:23:28 | 显示全部楼层
那个判断是否机器人。。。好像不怎么管用。。。。
我刚刚用下面这个代码来攻击我自己的测试站
PHP复制代码
 
for($i = 0; $i <5; $i++){
$hAttack = @fopen('www.mydomain.com/xx/xxx/'.$i,'r');
fclose($hAttack);
}
 
复制代码

那个$this->agent->is_robot()的判断是false,而不是true
照样生产一堆缓存文件
发表于 2009-3-27 01:21:29 | 显示全部楼层
这个 is_robot 是判断是不是搜索引擎用的~~ 不是判断是不是攻击者。。。。
-_-

PS: 经过严格检测是可以过滤掉非法请求的,但这会降低效率。比如钩子,我觉得可以做这件事。
 楼主| 发表于 2009-3-27 02:17:47 | 显示全部楼层
有个折中的办法是按需缓存,既扩展URI和OUTPUT类,
扩展URI->segment(n),让其记录controller曾经用过的n的最大值,作为合法的n
扩展OUTPUT->_write_cache(),生成哈希值那里,用合法的n生成缓存哈希

我自用的扩展已经实现,思路很简单的,大家try try吧
发表于 2009-3-27 10:15:03 | 显示全部楼层
楼上的贴一下代码吧
 楼主| 发表于 2009-3-28 03:30:19 | 显示全部楼层
写在扩展框架里面,没分离,等哪天发布新代码再分离吧
发表于 2009-3-29 13:00:25 | 显示全部楼层
需要改进才行呀
发表于 2009-4-1 12:23:59 | 显示全部楼层
http://codeigniter.org.cn/user_guide/libraries/user_agent.html
也有补救方法,这个是判别浏览器来源,以及是否机器人。没有楼主说的那么恐怖。
刚把手册大概看了一遍,收获不小,准备再熟悉两遍。 ...
ken.sniper 发表于 2009-3-26 16:27

根据User-Agent来判断是否机器人是不行的,伪造User-Agent是很容易的
发表于 2009-4-1 15:31:33 | 显示全部楼层

哪个mujiji的在用这个漏洞玩我


这个贴子是3.14发的。我当天就被爆了。
刚刚ftp上去传文件失败才发现的,F**K终于无法避免的跳出

本版积分规则