
Java 审计之SSRF篇(续)
发布日期:2021-05-09 05:32:20
浏览次数:11
分类:博客文章
本文共 2153 字,大约阅读时间需要 7 分钟。
Java 审计之SSRF篇(续)
0x00 前言
先来说说为啥会有该篇章,在刚刚码完上篇文章后,后来又去找了找在Java中的一些远程请求的类。果然翻到了一些有意思的东西,在这里就拿出来给大家分享一下。
0x01 imageIO中的SSRF
imageIO类是jdk中自带的一个类,主要用于操作一些图片文件。比如读写、压缩图片。
ssrf 类:
public class ssrf { public static BufferedImage read(URL url) throws IOException { if (url == null) { System.out.println("输入内容为空"); } InputStream istream = url.openStream(); ImageInputStream stream = ImageIO.createImageInputStream(istream); //获取文件流 BufferedImage bi = ImageIO.read(stream); //返回 BufferedImage作为供给的解码结果 return bi; }}
servlet:
@WebServlet("/httpclientServlet")public class httpclientServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String geturl = request.getParameter("url"); ServletOutputStream outputStream = response.getOutputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream(); URL url = new URL(geturl); BufferedImage image = ssrf.read(url); ImageIO.write(image, "png", os); InputStream input = new ByteArrayInputStream(os.toByteArray()); int len; byte[] bytes = new byte[1024]; while ((len = input.read(bytes)) > 0) { outputStream.write(bytes, 0, len); } }}
写完后来测试一下,先来测试一下传入一个图片的url试试。
成功输出出来了。证明远程请求图片的功能是没问题的。
再来读取一下本地文件试试
发现报错了 貌似读取不了除了图片以外的文件。
再来尝试一下读取本地的图片试试
读取成功,看来只能读取图片。
但这里发现一个东西,就是文件虽然不能读取,但是可以看到该文件存不存在。
如果文件不存在的话会显示找不到指定文件,而存在但文件不为图片文件的话则显示image==null。
HttpClient下的SSRF
CloseableHttpClient httpClient = HttpClients.createDefault();HttpClient client = new HttpClient();HttpGet getRequest = new HttpGet(url);HttpResponse response = httpClient.execute(getRequest);
OkHttp 下的SSRF
Request request = new Request.Builder() .url("http://publicobject.com/helloworld.txt") .build(); Response response = client.newCall(request).execute();
HttpRequest
HttpRequest request = HttpRequest.get("http://www.baidu.com",true,'q',"baseball gloves","size",100);
发表评论
最新留言
不错!
[***.144.177.141]2025年03月26日 09时33分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python 面向对象进阶
2019-03-06
Linux常用统计命令之wc
2019-03-06
并发编程——IO模型详解
2019-03-06
Java之封装,继承,多态
2019-03-06
wait()与notify()
2019-03-06
使用js打印时去除页眉页脚
2019-03-06
Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
2019-03-06
ORA-00904: "FILED_TYPE": 标识符无效
2019-03-06
MapReduce实验
2019-03-06
[apue] getopt 可能重排参数
2019-03-06
移动互联网恶意软件命名及分类
2019-03-06
PySide图形界面开发(一)
2019-03-06
vue3 template refs dom的引用、组件的引用、获取子组件的值
2019-03-06
882. Reachable Nodes In Subdivided Graph
2019-03-06
375. Guess Number Higher or Lower II
2019-03-06
764. Largest Plus Sign
2019-03-06
等和的分隔子集(DP)
2019-03-06
L - Large Division (大数, 同余)
2019-03-06
39. Combination Sum
2019-03-06
41. First Missing Positive
2019-03-06