
JAVA
文章平均质量分 60
番茄酱料
耐心沉淀,努力向前
展开
-
畅捷通T+13管理员密码任意重置漏洞
复现版本 畅捷通13。原创 2024-12-24 23:31:28 · 596 阅读 · 0 评论 -
畅捷通-条件竞争
其次是写入路径可控。最后是逻辑顺序设计的不合理,当程序在服务端并发处理用户请求时就会出现问题,如果在文件上传成功后但是在删除它以前这个文件就被执行了那么会怎样呢?我们假设攻击者上传了一个用来生成恶意shell的文件,在上传完成并删除它的间隙,攻击者通过不断地发起访问请求的方法访问了该文件,该文件就会被执行,并且在服务器上生成一个恶意shell的文件。至此,该文件的任务就已全部完成,至于后面把它删除的问题都已经不重要了,因为攻击者已经成功的在服务器中植入了一个shell文件,后续的一切就都不是问题了。原创 2024-12-24 23:23:41 · 459 阅读 · 0 评论 -
shiro注入filter内存马(绕过长度限制)
shiro环境https://github.com/yyhuni/shiroMemshell(实验环境)这里用的Client_memshell.javapackage com.example.demo;import javassist.ClassPool;import javassist.CtClass;import org.apache.shiro.crypto.AesCipherService;import org.apache.shiro.util.ByteSource;pub原创 2024-12-24 23:00:51 · 1353 阅读 · 0 评论 -
Jimureport h2命令执行分析记录
因为jeecg-boot/jmreport/testConnection接口的参数是var1,是JmreportDynamicDataSourceVo类型,那么我们查看代码总结出来有这么几个参数id,code,dbType,dbDriver,dbUrl,dbName,dbUsername,dbPassword,connectTimes。var1是JmreportDynamicDataSourceVo类型,也就是如上图的dbSource,根据打印的结果可以知道这里是local cache key。原创 2024-12-24 22:47:35 · 399 阅读 · 0 评论 -
shiro权限校验demo
这里通过链式hashmap添加进去接口权限,用安全管理器设置过滤,并且设置登录跳转(登录页面需要自己写,shiro不提供,不像springboot那样智能)调试发现使用SimpleCredentialsMatcher类型,因此可以明文认证,我们应该用加密的认证才更安全。但是这里我们的密码明文也可以认证,是不安全的,访问/user/add会返回401,说明未授权。这样所有登录的用户都会被授权。当输入正确用户名,错误密码。我们这里添加一个未授权页面。我们写一个给用户授权的功能。可以看到测试类成功查出。原创 2024-12-24 22:37:44 · 266 阅读 · 0 评论 -
idea-java项目中的全部接口提取
这个当前目录和子目录都可以获得,但是没达到我们的目的就是获得全部接口(也就是拼接好的接口)那么接下来把url提取出来输出到单个文件url.txt中。可以看到成功输出,接下来写成输出到某个文件中。可获得分支接口(除了根路径接口)目标获得其中的接口,类似如下。很全面,以后直接使用就可以了。原创 2024-11-25 01:04:59 · 1535 阅读 · 0 评论 -
jeecg-boot的sign签名算法
这里总结下,X-TIMESTAMP到时候可以直接写成当前时间戳,X-Sign写成md5(请求包的参数内容转换为json格式+dd05f1c54d63749eda95f9fa6d49v442a),注意最后生成的md5要大写。注意要大写,我们上图小写了,所以导致不匹配。那么三个参数排列的顺序是怎么样的呢?可以看到两个不一样,所以校验失败。按照参数从小到大的字母顺序排列。可以看到成功绕过sign检测。可以看到返回false。这是api所需要的参数。原创 2024-11-25 00:47:41 · 512 阅读 · 2 评论 -
GeoServer之xpath表达式远程代码执行CVE-2024-36401漏洞复现及分析
比如GetPropertyValue(获取属性值),GetFeatureWithLock(获取带锁特征),CreateStoredQuery(创建存储查询),DropStoredQuery(删除存储查询),ListStoredQueries(列出已存储的查询),DescribeStoredQuery(描述存储查询)尽管版本之间存在一些重要差异,但请求语法通常保持不变。检查缓存中是否存在xpath已编译的表达式,如果 expr 不为 null,表示缓存中已存在已编译的表达式,直接返回该表达式,否则会编译。原创 2024-11-15 17:44:18 · 903 阅读 · 0 评论 -
致远CopyFile文件复制漏洞
也就是首先用时间创建目录,该时间目录下创建destFile,然后copyFile进行复制,但是这里copyFile和我们下面分析的还不一样,那么接下来分析copyFile怎么进行的复制。整体利用思路先随便上传一个正常后缀文件, 且知道文件上传的路径和文件名, 再将其复制到WEB路径下,那么先看下面的文件复制,需要上传的一个正常后缀文件,再找上传点。源文件和目标文件都进行了拼接,那么就都可以进行跨目录操作,但是注意这里多了判断,如果目标文件存在,就不会复制生成了,那么每次操作都换个目标文件名就可以。原创 2024-07-10 22:25:13 · 584 阅读 · 0 评论 -
apachesolr中简单使用
然后把D:\solr-8.1.0\solr-8.1.0\dist目录下的solr-dataimporthandler-8.1.0.jar复制到D:\solr-8.1.0\solr-8.1.0\server\solr-webapp\webapp\WEB-INF\lib目录下。那么我们将D:\solr2\solr-9.3.0\solr-9.3.0\server\solr\configsets下的任何一个目录下的conf拷贝到new_core过去。然后再次点击add core。首先点击add core。原创 2023-11-05 23:46:44 · 1254 阅读 · 0 评论 -
apachesolr启动带调试
这里solr.cmd报错,报错原因是java版本问题,后面发现这是因为多个java版本导致读取java_home失败,那么我们修改solr.cmd中的JAVA_HOME为SOLR_JAVA_HOME。环境变量将SOLR_JAVA_HOME配置上。添加-f -a命令,solr专属,并非万能。原创 2023-11-05 23:37:28 · 1296 阅读 · 0 评论 -
Feign负载均衡写法
在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(类似于以前Dao接口上标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可)这里将接口写好之后使用@Component注解注入spring容器,然后新建模块springcloud-consumer-dept-feign。这里其实就是springcloud-consumer-dept-80模块复制过去,不一样的是。这里使用接口方式注入,也就是用了spring容器的思想不使用RestTemplate来获取。原创 2023-09-03 17:48:12 · 871 阅读 · 0 评论 -
shiro550漏洞分析
可以看到调用中参数为subjectContext,也就是我们的cookie,转换成字节数组bytes,然后进入if语句判断是否为空,然后进入principals = convertBytesToPrincipals(bytes, subjectContext);勾选RememberMe字段,登陆成功的话,返回包set-Cookie会有rememberMe=deleteMe字段,还会有rememberMe字段,之后的所有请求中Cookie都会有rememberMe字段。原创 2023-09-03 17:39:27 · 359 阅读 · 0 评论 -
nvm集合node版本,解决新版本jeecgboot3.5.3前端启动失败问题
使用之前的pnpm启动会报错,pnpm是node进行安装的,查询后发现,vue3版本的页面至少需要node16版本,我之前的版本只有15.5,适用于vue2。那么我将先前的node15.5版本删除,然后安装一个nvm(集合了node的各种版本),具体如下链接。jeecgboot前端3.5.3页面如下。原创 2023-08-31 14:25:08 · 739 阅读 · 0 评论 -
fastjson windows主机上线
抓包后是get请求,我们将其放到repeater中,修改成post请求,修改成json格式。还可以换一个我们现在最常用的payload。首先创建一个win类,作为命令执行的类。然后写一个漏洞Fastjson的执行类。我们在模拟环境中利用fastjson。可以看到windows主机成功上线。json我们直接从这里拿取即可。将我们的win类传上vps。可以看到仍然可以成功上线。接下来利用ldap协议。原创 2023-08-30 02:02:26 · 341 阅读 · 0 评论 -
对class文件进行base64编码
【代码】对class文件进行base64编码。原创 2023-08-30 01:26:26 · 444 阅读 · 0 评论 -
spring创建bean的三种方法
Spring支持如下三种方式创建Bean1:调用构造器创建Bean2:调用静态工厂方法创建Bean3:调用实例工厂方法创建Bean注解@Bean方式Xml方式BeanDefinitionBuilder方式。原创 2023-08-30 01:22:48 · 2372 阅读 · 0 评论 -
servlet内存马学习
项目配置注意一定要添加否则访问路径会404,tomcat并没有对项目生效。原创 2023-08-29 12:57:04 · 326 阅读 · 0 评论 -
fastjson利用templatesImpl链
build成TemplatesImplEvil.class。然后base64编码该类。可以看的到成功弹出计算器。原创 2023-08-29 01:11:46 · 368 阅读 · 0 评论 -
Freemarker代码
中文文档payload构造:正常使用方法:https://blog.youkuaiyun.com/zenyangqiming/article/details/108415063。原创 2023-08-29 00:55:47 · 165 阅读 · 0 评论 -
spring cloud开发 消费者和服务提供者
这里消费者是不需要service层,消费者通过url去请求,比如http://127.0.0.1:8001/dept/list这个url,但是这个url是在我们之前提供者模块的,那么我们怎么拿到这个url?可以看到跳到了,主项目的pom.xml,说明主项目的pom.xml是用了管理依赖的,再看看右侧maven,发现右边写进去的依赖并没有导入,真正使用还需要在子模块中pom.xml配置。可以看到我们配置了子模块,不用写版本号,因为父依赖中已经有了版本号,如果父依赖中没有,就需要单独写进去。原创 2023-06-27 22:11:55 · 407 阅读 · 0 评论 -
tomcat进程注入
可以看到agent.jar文件为了防止发现,自动清除,而且重启电脑之后,内存马不死,继续可以使用。将agent.jar和inject.jar放到tomcta的web目录下。跟随上一篇《java进程注入》这里使用memShell。那么memShell分析。原创 2023-06-27 21:19:50 · 1024 阅读 · 0 评论 -
java进程注入
简单一句话概括下:Java Instrumentation可以在JVM启动后,动态修改已加载或者未加载的类,包括类的属性、方法。是因为在Java9及以后的版本中,默认不允许SelfAttach:也就是说,系统提供了一个jdk.attach.allowAttachSelf的VM参数,这个参数默认为false,且必须在Java启动时指定才生效。这里有个问题,打包成jar文件,运行一直显示确实tools.jar包,但是我的系统路径是有tools.jar的,和项目所用的tools路径一样,但还是不行。原创 2023-06-27 21:12:20 · 466 阅读 · 0 评论 -
反射来命令执行存在的一些问题
而Runtime类的构造函数是private的,不满足public条件,因此使用payload java.lang.Runtime.getRuntime().exec(“”),会报错。想要通过Class.forName(beanName).newInstance()成功实例化,必须满足类至少有一个无参的构造函数(这就是它的使用局限性)那么问题来了,我们平时写都是上面这样子,没有报错,也没有传进去参数,为什么说它没有无参构造函数,我们跟进去看看。进来后可以看到不是无参构造函数,只不过可以不加参数而已。原创 2023-06-27 21:05:21 · 241 阅读 · 0 评论 -
shiro721——CVE-2019-12422
shiro721——CVE-2019-12422原创 2023-02-10 01:48:52 · 1688 阅读 · 0 评论 -
java动态代理
java动态代理原创 2023-02-10 01:36:17 · 199 阅读 · 0 评论 -
反射来命令执行存在的一些问题
反射来命令执行存在的一些问题原创 2023-02-10 01:33:37 · 255 阅读 · 0 评论