任意文件上传——tcp
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的更多相关文章
- WebLogic任意文件上传漏洞(CVE-2019-2618)
WebLogic任意文件上传漏洞(CVE-2019-2618) 0x01 漏洞描述 漏洞介绍 CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口, ...
- 【原创】JEECMS v6~v7任意文件上传漏洞(1)
文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...
- 中国电信某站点JBOSS任意文件上传漏洞
1.目标站点 http://125.69.112.239/login.jsp 2.简单测试 发现是jboss,HEAD请求头绕过失败,猜测弱口令失败,发现没有删除 http://125.69.112. ...
- Discuz!NT 后台任意文件上传的源代码修补方法
相关的漏洞介绍: http://www.wooyun.org/bugs/wooyun-2013-035199 Discuz!NT 管理后台可以自定义文件类型,从而造成任意文件上传,测试过程中 aspx ...
- CKFinder 1.4.3 任意文件上传漏洞
CKFinder 是国外一款非常流行的所见即所得文字编辑器,其1.4.3 asp.net版本存在任意文件上传漏洞,攻击者可以利用该漏洞上传任意文件. CKFinder在上传文件的时候,强制将文件名(不 ...
- WordPress Contact Form 7插件任意文件上传漏洞
漏洞名称: WordPress Contact Form 7插件任意文件上传漏洞 CNNVD编号: CNNVD-201311-415 发布时间: 2013-11-28 更新时间: 2013-11-28 ...
- WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞
漏洞名称: WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-403 发布时间: 2013-11-28 更新 ...
- WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞
漏洞名称: WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-127 发布时间: 2013-11-12 ...
- WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞
漏洞名称: WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-06 ...
随机推荐
- JZOJ8月4日提高组反思
JZOJ8月4日提高组反思 被一堆2018&2019&2020的巨佬暴打 又是愉快的爆0的一天呢 T1 看了看题 没想法 暴力走起 求个质因数呀,二分呀-- 然后就炸了 正解预处理加二 ...
- 学习abp vnext框架到精简到我的Vop框架
学习目标 框架特点 基于.NET 5平台开发 模块化系统 极少依赖 极易扩展 ....... 框架目的 学习.NET 5平台 学习abp vnext 上图大部分功能已经实现,多数是参考(copy)ab ...
- PyQt学习随笔:QWidget的QFont的kerning、Antialiasing属性用途
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 引言 在Designer中,QWidget的font属性有两个比较陌生 ...
- PyQt(Python+Qt)学习随笔:快速理解Qt 中Action是什么
一.引言 Qt中Action这个词接触很久了,一直以来没去学习,今天终于准备学习了,查了些资料,初步总结为: Action为界面操作的抽象,应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命 ...
- Javascrip之BOM
重点内容 理解windows对象-BOM核心 控制窗口.框架.弹出窗口 利用location对象中的页面信息 利用navigator对象了解浏览器 BOM:浏览器对象模型[Browner Object ...
- PHP代码审计分段讲解(4)
08 SESSION验证绕过 源代码为: <?php $flag = "flag"; session_start(); if (isset ($_GET['passw ...
- Codeforces Edu Round 64 A-D
A. Inscribed Figures 分类讨论打表即可. PS:这道题翻译有歧义. 这样稍微翻转一下,就可以是\(7\)个交点呀...(大概是我没看英文题干导致的惨案) #include < ...
- 题解-[HNOI2016]序列
题解-[HNOI2016]序列 [HNOI2016]序列 给定 \(n\) 和 \(m\) 以及序列 \(a\{n\}\).有 \(m\) 次询问,每次给定区间 \([l,r]\in[1,n]\),求 ...
- Springboot websocket学习Demo
使用的是springboot2.1.4版本 <parent> <groupId>org.springframework.boot</groupId> <art ...
- 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 ...