CSK.Blog--个人原创Weblog

用令牌信息来验证Flash提交信息的合法性

(详情请点击文章标题) 今天GRE学好回来的比较早,那就说一下昨天提到的问题: 搞过动态网页脚本比如ASP的朋友都知道,有一个HTTP_REFER的系统变量可以获得本次请求是又那个页面提交的。换句话说,可以用这个东西来知道用户是通过那个页面或其他网站上页面的连入本网站的。 ..... 那Flash和HTTP_REFER有什么关系呢?这里就不是单纯的盗链问题。我认为一般下面几种情况是需要判断HTTP_REFER的。 比如我在网站上写了一个Flash游戏,游戏结束后允许玩家上传自己的姓名和得分。这就会出现安全问题: 做过Flash交互的人都知道,Flash和后台网页脚本的交互手段目前一般是用MovieClip.LoadVarible();和XML.sendAndLoad()方法。这没什么问题,但服务器是不会判断提交数据的真实性的,只要我协议和语法格式一致,任何人在任何地方都能提交一个伪造的“得分”到服务器。而如果那个游戏时对高分进行奖励的,那损失可不小。 那么是不是也能用HTTP_REFER来解决呢?理论上似乎可以,但试过人会发现,那该死的FlashPlayer是不会发送Refer数据的(可能为了安全性)。这样HTTP_REFER就完全失效了。 ...... 但现在Flash完全是透明的东西。外面各种反编译软件可以很轻松的把swf高保真的还原到fla格式。这个密码也自然形同虚设……而且上面的登陆办法也有问题:如果玩家本人提交伪造数据呢? ..... 呵呵,想起来了吗?Flash8开始有了个新特性,可以利用ExternalInterface类随意访问外部JavaScript函数,也可以从外部JavaScript调用Flash中的用户函数。 ..... 首先调用外面的GetToken函数,然后GetToken调用了flash中注册的OnGetToken,并把Token作为参数传递回来。

利用动态修改API函数创建“同名”文件及其利用

