package chaoba;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream.GetField;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException; public class ChaobaClient { public static void main(String[] args) throws Exception { Socket s = new Socket("127.0.0.1", 10009); FileInputStream fileName = getFileName(s);
rece(s);
sendFile(s, fileName);
rece(s);
s.close(); } /*
* 获取发送文件名。发送给服务端。。。本地验证,存在安全隐患。可造成任意文件上传
*
*/
public static FileInputStream getFileName(Socket s) {
try {
File file = new File("C:\\pic\\chaoba.txt");
FileInputStream fileIn = new FileInputStream(file);
String name = file.getName();
OutputStream outputStream = s.getOutputStream();
outputStream.write(name.getBytes());
return fileIn; } catch (Exception e) {
// TODO: handle exception
}
return null; } /*
*
* 发送文件方法
*
*
*/
public static void sendFile(Socket s, FileInputStream fileIn) {
try {
byte[] bufFile = new byte[1024];
OutputStream outputStream2 = s.getOutputStream();
int read = 0;
while ((read = fileIn.read(bufFile)) != -1) {
outputStream2.write(bufFile);
outputStream2.flush(); } s.shutdownOutput();
fileIn.close(); } catch (Exception e) {
// TODO: handle exception
}
} /*
* 接收服务端方法
*
*/
public static void rece(Socket s) { try {
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String readLine = bufIn.readLine();
System.out.println(readLine);
} catch (Exception e) {
// TODO: handle exception
}
} }
package chaoba;

import java.awt.image.ReplicateScaleFilter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket; public class ChaobaServer { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(10009);
Socket accept = ss.accept();
String receName = receName(accept);
receFile(accept, receName);
sendRece(accept);
accept.close();
ss.close(); }
public static void sendRece(Socket accept) throws IOException {
OutputStream outputStream1 = accept.getOutputStream();
PrintWriter pw1 = new PrintWriter(outputStream1, true);
pw1.println("成功上传");
} /*
* 接收文件名
*
*
*/
public static String receName(Socket accept) { try {
InputStream inputStream = accept.getInputStream();
byte[] buf = new byte[1024]; int read = inputStream.read(buf);
String name = new String(buf, 0, read);
System.out.println(name); OutputStream outputStream = accept.getOutputStream();
PrintWriter pw = new PrintWriter(outputStream, true);
pw.println("成功获取文件名");
return name;
} catch (Exception e) {
// TODO: handle exception
}
return null;
} public static void receFile(Socket accept, String name) { try {
FileOutputStream fileOut = new FileOutputStream(name);
byte[] bufFile = new byte[1024];
InputStream inputStream2 = accept.getInputStream();
int read2 = 0;
while ((read2 = inputStream2.read(bufFile)) != -1) { fileOut.write(bufFile, 0, read2);
fileOut.flush(); } fileOut.close();
} catch (Exception e) {
// TODO: handle exception
}
} }

任意文件上传——tcp的更多相关文章

  1. WebLogic任意文件上传漏洞(CVE-2019-2618)

    WebLogic任意文件上传漏洞(CVE-2019-2618) 0x01 漏洞描述 漏洞介绍 CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口, ...

  2. 【原创】JEECMS v6~v7任意文件上传漏洞(1)

    文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...

  3. 中国电信某站点JBOSS任意文件上传漏洞

    1.目标站点 http://125.69.112.239/login.jsp 2.简单测试 发现是jboss,HEAD请求头绕过失败,猜测弱口令失败,发现没有删除 http://125.69.112. ...

  4. Discuz!NT 后台任意文件上传的源代码修补方法

    相关的漏洞介绍: http://www.wooyun.org/bugs/wooyun-2013-035199 Discuz!NT 管理后台可以自定义文件类型,从而造成任意文件上传,测试过程中 aspx ...

  5. CKFinder 1.4.3 任意文件上传漏洞

    CKFinder 是国外一款非常流行的所见即所得文字编辑器,其1.4.3 asp.net版本存在任意文件上传漏洞,攻击者可以利用该漏洞上传任意文件. CKFinder在上传文件的时候,强制将文件名(不 ...

  6. WordPress Contact Form 7插件任意文件上传漏洞

    漏洞名称: WordPress Contact Form 7插件任意文件上传漏洞 CNNVD编号: CNNVD-201311-415 发布时间: 2013-11-28 更新时间: 2013-11-28 ...

  7. WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞

    漏洞名称: WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-403 发布时间: 2013-11-28 更新 ...

  8. WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞

    漏洞名称: WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-127 发布时间: 2013-11-12 ...

  9. WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞

    漏洞名称: WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-06 ...

随机推荐

  1. JZOJ8月4日提高组反思

    JZOJ8月4日提高组反思 被一堆2018&2019&2020的巨佬暴打 又是愉快的爆0的一天呢 T1 看了看题 没想法 暴力走起 求个质因数呀,二分呀-- 然后就炸了 正解预处理加二 ...

  2. 学习abp vnext框架到精简到我的Vop框架

    学习目标 框架特点 基于.NET 5平台开发 模块化系统 极少依赖 极易扩展 ....... 框架目的 学习.NET 5平台 学习abp vnext 上图大部分功能已经实现,多数是参考(copy)ab ...

  3. PyQt学习随笔:QWidget的QFont的kerning、Antialiasing属性用途

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 引言 在Designer中,QWidget的font属性有两个比较陌生 ...

  4. PyQt(Python+Qt)学习随笔:快速理解Qt 中Action是什么

    一.引言 Qt中Action这个词接触很久了,一直以来没去学习,今天终于准备学习了,查了些资料,初步总结为: Action为界面操作的抽象,应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命 ...

  5. Javascrip之BOM

    重点内容 理解windows对象-BOM核心 控制窗口.框架.弹出窗口 利用location对象中的页面信息 利用navigator对象了解浏览器 BOM:浏览器对象模型[Browner Object ...

  6. PHP代码审计分段讲解(4)

    08 SESSION验证绕过 源代码为: <?php ​ $flag = "flag"; ​ session_start(); if (isset ($_GET['passw ...

  7. Codeforces Edu Round 64 A-D

    A. Inscribed Figures 分类讨论打表即可. PS:这道题翻译有歧义. 这样稍微翻转一下,就可以是\(7\)个交点呀...(大概是我没看英文题干导致的惨案) #include < ...

  8. 题解-[HNOI2016]序列

    题解-[HNOI2016]序列 [HNOI2016]序列 给定 \(n\) 和 \(m\) 以及序列 \(a\{n\}\).有 \(m\) 次询问,每次给定区间 \([l,r]\in[1,n]\),求 ...

  9. Springboot websocket学习Demo

    使用的是springboot2.1.4版本 <parent> <groupId>org.springframework.boot</groupId> <art ...

  10. li = [11,22,33,44,55,66,77,88,99]分类

    方法一: li = [11,22,33,44,55,66,77,88,99]s = []m = []for i in li: if i <= 55: s.append(i) else: m.ap ...