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


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

面试题 相关文章推荐
String和StringBuffer的区别
Aug 13 面试题
介绍Ibatis的核心类
Nov 18 面试题
Java面试中常遇到的问题,也是需要注意的几点
Aug 30 面试题
介绍一下Java中的Class类
Apr 10 面试题
下面这个程序执行后会有什么错误或者效果
Nov 03 面试题
上海微创软件面试题
Jun 14 面试题
盛大二次面试题
Nov 18 面试题
如何进行Linux分区优化
Sep 13 面试题
恒华伟业笔试面试题
Feb 26 面试题
介绍一下except的用法和作用
Jan 22 面试题
几个MySql的面试题
Apr 22 面试题
高级Java程序员面试题
Jun 23 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
PHP 中的批处理的实现
2007/06/14 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
PHP之数组学习
2011/05/29 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
深入php内核之php in array
2015/11/10 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
2017/06/07 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
python属于软件吗
2020/06/18 Python
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
悬空寺导游词
2015/02/05 职场文书
贪污检举信范文
2015/03/02 职场文书
统计工作个人总结
2015/03/03 职场文书
大学推普周活动总结
2015/05/07 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
PyTorch 如何自动计算梯度
2021/05/23 Python