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


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

面试题 相关文章推荐
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
Aug 15 面试题
将n个数按输入顺序的逆序排列,用函数实现
Nov 14 面试题
使用索引有什么好处
Jul 27 面试题
世界经理人咨询有限公司面试
Sep 23 面试题
Linux常见面试题
Oct 04 面试题
linux面试题参考答案(8)
Aug 11 面试题
JavaScript获取当前url根目录(路径)
Feb 19 面试题
请写出一段Python代码实现删除一个list里面的重复元素
Dec 29 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
May 30 面试题
如何用Java判断一个文件或目录是否存在
Nov 19 面试题
UNIX特点都有哪些
Apr 05 面试题
J2EE是技术还是平台还是框架
Aug 14 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
python中的yield使用方法
2014/02/11 Python
Python实现从url中提取域名的几种方法
2014/09/26 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
python中的for循环
2018/09/28 Python
Python对切片命名的实现方法
2018/10/16 Python
对python调用RPC接口的实例详解
2019/01/03 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
思想汇报格式
2014/01/05 职场文书
审计主管岗位职责
2014/01/31 职场文书
介绍信如何写
2015/01/31 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android