Submitted by gouki on 2010, November 22, 10:13 PM
我一直想要苹果,但是,家里的财政大权不是我能管的。又想买一个黑苹果吧,但财政大臣那边还是不同意,认为买一个假玩意没意思。
虽然我一直想搞台笔记本,但目前好象还没有准备好,上级领导不批啊,所以看到素包子这篇文章就鸡动了一下。。。
素包子找了一些资料,大多不是介绍的最新的vmware7装最新的macos x,搜到了一个不错的安装介绍,参考着做完全没问题,而且很简单,感谢作者刘洪志和电脑报。5分钟搞定配置过程,接下来就是等待自动安装和重启了。
貌似可以升级到10.6.4,做了个snapshot,更新去了,一共700M左右。
(其中使用darwin.iso启动进行安装的步骤可以省略,可以直接使用OSXPCBETA_ArcticFox.10.6.3.iso启动安装。)
想偷懒并且对版本要求不高的同学可以下premade的vmware镜像,直接使用,大小10G,见BT种子,用迅雷离线下载瞬间完成,满水管下载。
Mac OS X 10.6.2
原文在:http://baoz.net/install-macos-x-snow-leopard-10-6-3-in-vmware-7/
好象主要是那两张图:
Tags: apple, macos, vmware
Linux | 评论:1
| 阅读:20867
Submitted by gouki on 2010, November 16, 8:49 AM
看到这篇文章的时候是在晚上,然后就觉得好郁闷,不过也挺佩服淘宝QA那些人的奇思怪想,看看他们是怎么说的吧。
一、关于文件名
大家都知道在 windows 下面文件名是有规则,定义了一些保留的字符,他们分别是:
< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
而linux下面是没有对这些大部分字符进行限制的,可以随意定义的,那么,我们就可以将 XSS Pyload 存储在文件名中,如图所示:
我们可以看到可以成功将 xss pyload 存储在文件名当中了。
二、利用攻击
很多时候,由于代码的各种环境,让我们的攻击成为可能,查看以下PHP上传文件代码:
PHP代码
- <?php
- if ($_FILES["file"]["error"] > 0)
- {
- echo "Error: " . $_FILES["file"]["error"] . "<br />";
- }
- else
- {
- echo "Upload: " . $_FILES["file"]["name"] . "<br />";
- echo "Type: " . $_FILES["file"]["type"] . "<br />";
- echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
- echo "Stored in: " . $_FILES["file"]["tmp_name"];
- }
- ?>
- <html>
- <body>
- <form action="" method="post" enctype="multipart/form-data">
- <label for="file">Filename:</label>
- <input type="file" name="file" id="file" />
- <br />
- <input type="submit" name="submit" value="Submit" />
- </form>
- </body>
- </html>
当文件上传成功,程序将文件信息进行输出。而此时没有对文件名进行任何处理,那么,如果将我们定义好的特殊字符的文件名进行上传,然后经过程序输出,就可以攻击了,如图所示:
可以看到,我们确实可以攻击成功了!那么,并不是所有的上传地方都存在,要满足以下条件才可以:
1、文件上传后保存前进行了一次原样输出。
2、直接按原文件名进行存储。
3、其他特定环境,看程序逻辑。
4、web server 为 linux。
5、上传攻击机器为 linux。
示例代码:http://code.google.com/p/madal-example-project/source/browse/trunk/controllers/image_uploader.php?r=2
更多的:http://code.google.com/query/#q=$_FILES[%22file%22][%22name%22]
线上攻击测试:http://www.woyigui.cn/fileupload.php
三、防范
1、存储时以随机文件名保存。
2、任意时候对文件名进行处理后输出,可以进行 html 编码后输出。
参考:
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
--EOF——
原文来自:http://qa.taobao.com/?p=10139,虽然这个条件很苛刻,但毕竟还是存在被注入的可能啊,而且这种注入真的很妖。
Tags: linux, xss, php
Linux | 评论:0
| 阅读:18586
Submitted by gouki on 2010, November 5, 10:04 PM
这个功能能,看上去不错,所以我转了一下,但,我目前还没有在自己的服务器上尝试,不过我也在想,如果这样操作了,图片怎么样被外站引用呢?这也是我考虑的原因。。。
原文:
曾经有位朋友自己做了个小网站,刚开始没什么人气,后来不小心把流量搞大了,用户抱怨访问缓慢,就让我帮忙看看哪里可以优化。那时 Steve Souders 老师的 YSlow 14条军规刚刚新鲜出炉,开宗明义第一句便是:网页性能 80% 消耗在前端。于是运用 Firefox+Firebug+YSlow 工具,轻松找到那些大图小用、过期时间太短、JS/CSS位置不正确、没有精简压缩的罪恶之源。前后只花一两周时间就把网站弄快了,好不得意。
今天 Google 发布的 mod_pagespeed for Apache 2,着实令人赞叹。原本需要一两周时间才能完成的前端优化工作,不到半个小时就能搞定,而且不用修改任何程序。现成的二进制安装包,下载来 直接装入系统,自动添加配置,重启 Apache 之后,一切前端问题自动优化。CDN服务商 Cotendo 已在其CDN服务器上部署mod_pagespeed以加速客户网站访问,图片文件大小经自动压缩可减少20%-30%,页面加载时间最多可缩短50%。 Go Daddy 也宣布将在其客户网站服务器上广泛部署mod_pagespeed。
mod_pagespeed 中有很多巧妙的设计,规避了以往必须要动复杂手术才能解决的问题。比如,它可以将图片文件的过期时间自动延长到一年,无论图片是否存在同名更新(即文件名 不变,图片内容随时可能改变,从而无法设置较长的过期时间)。假设网站原来的logo图片引用和HTTP header如下:
XML/HTML代码
- HTML tag : <img src="images/logo.gif" />
- HTTP header: Cache-Control:public, max-age=300
经自动处理后,会变成:
XML/HTML代码
- HTML tag : <img src="images/ce.c17941127d34679357baa1b36fb4ecc5.logo,g" />
- HTTP header: Cache-Control:public, max-age=31536000
mod_pagespeed 把原来的 logo.gif 转化为名称唯一的 ce.c17941127d34679357baa1b36fb4ecc5.logo,g ,并且将原先的过期时间300秒延长到31536000秒(一年)。mod_pagespeed 则仍然以此前定义的 TTL 300 秒为周期,定期检查图片是否更新,一旦图片内容发生改变,文件名也会相应变化,如此就不用管同名更新的问题了。
又如最常见且最难以控制的“大图小用”(80x80的图片框里塞一张1024x768的高清墙纸),mod_pagespeed是这样处理的:
XML/HTML代码
- <img src="images/Puzzle.jpg" width="256" height="192" />
识别 IMG 标记中设置的宽度和高度值,自动缩放为相应大小和质量的图片:
XML/HTML代码
- <img src="images/ic.HASH.256x192xPuzzle,j.jpg" />
还有很多有趣的功能,在
http://www.modpagespeed.com 可以看到实例展示。
mod_pagespeed 显然很适合中小规模网站使用,不用太多费力于前端改造,就能迅速成倍提升客户体验。但对于大规模商业网站来说,我认为还是要慎重,因为它实时过滤处理每一 次请求,存在不小的开销,而且作为beta版软件,即使要采用也得先进行充分测试。当然各种优化手段也可能有副作用,值得一提的 是,mod_pagespeed 的
文档写得不错,条件、限制、风险都很明确,建议详细研究后再作抉择。
--EOF--
好象作者活在墙外,真让人痛苦,转载了他的文章吧,却不能给人家一个地址,所以贴上他的博客地址:http://hutuworm.blogspot.com/
Tags: apache, mod
Linux | 评论:0
| 阅读:18853
Submitted by gouki on 2010, November 4, 3:49 PM
乘着最近在大战,我也贴个UBUNTU下装QQ的方法。只是这个QQ也是被改过的版本。爱用不用喽。。。。经测试,比linux占资源少一点,只是一些QQ附加的功能都可能没有了。。但是,能够聊天已经很不错了。
如果不用虚拟机,你连WEBQQ也用不了,有这样的工具,你还能怎么样?
先装wine,然后用winetricks装上这些常用的(其实前两天我的博客里介绍的wine就已经有介绍这样的了)。
XML/HTML代码
- winetricks msxml3 gdiplus riched20 riched30 vcrun6 vcrun2005sp1
最后我COPY这段文字,请大家可以随便看:
XML/HTML代码
- 第四步:最后建议下载这个由深度出品的qq2009单文件版,主要是兼容性好(下载地址在文章最后给出)。
- 下载解压后把“wineqq2009.exe”放到你的主目录,打开 Shell 来一句:
- sudo chmod +x wineqq2009.exe
- PS:加权限了才准许运行。
- 最后将wineqq2009.exe复制到“.wine/dosdevice/c:/windows/system32/”文件夹里改为qq.exe。
- 当然你也可以下载qq2008,但是由于和Ubuntu的输入法冲突,你只要在密码框打密码qq就会崩溃,当然也有解决办法。
- 1.在一个空白文档里打下密码,然后再粘贴到密码框。
- 2.用软键盘输入密码。
- PS:记得把自动登录选上,下次就没有这么麻烦了^_^。
- 所以,综合考虑,还是选这个qq2009单文件版好多了!
- 第五步:加入WineQQ菜单。
- 1.在”.wine/dosdevice/c:/windows/Program Files/Common Files”文件夹内右键选择新建文件夹Icon.下载QQ图标放到此处。
- 2.右击菜单条,选择编辑菜单(E),新建项目位置如下图:
-
- 3.编辑项目图标就从第1点的位置找到图标,其它内容如下图:
由于文件太大,我不提供下载,请到这里下载单文件版的QQ:http://killmind.com/blog/?post=188,我的文章也是从这里看的。(其实前两天我装wine的时候就尝试过所有版本的QQ了,但都是只能装不能启动。真的很郁闷。所以试了一下这个单文件的QQ),运行后,所有的聊天记录和信息文件存在mydocument目录下。和2009选择存在我的文档下结果是一样的。GOOD LUCK
后记:最后我看了这里:http://blog.chinaunix.net/u/27383/showart_689260.html,虽然它写的是2007版的QQ,但我测试了一下,2010的确实能用。虽然在安装的时候注册组件出了两次错,但确实是启动成功了(输密码的时候,请使用软键盘,否则,光标一移动到密码框就出错了。)
备份:
XML/HTML代码
- 我的安装环境是:RedHat.Enterprise.Linux.AS.V4.0.Update4 + wine-0.9.44.tar.bz2 + 珊瑚虫 2007v5.0b正式版
-
- 第一步,用root用户登陆Linux,挂载WindowsXP系统的C盘分区。
-
- 新建一个文件夹,作为WindowsXP系统C盘的挂载点,我选的是/mnt/WindowsXPc
-
- mkdir /mnt/WindowsXPc
- 创建挂载点
- mount -t ntfs /dev/sda1 /mnt/WindowsXPc
-
- 第二步,切换到普通用户登陆Linux,安装wine,因为用root用户安装wine时会提示错误。
-
- 打开终端,进入wine安装包所在的目录比如我放在了/opt
- cd /opt
-
- 解压wine安装包(我在这无法用命令解压,只好右键“用归档管理器打开”,不知道怎么回事?)
-
- tar xjvf wine-0.9.44.tar.bz2
- 进入解压得到的文件夹中
- cd wine-0.9.44
- 运行wine自带的安装程序
- ./tools/wineinstall
-
- 接下来是极其漫长的等待,盯着编译状态中的终端长达10分钟以后,忍无可忍的我夺门而出 —— 吃晚饭去......安装过程会提示你选择"yes"或"no",全都选"yes",一路回车下去即可。安装的末尾阶段,终端中会提示你输入root用户的登陆密码,这就是安装即将结束的标志。如果一切顺利,安装结束以后会有"Goodlucky..." 的信息提示,这就说明wine已经成功安装到你的Linux上了。
-
- 为了接下来步骤的顺利进行,建议大家注销一下系统,以root用户名登录Linux。
-
- 第三步,因为之前我们已经挂载了WindowXP系统的C盘,这时便将WindowsXP系统 C:\Windows\system32 里的以下文件:mfc42.dll,msvcp60.dll,riched20.dll,riched32.dll 拷贝到Linux系统root用户目录下的 ./wine/drive_c/windows/system32 里,覆盖原有文件。
-
- 第四步,安装QQ。
- 在终端中切换到QQ安装文件所在目录,比如我放在了/opt
- cd /opt
- 以wine的方式运行QQ的安装文件
- wine IPQQ0750b.exe
-
- 接下来,我们便可以看到在Windows下常见的QQ安装窗口了,安装过程跟Windows下完全一样,一步一步“下一步”就行了。在这里我要提醒一点,QQ主程序的安装路径最好选默认值,系统会自动将其存放到Linux虚拟的WindowsXP C盘的相应位置中,这样可防止过后执行过程中出现一些未知的错误。
-
- 第五步,安装结束以后,把QQ安装目录 ./wine/drive_c/Program Files/Tencent/QQ 里的 TIMPlatform.exe 删除掉。
-
- 第六步,为QQ设置一下wine。
- 在终端中输入下面的命令打开wine的配置文件
- winecfg
-
- 在"Applications"标签里添加QQ的主执行程序QQ.exe;在"Windows Version"下拉框中选择"WindowsXP";完成上述两步以后,点击“应用”,然后切换到"Libraries"标签,在"New override for library"下拉框中添加riched20和riched32,最后确定退出。
-
- 第七步,运行QQ。
- 安装QQ时在桌面上创建了快捷方式,但那是.lnk格式文件,Linux下好像无法运行。我自己又重新创建了一个QQ启动器,但是双击没反应;若将启动器修改为“在终端中运行”,双击以后只弹出一个小窗口,而且瞬间就消失了,不知道怎么回事?最后我只能选择在终端中用命令行来打开QQ。
-
- 在终端中切换到QQ主程序安装目录
- cd ./wine/drive_c/Program Files/Tencent/QQ
- wine QQ.exe
- .
- .(一大堆信息,看不懂...)
- .
-
- 这个时候,熟悉的QQ登陆窗口就出现了!接下来的操作就不用我多说了吧,号码,密码,登陆,OK!
Tags: ubuntu, qq, wine
Linux | 评论:1
| 阅读:24065
Submitted by gouki on 2010, November 1, 12:22 PM
在UBUNTU下面想要使用WINDOWS下面的程序,除了用虚拟机,剩下的应该就是wine这种解决方案了。
wine目前支持的东西越来越多,但是,需要给wine安装很多win下面的库才行。于是,php研讨群中的lukin给了我一个常用的库的列表,让我安装:
$winetricks corefonts gdiplus gecko ie6 mdac28 mfc40 mfc42 msxml6 riched20 riched30 richtx32 vcrun6 vcrun2008
于是,兴冲冲的运行了一下,弹出这样的框:
XML/HTML代码
- gouki@gouki-desktop:~$ winetricks gdiplus gecko ie6 mdac28 mfc40 mfc42 msxml6 riched20 riched30 richtx32 vcrun6 vcrun2008
- Executing wget -O WindowsXP-KB975337-x86-ENU.exe -nd -c --read-timeout=300 --retry-connrefused --header Accept-Encoding: gzip,deflate http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe
- WindowsXP-KB975337-x86-ENU.exe: Permission denied
- ------------------------------------------------------
- Note: command 'wget -O WindowsXP-KB975337-x86-ENU.exe -nd -c --read-timeout=300 --retry-connrefused --header Accept-Encoding: gzip,deflate http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe' returned status 1. Aborting.
网上找了一点资料,说法较多,比如winetricks没有权限啦,.wine目录不是当前用户权限啦,所以,我到home目录下执行了
XML/HTML代码
- chown -R gouki:gouki /home/gouki/.wine
- sudo chmod +x /usr/bin/winetricks
更改完后,再次执行,还是上述错误。这回真的是找了很多资料,有一个回复比较靠谱,说是需要更改.winetrickscache权限为当前用户,或者下载最新的winetricks脚本(里面有含对目录权限的判断和更改)
然后,我找了一下我的home目录,却发现我根本没有.winetrickscache目录。因此,立刻
XML/HTML代码
- mkdir /home/gouki/.winetrickscache
然后再次执行下面的程序,终于可以开始安装了。问题自然是就此解决。作个笔记
参考:http://forum.winehq.org/viewtopic.php?t=5174&view=previous&sid=cc8cacaa4cb95e574ef0d6ae9d1706e3
Tags: wine, winetricks, permission
Linux | 评论:2
| 阅读:17887