access无数据库用户
mysql里面有内置的管理用户,其中root就是默认的数据库管理员用户
网站上面的数据库都在mysql中,由root或一对一用户去管理
123456789101112131、数据库统一管理(root用户)每个网站的数据库都是由root用户统一管理2、数据库一对一管理(不同用户)每一个数据库都是有对应的用户进行管理。例子:网站A: 数据库用户zblog--->zblog(数据库)网站B:数据库用户demo--->demo01(数据库)不同模式,进行注入的区别;1、如果都是统一管理的方案,一个网站的数据库有注入,同服务器的其他数据库一起遭殃,而且因为是root,所以还可以读文件,写文件。提权。2、如果是数据库一对一管理,那么一个网站有注入,那么只有这个网站会GG,也不会影响到其他数据库,而且因为是低权限用户的原因,所以也写不了文件,读不了文件。
root用户:先测试读写,后测试获取数据
非root用户:直接测试获取数据
1这里我个人是倾向于,先去获取数据,然后在测试读写,因为可以尝试进入后台,这样就会有更多的机会得到绝对路径和写shell的机会。 ...
ASP-默认安装-MDB数据库泄漏下载1MDB 数据库泄漏的本质是:文件被存储在 Web 可访问目录下,且服务器默认允许直接下载该类型文件。这与 ASP 技术的早期设计、IIS 默认配置以及开发习惯密切相关,并非 ASP 本身的漏洞,但在缺乏安全配置的情况下,风险极高。
可以直接通过访问这个网站的路径,来访问这个数据库地址,就会触发下载操作。
如何获取到这个mdb文件:
1234561、通过目录扫描工具扫到这个数据库文件2、通过利用windows-server低版本特性,利用短文件名来判断(要求是对方服务器需要是IIS6.0)利用工具:https://github.com/VMsec/iisShortNameScaner视频中用的工具:https://github.com/lijiejie/IIS_shortname_Scanner3、通过爬虫来爬取路径,现在一般使用的比较多的是熊猫头和转子女神。
HTTP.SYS(CVE-2015-1635)蓝屏漏洞影响版本:
12Windows 7、 Windows Server 2008 R2 、 Windows 8 、 Wind ...
JWT:https://cloud.tencent.com/developer/article/1460770
jwt有三个部分:
123头部(header)载荷(payload)签证(signature)
jwt解密网站:https://jwt.io/
JwtController.java12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package cn.xiaodi.testjwt.demos.web;import com.auth0.jwt.JWT;import com.auth0.jwt.JWTVerifier;import com.auth0.jwt.algorithms.Algorithm;import com.auth0.jwt.interfaces.DecodedJWT;import org.sprin ...
SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理Spring Boot应用。
SpringBoot-监控系统-Actuator
创建一个新项目。
引入依赖,当创建项目时未选择 actuator 依赖时,可在配置文件 pom.xml 中自行引入
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>
这个选项参数是暴露所有节点参数的,里面包含了计算机本地的一些环境信息,其中比较敏感的信息就是:
1234/actuator/env 和 /actuator/heapdumphttp://localhost:8080/actuator/envhttp://localhost:8080/actuator/heapdump
这个 ...
Spring Boot 之所以成为当前 Java 生态中适用面最广的开发框架,核心在于它解决了传统 Java 开发的痛点,同时顺应了现代软件架构的需求,其优势体现在开发效率、生态兼容、场景适配等多个维度。
创建一个springboot的项目
在最顶端的这个服务器URL地址这里:
1234服务器url可以选择两个:https://start.spring.iohttps://start.aliyun.com
编写一个静态页面:
如果端口有冲突,就可以修改这里的端口就行。
拼接路径xiaodi,得到刚刚编写的return yatming。
使用get和post的提交代码:
12345678910111213141516171819package com.yatming.springboot_demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import ...
JNDI注入的版本限制:
演示案例:JNDI 注入-RMI&LDAP 服务
JNDI 注入-FastJson 漏洞结合
JNDI 注入-JDK 高版本注入绕过
jndi.java12345678910import javax.naming.InitialContext;import javax.naming.NamingException;public class jndi { public static void main(String[] args) throws NamingException { String uri = "rmi://127.0.0.1:1099/work"; InitialContext initialContext = new InitialContext();//得到初始目录环境的一个引用 initialContext.lookup(uri);//获取指定的远程对象 }}
这里的这个远程地址,可以使用上一节使用的那个jar包。
1 ...
Maven配置:https://www.jb51.net/article/259780.htm
Log4jTest.java123456789101112131415161718import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class Log4jTest { //使用Log4j 实现错误日志输出 private static final Logger logger = LogManager.getLogger(Log4jTest.class); public static void main(String[] args) { //如果这个code变量是可控的 String code="${java:os}"; logger.error("{}",code); }}
L ...
为什么需要序列化序列化和反序列化的设计就是用来传输数据的。
当两个进程进行通信的时候,可以通过序列化和反序列化来进行传输。
能够实现数据的持久化,通过序列化可以把数据永久的保存在硬盘上,也可以理解为通过序列化将数据保存在文件中。
应用场景:
123(1)想把内存中的对象保存到一个文件中或者是数据库当中。(2)用套接字在网络上传输对象。(3)通过 RMI 传输对象的时候。
简单理解序列化和反序列化
12序列化:将内存中的对象压缩成字节流反序列化:将字节流转换成内存中的对象
几种创建的序列化和反序列化协议
12345678java内置的writeObject() / readObject()java内置的XMLDecoder() / XMLEncoder()还有第三方的(这也就是为什么会有fastjson这样的漏洞)XstreamSnakeYamlFastJsonJackson
为什么会出现反序列化安全问题123456789内置原生写法分析• 重写readObject方法• 输出调用toString方法反序列化利用链(1) 入口类的readObject直接调用危险方法(2) 入口参数 ...
1. 类加载与 Class 对象当 Java 程序运行时,每个类都会被 JVM 加载到内存中,并生成一个对应的Class对象(类似于类的 “元数据模板”)。这个Class对象包含了该类的所有信息:字段、方法、构造器等。类比:就像建筑图纸(Class对象)包含了建筑物(类)的所有设计细节,程序可以通过图纸了解建筑物的结构。
2. 获取 Class 对象的三种方式程序可以通过以下方式获取Class对象:
类名.class:Class<?> clazz = Person.class;
对象.getClass ():Class<?> clazz = personInstance.getClass();
全类名反射:Class<?> clazz = Class.forName("com.example.Person");
类比:就像通过建筑物的名字、实际建筑或地址来获取对应的图纸。
3. 通过 Class 对象访问类成员一旦获得Class对象,就可以获取类的各种成员(字段、方法、构造器)的 “反射对象”:
获取字段:Field f ...
内存马介绍:https://blog.csdn.net/weixin_39190897/article/details/137379027?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172200720616800185891520%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172200720616800185891520&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-137379027-null-null.142%5Ev100%5Epc_search_result_base7&utm_term=%E5%86%85%E5%AD%98%E9%A9%AC&spm=1018.2226.3001.4187
sql查询危险的写法123456789101 ...