作者该文章保留对文章的版权,转载时请注明出处。 文章中需要WinFileKiller工具,你可以在我的blog:blog.csksoft.net找到说明文章和下载地址 工具下载地址:[url]http://www.csksoft.net/blog/post/11.html[/url] 不要被标题那拗口的文字弄晕了,不过用这种办法可以做很多事情哦~~ 首先要从和一个朋友的对话说起:他曾经在用FlashGet下载文件时候突然发些在桌面上产生了类似于这样的两个文件 download.rar download.rar. 注意第二个文件名后面有一个点"."。我一开始也没觉得有什么大不了的,但后来他对我说这两个文件中只能删除其中一个,假设删除了"download.rar."。这是奇怪的事情发生了:留下的“download.rar”或自动更名成为“download.rar.”。然后就删不掉了。 我不知道为什么FlashGet会产生这样的文件,但当时我的朋友正苦于想办法删除那两个文件,于是我想到了以前发布过的WinFileKiller,就是那个用来创建con.txt的工具(请参见[url]http://www.csksoft.net/blog/post/11.html[/url]),毕竟那个是通过修改内核进行工作的,可能管用,于是就传给他,用里面的删除功能。果然有效!文件被删掉了。 后来经过我研究,WinFileKiller还可以创建这样的文件:即文件名以"."作为结尾。同样这样的文件是用正常办法无法删除的。 不过如果问题就仅仅如此简单那也就罢了。下面就来说说这个以"."结尾的文件的一些有趣的问题: 除了上面所说的无法删除和自动更名以外,如果你在创建一个前面文件名字相同,但没有最后的"."的文件,比如: file.txt file.txt. 你会发现它们2者均能正常访问,如果用记事本修改其中一个的数据,那个打开另外一个文件时,会发现显示出来的数据是相同的! 当然还有更有趣的现象,那就是能创建出“同名”的文件(对于这个的解释后面会详细说明) 这是在windows explorer里面显示的情况: 上面的图绝对不是我处理出来的哦。其实只要在explorer里面把test1.txt.改名为test1.txt即可。但我是给重名文件加上引号的,因为这种重名现象很不稳定,你只要刷新下explorer显示就会回到前面的状态了。 但我不是要重点说这个的,现在就来分析下产生这些现象的原因吧。 首先在explorer中是无法直接创建以"."结尾的文件的:比如我要创建"file.txt.",如果起先没有"file.txt"这个文件,那么当你在创建文件输入文件名"file.txt."以后,系统会自动为你改名,你实际就创建了"file.txt"。对于原先存在"file.txt"的情况,当你要创建"file.txt."以后,系统就会提示你有同名文件存在。 可以说是系统把最后面的"."给略去了,这样正好能解释上面的现象。那为什么要略去呢?我们来研究下文件系统吧。 一般文件名分为标题名和扩展名两部分,这大部分人是知道的,比如上面的file.txt。他的标题名是file,扩展名是txt。这没问题,那么请问中间的"."属于什么呢?可能只能算是分割符吧。 但实际上文件系统中文件名是不保存分割符"."的,所以上面的file.txt在磁盘上其实就记录成下面的形式 file txt。其中空格可能是用一个0字节来将2部分分割开来了(当然本文不是要论述文件系统的,具体解释请参考资料)。 所以上面的“file.txt”,实际上那个"."是不记录在文件系统里面的,只是在显示的时候由文件系统负责加上去了而已。 知道了这点那么我们就来研究“file.txt.”这样的文件: 按照规定,扩展名部分是文件末端到由右向左出现的第一个"."位置的部分,如果没有出现".",则表示没有扩展名。 于是得出的结论是上面这个“file.txt.”是没有扩展名的。按照上面的说法,文件系统中他的记录形式可以是: file.txt<分割字节><空字符串> 也就是说最后面的"."是被去掉也是无所谓的。但他和“file.txt”实际上不是同名的文件。 但是我们知道除了文件系统内部,一般程序都是用以“.”作为分割符的文件名的,对于普通程序,由于略去了最后的“.”,“file.txt.”和“file.txt”在字符串形式上就成了同名文件。 如果你打开了“file.txt.”,由于略去了最后的".",实际上最后访问了“file.txt”。这就是为什么修改了其中的一个文件,另外一个文件就会跟着改变的原因。 而对于文件的删除,由于2个文件的等效性,无论删除哪一个,实际上都是“file.txt”被删除。所以总会留下那个“file.txt.”,因此就会感觉是自动被改名了。 同样,如果再想删除留下的那个“file.txt.”,因为实际要删除的是“file.txt”,但这个文件已不存在了,所以系统当然就会报错,那也就无法删除了。 这样一来,上面的问题就解释好了,不过为什么系统会显示file.txt.而不把"."在显示中略去的原因我还没有弄清楚。 这里顺便说一下以前看到的建立带有"\"文件夹的办法,大家还记得创建的方法吗? md c:\aa..\ 为什么在文件夹后面要带上“.”。同时建立的文件夹也和我这里说的带有点的文件具有相同的性质!后来经过我反汇编CreateDirectoryW API发现,其中调用完RtlDosPathNameToNtPathName_U以后,没有对文件名正确性进行检查。这和我的WinFileKiller修改的目的一致:绕过了正确性检查。 而我尝试用WinFileKiller建立如下文件“file..\”。但失败了,“\”在RtlDosPathNameToNtPathName_U调用完毕以后就被略去了,在CreateDirectoryW 中也是如此(这是说的是WinNT内核下面的情况) 所以我猜测其实md c:\aa..\是建立了以“.”作为结尾的文件夹而不是先前认为的带有“\”。 呵呵,扯远了。 下面就来说说利用的问题。 接着上面说的“file.txt.”和“file.txt”。因为按照常规的操作,实际上都只是“file.txt.”这个文件被访问,所以“file.txt.”可以被认为是“中立”了。 但是如果我们想办法把数据写入到其中,在需要时在通过特殊手段读取出来不是很好玩吗? 比如我把很重要的数据注入“file.txt.”,又附上“file.txt”里面存着无关的数据。这样可以很好的保护自己的信息,别人即使打开“file.txt.”,那也是在看“file.txt”得文件,而要删除“file.txt.”,那也是删除了“file.txt”,呵呵,很有趣不是? 如果有种病毒能利用这个原理复制自己的话,那我想目前所有的杀毒软件都会失效^_^ 对于这种文件的制作和数据植入我已经在WinFileKiller里面实现了,具体办法可以看[url]http://www.csksoft.net/blog/post/11.html[/url]。对于写入数据其实就是用同样办法修改MoveFile API。 说下简单的文件注入: 启动了WinFileKiller以后,选择2:"copy a File".此时按照提示,现输入要注入数据的源文件路径,然后输入带有"."结尾的文件路径即可。 其实这只是利用了文件系统的一些运作机制而已,并无高深技术。 本文适用于windowsXP和win2k,理论上支持winNT内核系统。测试环境winxp sp2_RTM

