java及安全
java及安全介绍
不怕死的假老练
长风破浪会有时,直挂云帆济沧海…
展开
-
XXE漏洞简介
一、概述XXE(XML External Entity Injection),即MXL外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站,发起dos攻击。XXE漏洞触发的点出现在系统可以上传XML文件的位置,应用程序对XML输入进行解析时,没有对上传的XML文件内容进行过滤,没有禁止加载外部实体,导致攻击者可以构造一个恶意的XML文件进行上传。二、基本概念1.XMLXML,即可扩展原创 2020-09-05 14:32:08 · 2558 阅读 · 0 评论 -
SSRF漏洞简介
一、概述SSRF(Server-Side Request Forgery),即服务器端请求伪造。其形成原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制。导致攻击者可以传入任意的地址让后端服务器接收其请求,并返回对该目标地址请求的数据。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。通俗的来说就是我们可以“伪造”服务器端发起的请求,从而获取客户端所不能得到的数据。二、主要危害可以对外网、服务器所在内网、本地进行端口扫描,获取一些服原创 2020-09-05 14:06:33 · 518 阅读 · 0 评论 -
CSRF漏洞简介
一、概述跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。 ...原创 2020-09-05 10:56:26 · 1793 阅读 · 0 评论 -
XSS简介
一、概述XSS(Cross Site Script),即跨站脚本攻击,是指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式。跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。二、分类1.反射型XSS攻击方式:攻击者构造好get请求参数,将带有恶意参数的链接发给受害者,诱使受害人点击后,服务器原创 2020-09-05 10:03:32 · 865 阅读 · 0 评论 -
SQL注入简介
一、sql注入概述SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。二、sql注入原理sql注入需要满足两个条件...原创 2020-09-04 13:14:55 · 435 阅读 · 0 评论 -
PUT请求与JSP文件包含漏洞简介
一、概述1.PUT请求PUT 方法用来传输文件。就像 FTP 协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。但是,鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。(实验演示中,是手动打开了PUT请求方式。)2.jsp概述JPS(即:Java Server Pages),是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<原创 2020-09-03 20:15:34 · 1009 阅读 · 0 评论 -
通过java代码实现get登录的密码暴力破解
一、原理GET请求会将参数放在URL中,如果通过GET请求登录,则会将用户名和密码放在URL中进行发送,此时我们可以通过构建URL来进行测试登录,并获取到返回的数据,来判定登录结果,来达到爆破的结果。二、思路我们需要通过socket的方式进行连接,并准备用户名和密码字典,依次取出字典中的值,通过两个for循环,用外层用户名,内层密码的方式构建URL,再依次发送,并接收返回的数据,判断登录结果。此时需要注意的是,在发送了请求后,判定登录失败,则需要关闭socket,并重新建立socket进行下原创 2020-09-03 18:54:41 · 2268 阅读 · 1 评论 -
基于TCP协议的简单socket编写
一、socket概述所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通原创 2020-09-03 17:38:17 · 404 阅读 · 1 评论 -
基于java的文件复制
一、原理在windows系统中,我们通过“ctrl+c”以及“ctrl+v”就能进行文件的复制,但是如果要通过java代码编写,则需要进行两个过程,即文件的读取以及文件的写入。二、需要用到的类与方法1.读取文件使用FileInputStream类,读取文件,构造方法如下:使用的方法:.read()2.写入文件使用FileOutputStream类,写入文件,构造方法如下:使用的方法:.write()三、代码的编写1.文件读取读取D盘下123原创 2020-09-03 16:45:25 · 254 阅读 · 0 评论 -
基于java的磁盘遍历
一、需要用到的类和方法遍历磁盘,我们需要用到File类,构造方法如下:我们需要用到的方法有:.listFiles().isfile()二、思路遍历磁盘,首先将磁盘目录下的文件放入数组中,将文件依次进行验证,是一般文件还是目录。一般文件则在控制台打印,目录则需要再次打开,对目录中的文件再次进行判断,这里就有一个重复调用的问题。三、代码编写package com.woniu.test;import java.io.File;public class Demo1原创 2020-09-03 16:10:53 · 458 阅读 · 1 评论 -
JAVA常见漏洞及规避
一、.整形溢出JAVA中,基本数据类型中,短整型为2个字节,整型为4个字节,长整型为8个字节,但是首位都为符号位,1为负,0为正。当计算产生进位到符号位时,数字会由整数变为负数,这种情况就叫做整型溢出,如:public class Demo7 { public static void main(String[] args) { int a = 1000000000; int b = 1000000000; System.out.println(a*b); } }两个整数相原创 2020-08-20 14:47:06 · 1582 阅读 · 0 评论 -
JAVA练习题2则
1.打印99乘法表。package com.mtlk.demo;public class Demo3 { public static void main(String[] args) { for(int a=1;a<=9;a++) { for(int b=1;b<=a;b++) { int c = a * b; System.out.print(b+"x"+a+"="+c+" "); } System.out.println("原创 2020-08-17 21:19:53 · 154 阅读 · 1 评论