Java代码审计之文件包含
来源:互联网 发布:苏联歌曲 知乎 编辑:程序博客网 时间:2024/05/21 02:21
事件
今天报一个文件包含,
正常url:http://xx.xx.xx.com/view=f01
payload : http://xx.xx.xx.com/view=../../../../../../../../etc/passwd%00
看了一下,问题代码如下。
private String getFile(String tagId) { String path = getClass().getClassLoader().getResource("txt").getPath(); logger.info(String.format("获取文件的路径:%s", path)); String filePath = path + File.separatorChar + tagId + ".txt"; File file = new File(filePath); String result = null; try { result = FileUtils.readFileToString(file); cache.put(tagId, result); } catch (IOException e) { logger.error(String.format("读取文件异常,tagid=%s", tagId), e); } return result; }
原因
开发者使用用户输入”tagId”来拼接路径,来读取一个txt文件。本来后缀已经限定好,但是攻击者用%00来截断,造成任意文件读取。
修改方案
1.使用白名单,不给用户来拼接路径。
2.在前端来实现加载txt文件。
3.数据库实现
审计
关注FileInputStream,readFileToString,readFileToByteArray
阅读全文
0 0
- Java代码审计之文件包含
- .sqc文件代码审计
- CheckStyle(Java代码审计工具)
- 代码审计:审计思路之实例解说全文通读
- PHP代码审计之路——1.文件、目录、浏览查看相关
- PHP代码审计之命令执行
- PHP代码审计之基础篇
- php代码审计之sql简单过滤
- PHP代码审计实战之XDcms
- PHP代码审计实战之MetInfo CMS
- 代码审计
- PHP安全编程之文件包含的代码注入攻击
- java 文件夹拷贝(文件夹里包含文件和文件夹) 代码
- java 文件夹拷贝(文件夹里包含文件和文件夹) 代码
- java 文件夹拷贝(文件夹里包含文件和文件夹) 代码
- 代码审计之SpringMVC框架的安全攻防问题研究
- 小白的代码审计之路(一)
- PHP代码审计实战之盾灵CMS
- Scala入门到精通——类型参数(一)
- Mybatis自动生成代码
- 【转载】Java位运算总结
- Kotlin学习之-5.2 属性和成员
- java设计模式:五、单例模式
- Java代码审计之文件包含
- 定制自己的Log日志工具—轻松控制log打印
- JAVA-设计模式之简单工厂模式
- Hibernate学习目录
- I2C设备应用层读写
- [Unity&]缺少引用空间MouseLook 的解决办法
- css的counter-increment和counter-reset
- ios之UIButton的titleEdgeInsets和imageEdgeInsets属性
- 数据库压缩技术探索