Win32编程经验

呵呵,其实也不是什么原创的东西。只是拿出来和大家分享^_^ 第一回 1.如何减小程序尺寸 有没有发现如下短短的代码用VC编译出来的Release版也要46kb呢? 而如果你用MASM写换等效的汇编只有2kb左右。虽然我们可以用AsPack或者UPX加壳,但如果本来程序就能控制的很小岂不更好? 2.如何删除程序本身和正在运行的程序 其实不算删除,只是移位。但对付病毒和流氓软件足矣! 3.如何变出在一行上显示比如"正在计算:80%完成"的console?

[下载]你会创建c:\con.txt吗?windows文件系统漏洞

呵呵,正常来说带有con、prn、com1这样字眼的文件或目录是不能创建的(原因自己找),但我想到了以前在安全焦点的一篇文章,是教你创建带"\"的文件夹的。当时的方法是用控制台命令(如果你叫dos命令那是不标准的)mkdir csk..\这样的语法创建的。看来这是windows一个文件系统的漏洞了,没错…… 我后来就在想其中的原理,可能你会发现像上面的csk..\在创建后是csk.,而他实际被windows解释为访问mkdir csk.\的目录。看来有字符在创建时被略去了。而一次偶然机会我发现mkdir C:\con\是成功的,在c下面出现了c:\con文件夹,而且删不掉……呵呵,有一个bug…… ... ... 点击下载:ftp://FTP_visitor:visitor@ftp.csksoft.net/Public/Products/Crack/WinFileKiller.rar

连载:《windows亲手灭毒宝典》

前沿:作为对曾经我提过的要写些教程的兑现,这里先把我在交大计算机协会作的讲座《windows亲手灭毒宝典》放上来。当然其中的内容将比我实际讲的要多,且要难。 由于第一次写教程,加上自己水平有限,文中出现的问题希望各位及时指正,谢谢! 文章由陈士凯原创,转载请保留原作者和引用作者的版权信息。 CSKSOFT版权所有 --------------------------------------------------------------------------------- 第一回:计算机病毒的“创世纪” .....

Stereogram的原理与制作(略文)

完整文章在[url]http://www.csksoft.net/article/AutoStereogram/readme.html[/url],同时已经附在Demo目录中了 -------------------------------------------------------------------------------- 目录: 1.立体图的原理解释 a.人的肉眼是如何感知物体远近的? b.立体图如何利用人肉眼的远近感知 c.生成...
分页:[«][1][2]3[»]

日历

<< 2015-6 >>

Sun

Mon

Tue

Wed

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Copyright Shikai Chen 2000-2012. Powered By Z-Blog(CSK Modified)