介绍一下如何利用路径遍历进行攻击及如何防范


Posted in 面试题 onJanuary 19, 2014
如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其它后端文件系统的文件或目录,就会出现路径遍历

String rurl = request.getParameter(“rurl”);
BufferedWriter utput2 = new BufferedWriter(new FileWriter(new File(“/home/chenyz/”+rurl)));

攻击者可以将路径遍历序列放入文件名内,向上回溯,从而访问服务器上的任何文件,路径遍历序列叫“点-点-斜线”(..\)

http://***/go.action?file=..\..\etc\passwd

避开过滤
第一种是过滤文件名参数中是否存在任何路径遍历序列(..\)
如果程序尝试删除(..\)来净化用户输入,可以用
….// ….\/ …./\ ….\\
进行URL编码
点–>%2e 反斜杠–>%2f 正斜杠–>%5c
进行16为Unicode编码
点–>%u002e 反斜杠–>%u2215 正斜杠–>%u2216
进行双倍URL编码
点–>%252e 反斜杠–>%u252f 正斜杠–>%u255c
进行超长UTF-8 Unicode编码
点–>%c0%2e %e0$40%ae %c0ae
反斜杠–>%c0af %e0%80af %c0%af
正斜杠–>%c0%5c %c0%80%5c
预防路径遍历的方法:
1.对用户提交的文件名进行相关解码与规范化
2.程序使用一个硬编码,被允许访问的文件类型列表
3.使用getCanonicalPath方法检查访问的文件是否位于应用程序指定的起始位置

Tags in this post...

面试题 相关文章推荐
面向对象编程OOP的优点
Jan 22 面试题
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
Aug 04 面试题
写出程序把一个链表中的接点顺序倒排
Apr 28 面试题
C和C++经典笔试题附答案解析
Aug 18 面试题
将"引用"作为函数参数有哪些特点
Apr 05 面试题
What is view? why do we have view?
Jun 22 面试题
介绍一下代理模式(Proxy)
Oct 17 面试题
C#面试问题
Jul 29 面试题
类和结构的区别
Aug 15 面试题
linux面试题参考答案(4)
Jan 28 面试题
linux面试相关问题
Apr 28 面试题
如果Session Bean得Remove方法一直都不被调用会怎么样
Jul 14 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
php对接java现实加签验签的实例
2016/11/25 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
js中有关IE版本检测
2012/01/04 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
土地转让协议书
2014/04/15 职场文书
项目建议书范文
2014/05/12 职场文书
销售竞赛活动方案
2014/08/23 职场文书
地球一小时活动总结
2015/02/27 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers
Go gorilla/sessions库安装使用
2022/08/14 Golang