|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
四 重定向和文件
另外一类平安成绩是围饶在web使用里重定向和文件的利用。
4.1重定向
web使用里的重定向是一个被低估的craker工具:它不但可让用户失落进一个陷进网站,并且还能够制造一个完整的打击。
当用户被同意由一个URL重定向的时分,它由大概就是个毛病。最分明的打击是将用户重定向到一个和原始页面千篇一律的假页面。这个所谓的‘垂纶打击’经由过程给用户发送一封包括一般的不让人起疑的链接的email,经由过程XSS体例往web使用里打针这个歹意链接大概把链接放到一个子虚的网站(域名看起来差未几,页面也不异的站点)。它是绝不让人嫌疑的,由于这个链接的肇端URL是这个一般的web使用,指向歹意站点的URL都被埋没在重定向参数里:http://www.ckuyun.com/site/redirect?to=www.attacker.com. 这里由个例子:
deflegacy
redirect_to(params.update(:action=>main))
end
假如用户会见legacy这个action,将会被重定向到mailaction。如许做的企图是为了保护legacy的参数,并把这些参数传到mainaction。可是,假如它包括了一个hostkey,就会被打击者使用。
http://www.ckuyun.com/site/legacy?param1=xy¶m2=23&host=www.attacker.com
假如它在url的尾部,将很难被注重到,用户就被神不知鬼不觉的重定向到了打击者的页面。一个复杂的对策是,在legacyaction里只包含预期的参数(白名单的举措,不是作废一切意向不到的参数)。假如你重定向到一个网址,你必要用白名单或是正则表达式反省它。
4.1.1 Self-containedXSS(自载的xss打击)
另外一个重定向和self-containedXSS打击是经由过程firefox和opera里利用的一种数据协定。该协定间接在扫瞄器里显现其内容,可使任何内容,从html,javascript到图片。(这不是一个毛病,而是一个功效)
data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K
这个例子是一个Base64编码的显现复杂动静框的javascript。在一个重定向的URL里,一个打击者能用它内里的歹意代码重定向这个url。
更具体的打击道理能够参看这里:http://www.gnucitizen.org/blog/self-contained-xss-attacks/
对策:donotallowtheusertosupply(partsof)theURLtoberedirectedto.(说假话,这里我没看分明)
4.2文件上传
-确保文件前次不掩盖主要的文件,和同步的媒体文件历程。
良多web使用同意用户上传文件,用户能够选择的文件名字,应当随时被过滤,由于打击者能够用歹意的文件名掩盖服务器上恣意文件。如果你在/var/www/uploads存储上传文件,用户输出一个文件名:../../../etc/passwd,它大概掩盖一个主要文件。
当过滤用户输出的文件名时,不要试图往删除歹意的部分。想想,假如往失落一切的../,打击者输出....//,那末了局就成了../。最好是用白名单的体例,用一套可承受的字符往反省文件名的无效性。一旦它不是一个无效的文件名,则回绝它(或交换它),可是不删除它们。这有一份来自attachment_fu插件的文件名清单:- defsanitize_filename(filename)returningfilename.stripdo|name|#NOTE:File.basenamedoesntwork
- rightwithWindowspathsonUnix#getonlythefilename,notthewholepathname.gsub!/^.*(|/)/,
- #Finally,replaceallnonalphanumeric,underscore#orperiodswithunderscore
- name.gsub!/[^w.-]/,_endend
复制代码 <p>
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架? |
|