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


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...

面试题 相关文章推荐
AOP的定义以及作用
Sep 08 面试题
怎样声明接口
Sep 19 面试题
将"引用"作为函数参数有哪些特点
Apr 05 面试题
商得四方公司面试题(gid+)
Apr 30 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
Jul 11 面试题
介绍一下Make? 为什么使用make
Dec 08 面试题
当当网软件测试笔试题
Nov 24 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
Oct 17 面试题
怎样自定义一个异常类
Sep 27 面试题
高级Java程序员面试题
Jun 23 面试题
为什么要使用servlet
Jan 17 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
4.与数据库的连接
2006/10/09 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python的keyword模块用法实例分析
2015/06/30 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
python中的字符串内部换行方法
2018/07/19 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
什么是聚集索引和非聚集索引
2012/01/17 面试题
初中毕业生的自我评价
2014/03/03 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书