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


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

面试题 相关文章推荐
static关键字的用法
Oct 07 面试题
实现向右循环移位
Jul 31 面试题
介绍一下游标
Jan 10 面试题
写一个在SQL Server创建表的SQL语句
Mar 10 面试题
写出SQL四条最基本的数据操作语句(DML)
Dec 12 面试题
十一个高级MySql面试题
Oct 06 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
Feb 17 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
Nov 18 面试题
Java中各种基本数据类型的默认值都是什么
Dec 22 面试题
灵泰克Java笔试题
Jan 09 面试题
Unix控制后台进程都有哪些进程
Sep 22 面试题
Servlet的生命周期
Aug 25 面试题
SQL注入攻击的种类有哪些
Dec 30 #面试题
渗透攻击的测试步骤
Jun 07 #面试题
介绍一下木马病毒的种类
Jul 26 #面试题
什么叫做SQL注入,如何防止
Oct 04 #面试题
如何查找网页漏洞
Jun 22 #面试题
动态密码技术
Oct 18 #面试题
一些网络技术方面的面试题
May 01 #面试题
You might like
php多文件上传下载示例分享
2014/02/20 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
javascript基础知识
2016/06/07 Javascript
js常用DOM方法详解
2017/02/04 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python  连接字符串(join %)
2008/09/06 Python
python tornado微信开发入门代码
2018/08/24 Python
python实现三次样条插值
2018/12/17 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
String是最基本的数据类型吗?
2013/06/13 面试题
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
白血病募捐倡议书
2014/05/14 职场文书
五水共治一句话承诺
2014/05/30 职场文书
工地宣传标语
2014/06/18 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
关于颐和园的导游词
2015/01/30 职场文书
应届生简历自我评价
2015/03/11 职场文书
医院病假条范文
2015/08/17 职场文书
团支部书记竞选稿
2015/11/21 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL