OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...Christopher Frohoff
Object deserialization is an established but poorly understood attack vector in applications that is disturbingly prevalent across many languages, platforms, formats, and libraries.
In January 2015 at AppSec California, Chris Frohoff and Gabe Lawrence gave a talk on this topic, covering deserialization vulnerabilities across platforms, the many forms they take, and places they can be found. It covered, among other things, somewhat novel techniques using classes in commonly used libraries for attacking Java serialization that were subsequently released in the form of the ysoserial tool. Few people noticed until late 2015, when other researchers used these techniques/tools to exploit well known products such as Bamboo, WebLogic, WebSphere, ApacheMQ, and Jenkins, and then services such as PayPal. Since then, the topic has gotten some long-overdue attention and great work is being done by many to improve our understanding and developer awareness on the subject.
This talk will review the details of Java deserialization exploit techniques and mitigations, as well as report on some of the recent (and future) activity in this area.
http://www.meetup.com/Open-Web-Application-Security-Project-San-Diego-OWASP-SD/events/226242635/
Java Deserialization Vulnerabilities - The Forgotten Bug Class (DeepSec Edition)CODE WHITE GmbH
The document discusses Java deserialization vulnerabilities. It begins with an introduction to Java's object serialization protocol and how it can be exploited if not implemented securely. Several real-world examples of vulnerabilities are provided from 2006 to 2015. Common techniques for finding vulnerabilities like grepping for "readObject()" and exploiting them using "gadgets" are described. The document concludes with a hands-on example of exploiting a Jenkins vulnerability using a custom serialized object.
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...joaomatosf_
- The document discusses Java object serialization vulnerabilities and remote code execution.
- It provides background on serialization/deserialization and how it can allow object injection and improper input validation.
- A key vulnerability discussed is CVE-2015-7501, which affected Apache Commons Collections and allowed remote code execution through a "gadget chain" triggered during deserialization.
This document contains an agenda and slides for a presentation on Spring Boot. The presentation introduces Spring Boot, which allows developers to rapidly build production-grade Spring applications with minimal configuration. It demonstrates how to quickly create a "Hello World" application using Spring Boot and discusses some of the features it provides out-of-the-box like embedded servers and externalized configuration. The presentation also shows how to add additional functionality like Thymeleaf templates and actuator endpoints to monitor and manage applications.
Java Deserialization Vulnerabilities - The Forgotten Bug ClassCODE WHITE GmbH
This document discusses Java deserialization vulnerabilities. It provides an introduction to how Java serialization works and what the security issues are. Specifically, it describes how an attacker can exploit vulnerabilities to remotely execute code on a server by deserializing malicious objects. The document gives examples of past vulnerabilities found in various Java applications and frameworks. It also provides tips for finding vulnerabilities and generating payloads to demonstrate exploits.
Defending against Java Deserialization VulnerabilitiesLuca Carettoni
Java deserialization vulnerabilities have recently gained popularity due to a renewed interest from the security community. Despite being publicly discussed for several years, a significant number of Java based products are still affected. Whenever untrusted data is used within deserialization methods, an attacker can abuse this simple design anti-pattern to compromise your application. After a quick introduction of the problem, this talk will focus on discovering and defending against deserialization vulnerabilities. I will present a collection of techniques for mitigating attacks when turning off object serialization is not an option, and we will discuss practical recommendations that developers can use to help prevent these attacks.
This presentation illustrates a number of techniques to smuggle and reshape HTTP requests using features such as HTTP Pipelining that are not normally used by testers. The strange behaviour of web servers with different technologies will be reviewed using HTTP versions 1.1, 1.0, and 0.9 before HTTP v2 becomes too popular! Some of these techniques might come in handy when dealing with a dumb WAF or load balancer that blocks your attacks.
Presented @ BSides Manchester 2017 & SteelCon 2017
https://2018.zeronights.ru/en/reports/reverse-proxies-inconsistency/
Modern websites are growing more complex with different reverse proxies and balancers covering them. They are used for various purposes: request routing, caching, putting additional headers, restricting access. In other words, reverse proxies must both parse incoming requests and modify them in a particular way. However, path parsing may turn out to be quite a challenge due to mismatches in the parsing of different web servers. Moreover, request converting may imply a wide range of different consequences from a cybersecurity point of view. I have analyzed different reverse proxies with different configurations, the ways they parse requests, apply rules, and perform caching. In this talk, I will both speak about general processes and the intricacies of proxy operation and demonstrate the examples of bypassing restrictions, expanding access to a web application, and new attacks through the web cache deception and cache poisoning.
This document discusses Java serialization vulnerabilities and mitigations. It introduces Java serialization, attack vectors like serialization gadgets and deserialization endpoints, and demonstrates denial of service attacks. It covers mitigations such as validating class names during deserialization, but notes this approach can be bypassed. It proposes a new concept of also validating methods during deserialization. The goal is to help fix issues with the Java serialization process.
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
The hidden danger of Java deserialization vulnerabilities – which often lead to remote code execution – has gained extended visibility in the past year. The issue has been known for years; however, it seems that the majority of developers were unaware of it until recent media coverage around commonly used libraries and major products. This talk aims to shed some light about how this vulnerability can be abused, how to detect it from a static and dynamic point of view, and -- most importantly -- how to effectively protect against it. The scope of this talk is not limited to the Java serialization protocol but also other popular Java libraries used for object serialization.
The ever-increasing number of new vulnerable endpoints and attacker-usable gadgets has resulted in a lot of different recommendations on how to protect your applications, including look-ahead deserialization and runtime agents to monitor and protect the deserialization process. Coming at the problem from a developer’s perspective and triaging the recommendations for you, this talk will review existing protection techniques and demonstrate their effectiveness on real applications. It will also review existing techniques and present new gadgets that demonstrates how attackers can actually abuse your application code and classpath to craft a chain of gadgets that will allow them to compromise your servers.
This talk will also present the typical architectural decisions and code patterns that lead to an increased risk of exposing deserialization vulnerabilities. Mapping the typical anti-patterns that must be avoided, through the use of real code examples we present an overview of hardening techniques and their effectiveness. The talk will also show attendees what to search the code for in order to find potential code gadgets the attackers can leverage to compromise their applications. We’ll conclude with action items and recommendations developers should consider to mitigate this threat.
--
This talk was presented by Alvaro Muñoz & Christian Schneider at the OWASP AppSecEU 2016 conference in Rome.
remote-method-guesser - BHUSA2021 Arsenal Tobias Neitzel
Slides from the Black Hat USA 2021 Arsenal presentation of remote-method-guesser.
Recording: https://youtu.be/t_aw1mDNhzI
remote-method-guesser (rmg) is a Java RMI vulnerability scanner that checks for common misconfigurations on Java RMI endpoints.
It combines well known techniques for RMI enumeration with detection capabilities for lesser known attack vectors that are often missed.
Apart from detecting RMI vulnerabilities, remote-method-guesser can perform attack operations for each supported vulnerability type.
The following list shows some of it's currently supported operations:
* List available bound names and their interface class names
* List codebase locations (if exposed by the remote server)
* Check for known vulnerabilities (enabled class loader, missing JEP290, JEP290 bypasses, localhost bypass (CVE-2019-2684))
* Identify existing remote methods by using a bruteforce (wordlist) approach
* Call remote methods with user specified arguments (no manual coding required)
* Call remote methods with ysoserial gadgets within the arguments
* Call remote methods with a client specified codebase (remote class loading attack)
* Perform DGC, registry and activator calls with ysoserial gadgets or a client specified codebase
* Perform bind, rebind and unbind operations against an RMI registry
* Bypass registry deserialization filters by using An Trinhs registry bypass
* Enumerate the unmarshalling behavior of java.lang.String
* Create Java code dynamically to invoke remote methods manually
Spring Data is a high level SpringSource project whose purpose is to unify and ease the access to different kinds of persistence stores, both relational database systems and NoSQL data stores.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
The java persistence API provides a specification for persisting, reading, and managing data from your java object to your relational tables in the database. JPA specifies the set of rules and guidelines for developing interfaces that follow standards.
React Hooks are functions that allow you to "hook into" React state and lifecycle features from function components. Some key hooks include useState, useContext, and useEffect. Hooks make it easier to reuse stateful logic between components and simplify component logic. However, hooks should only be called from React functions and not in loops, conditions, or nested functions. Overall, hooks provide more powerful features to function components and opportunities to write code in a more functional style.
HTTP Request Smuggling via higher HTTP versionsneexemil
This document summarizes HTTP request smuggling vulnerabilities. It explains how an attacker can craft a single HTTP request that is parsed differently by the frontend and backend servers, allowing the backend to interpret additional hidden requests. Several exploitation techniques and detection methods are described, including issues that can arise with HTTP/1, HTTP/2, and protocols like WebSockets. Automated testing tools have been developed but further research is still needed to fully understand and prevent these attacks.
This document provides an overview of Java I/O including different types of I/O, how Java supports I/O through streams and classes like File, serialization, compression, Console, and Properties. It discusses byte and character streams, buffered streams, reading/writing files, and preferences. Key points are that Java I/O uses streams as an abstraction, byte streams operate on bytes while character streams use characters, and buffered streams improve efficiency by buffering reads/writes.
Pentesting Rest API's by :- Gaurang BhatnagarOWASP Delhi
Brief overview of API
▸ Fingerprinting & Discovering API
▸ Authentication attacks on API (JWT)
▸ Authorization attacks on API (OAuth)
▸ Bruteforce attacks on API
▸ Attacking Dev/Staging API
▸ Traditional attacks
Hibernate is an object-relational mapping tool for Java that allows developers to persist Java objects to a relational database in a transparent way. It provides transparent persistence without needing to flatten objects or write database specific code. Hibernate uses an object-oriented query language that closely resembles SQL to retrieve and manipulate persisted objects.
Hibernate is an object-relational mapping tool that allows developers to interact with a relational database (such as MySQL) using object-oriented programming. It provides functionality for persisting Java objects to tables in a database and querying those objects using HQL or SQL. Hibernate utilizes XML mapping files or annotations to define how Java classes map to database tables. A typical Hibernate application includes entity classes, mapping files, configuration files, and a controller class to manage persistence operations.
The document summarizes some of the key new features in Java 17 including:
1. Long-term support for Java 17 which will be available in September 2021 and include features like records, text blocks, and enhanced null pointer exceptions.
2. Records, text blocks, helpful null pointer exceptions, pattern matching for switches, and sealed classes as some of the top new features in Java 17.
3. Enhancements to pseudo-random number generators with a new RandomGenerator interface and refactoring of legacy random classes.
The document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications. It describes how Spring Boot allows creating projects quickly with features like embedded servers and auto-configuration. It then covers how to develop a basic Spring Boot web application including creating the project structure with Maven, adding controllers and properties files, and connecting to databases using Spring Data. Overall, the document provides an overview of Spring Boot and guidance on starting a Spring Boot web application project.
This document provides an overview of developing a web application using Spring Boot that connects to a MySQL database. It discusses setting up the development environment, the benefits of Spring Boot, basic project structure, integrating Spring MVC and JPA/Hibernate for database access. Code examples and links are provided to help get started with a Spring Boot application that reads from a MySQL database and displays the employee data on a web page.
Oracle Java ME Embedded 8.1 Devloper Preview: Introductionterrencebarr
The document discusses Oracle Java ME Embedded 8.1 Developer Preview, which provides support for ARM Cortex-M3/M4 microcontrollers like the Freescale FRDM-K64F board. It allows Java ME applications to run on small embedded and IoT devices with as little as 190KB of RAM. The developer preview offers features for application installation, execution control, networking, file access, device I/O and more. Optimization tips are also provided to help developers design for resource-constrained devices.
Presentation by Ian de Villiers at ZaCon 2 about exploiting java.
This presentation is about instrumenting java applications. it begins with an explanation of what a jar file is. The difficulties in attacking java, such as signing and obfuscation are discussed. How to overcome these difficulties is also discussed. The presentation ends with a walkthrough example of how to instrument a java application.
This presentation illustrates a number of techniques to smuggle and reshape HTTP requests using features such as HTTP Pipelining that are not normally used by testers. The strange behaviour of web servers with different technologies will be reviewed using HTTP versions 1.1, 1.0, and 0.9 before HTTP v2 becomes too popular! Some of these techniques might come in handy when dealing with a dumb WAF or load balancer that blocks your attacks.
Presented @ BSides Manchester 2017 & SteelCon 2017
https://2018.zeronights.ru/en/reports/reverse-proxies-inconsistency/
Modern websites are growing more complex with different reverse proxies and balancers covering them. They are used for various purposes: request routing, caching, putting additional headers, restricting access. In other words, reverse proxies must both parse incoming requests and modify them in a particular way. However, path parsing may turn out to be quite a challenge due to mismatches in the parsing of different web servers. Moreover, request converting may imply a wide range of different consequences from a cybersecurity point of view. I have analyzed different reverse proxies with different configurations, the ways they parse requests, apply rules, and perform caching. In this talk, I will both speak about general processes and the intricacies of proxy operation and demonstrate the examples of bypassing restrictions, expanding access to a web application, and new attacks through the web cache deception and cache poisoning.
This document discusses Java serialization vulnerabilities and mitigations. It introduces Java serialization, attack vectors like serialization gadgets and deserialization endpoints, and demonstrates denial of service attacks. It covers mitigations such as validating class names during deserialization, but notes this approach can be bypassed. It proposes a new concept of also validating methods during deserialization. The goal is to help fix issues with the Java serialization process.
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
The hidden danger of Java deserialization vulnerabilities – which often lead to remote code execution – has gained extended visibility in the past year. The issue has been known for years; however, it seems that the majority of developers were unaware of it until recent media coverage around commonly used libraries and major products. This talk aims to shed some light about how this vulnerability can be abused, how to detect it from a static and dynamic point of view, and -- most importantly -- how to effectively protect against it. The scope of this talk is not limited to the Java serialization protocol but also other popular Java libraries used for object serialization.
The ever-increasing number of new vulnerable endpoints and attacker-usable gadgets has resulted in a lot of different recommendations on how to protect your applications, including look-ahead deserialization and runtime agents to monitor and protect the deserialization process. Coming at the problem from a developer’s perspective and triaging the recommendations for you, this talk will review existing protection techniques and demonstrate their effectiveness on real applications. It will also review existing techniques and present new gadgets that demonstrates how attackers can actually abuse your application code and classpath to craft a chain of gadgets that will allow them to compromise your servers.
This talk will also present the typical architectural decisions and code patterns that lead to an increased risk of exposing deserialization vulnerabilities. Mapping the typical anti-patterns that must be avoided, through the use of real code examples we present an overview of hardening techniques and their effectiveness. The talk will also show attendees what to search the code for in order to find potential code gadgets the attackers can leverage to compromise their applications. We’ll conclude with action items and recommendations developers should consider to mitigate this threat.
--
This talk was presented by Alvaro Muñoz & Christian Schneider at the OWASP AppSecEU 2016 conference in Rome.
remote-method-guesser - BHUSA2021 Arsenal Tobias Neitzel
Slides from the Black Hat USA 2021 Arsenal presentation of remote-method-guesser.
Recording: https://youtu.be/t_aw1mDNhzI
remote-method-guesser (rmg) is a Java RMI vulnerability scanner that checks for common misconfigurations on Java RMI endpoints.
It combines well known techniques for RMI enumeration with detection capabilities for lesser known attack vectors that are often missed.
Apart from detecting RMI vulnerabilities, remote-method-guesser can perform attack operations for each supported vulnerability type.
The following list shows some of it's currently supported operations:
* List available bound names and their interface class names
* List codebase locations (if exposed by the remote server)
* Check for known vulnerabilities (enabled class loader, missing JEP290, JEP290 bypasses, localhost bypass (CVE-2019-2684))
* Identify existing remote methods by using a bruteforce (wordlist) approach
* Call remote methods with user specified arguments (no manual coding required)
* Call remote methods with ysoserial gadgets within the arguments
* Call remote methods with a client specified codebase (remote class loading attack)
* Perform DGC, registry and activator calls with ysoserial gadgets or a client specified codebase
* Perform bind, rebind and unbind operations against an RMI registry
* Bypass registry deserialization filters by using An Trinhs registry bypass
* Enumerate the unmarshalling behavior of java.lang.String
* Create Java code dynamically to invoke remote methods manually
Spring Data is a high level SpringSource project whose purpose is to unify and ease the access to different kinds of persistence stores, both relational database systems and NoSQL data stores.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
The java persistence API provides a specification for persisting, reading, and managing data from your java object to your relational tables in the database. JPA specifies the set of rules and guidelines for developing interfaces that follow standards.
React Hooks are functions that allow you to "hook into" React state and lifecycle features from function components. Some key hooks include useState, useContext, and useEffect. Hooks make it easier to reuse stateful logic between components and simplify component logic. However, hooks should only be called from React functions and not in loops, conditions, or nested functions. Overall, hooks provide more powerful features to function components and opportunities to write code in a more functional style.
HTTP Request Smuggling via higher HTTP versionsneexemil
This document summarizes HTTP request smuggling vulnerabilities. It explains how an attacker can craft a single HTTP request that is parsed differently by the frontend and backend servers, allowing the backend to interpret additional hidden requests. Several exploitation techniques and detection methods are described, including issues that can arise with HTTP/1, HTTP/2, and protocols like WebSockets. Automated testing tools have been developed but further research is still needed to fully understand and prevent these attacks.
This document provides an overview of Java I/O including different types of I/O, how Java supports I/O through streams and classes like File, serialization, compression, Console, and Properties. It discusses byte and character streams, buffered streams, reading/writing files, and preferences. Key points are that Java I/O uses streams as an abstraction, byte streams operate on bytes while character streams use characters, and buffered streams improve efficiency by buffering reads/writes.
Pentesting Rest API's by :- Gaurang BhatnagarOWASP Delhi
Brief overview of API
▸ Fingerprinting & Discovering API
▸ Authentication attacks on API (JWT)
▸ Authorization attacks on API (OAuth)
▸ Bruteforce attacks on API
▸ Attacking Dev/Staging API
▸ Traditional attacks
Hibernate is an object-relational mapping tool for Java that allows developers to persist Java objects to a relational database in a transparent way. It provides transparent persistence without needing to flatten objects or write database specific code. Hibernate uses an object-oriented query language that closely resembles SQL to retrieve and manipulate persisted objects.
Hibernate is an object-relational mapping tool that allows developers to interact with a relational database (such as MySQL) using object-oriented programming. It provides functionality for persisting Java objects to tables in a database and querying those objects using HQL or SQL. Hibernate utilizes XML mapping files or annotations to define how Java classes map to database tables. A typical Hibernate application includes entity classes, mapping files, configuration files, and a controller class to manage persistence operations.
The document summarizes some of the key new features in Java 17 including:
1. Long-term support for Java 17 which will be available in September 2021 and include features like records, text blocks, and enhanced null pointer exceptions.
2. Records, text blocks, helpful null pointer exceptions, pattern matching for switches, and sealed classes as some of the top new features in Java 17.
3. Enhancements to pseudo-random number generators with a new RandomGenerator interface and refactoring of legacy random classes.
The document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications. It describes how Spring Boot allows creating projects quickly with features like embedded servers and auto-configuration. It then covers how to develop a basic Spring Boot web application including creating the project structure with Maven, adding controllers and properties files, and connecting to databases using Spring Data. Overall, the document provides an overview of Spring Boot and guidance on starting a Spring Boot web application project.
This document provides an overview of developing a web application using Spring Boot that connects to a MySQL database. It discusses setting up the development environment, the benefits of Spring Boot, basic project structure, integrating Spring MVC and JPA/Hibernate for database access. Code examples and links are provided to help get started with a Spring Boot application that reads from a MySQL database and displays the employee data on a web page.
Oracle Java ME Embedded 8.1 Devloper Preview: Introductionterrencebarr
The document discusses Oracle Java ME Embedded 8.1 Developer Preview, which provides support for ARM Cortex-M3/M4 microcontrollers like the Freescale FRDM-K64F board. It allows Java ME applications to run on small embedded and IoT devices with as little as 190KB of RAM. The developer preview offers features for application installation, execution control, networking, file access, device I/O and more. Optimization tips are also provided to help developers design for resource-constrained devices.
Presentation by Ian de Villiers at ZaCon 2 about exploiting java.
This presentation is about instrumenting java applications. it begins with an explanation of what a jar file is. The difficulties in attacking java, such as signing and obfuscation are discussed. How to overcome these difficulties is also discussed. The presentation ends with a walkthrough example of how to instrument a java application.
Flash security past_present_future_final_enSunghun Kim
The document discusses a vulnerability in the ActionScript Virtual Machine 2 (AVM2) bytecode verifier that was discovered in October 2012. By examining the open source Tamarin project code, which implements AVM2, the author found that a bounds check on local register parameters was incorrectly omitted from the bytecode verification of declocal and inclocal opcodes. This omission allowed arbitrary register values to be used, potentially leading to code execution. The vulnerability was introduced in November 2011 by moving the bounds check to within an #ifdef block that is never executed in the released Flash Player.
The document discusses OpenVINOTM, an Intel toolkit that provides high performance computer vision and deep learning inference capabilities. It allows building applications that leverage OpenCV, deep learning models, and heterogeneous execution across CPU, GPU, FPGA and VPU hardware. Key benefits include portable deployment across platforms with a minimal footprint, optimized performance on Intel hardware, and pre-trained models for common tasks like object detection. The toolkit includes libraries, tools for model optimization, and samples to help developers build and deploy high performance computer vision and deep learning applications.
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Bart Jonkers
Developing applications on devices or gateways connected to the internet of things (IoT) requires rethinking developer productivity. This session shows how Java technology from Oracle and the Reactive Blocks development tool and methodology from Bitreactive allow developers to be quicker and more efficient to build edge intelligence applications with a need to become experts in hardware or communications technologies.
(Some technologies supported: MQTT, AMQP, BLE, Zigbee, OPC-UA, Paho, Californium, Kura, Coap, JSON-RPC, LoRA, Bluetooth, IBM Bluemix, IBM IoT Foundation, Microsoft Azure, AWS, Oracle IoT Cloud Service, GE Predix, GE Predix machine, Xively, Solair, Geofencing, Modbus, GPIO, RaspberryPI, XMPP, Eurotech Reliagate, Eurotech ESF, PLC, SCADA, DELL 5000, Intel IoT gateway, Multitech conduit, Java SE, openJDK, OSGi, Kura, Eclipse IoT, Embedded Java, Oauth 2.0, alternative to Node Red)
This document provides an overview of architectural considerations for smart object networking. It discusses the history behind the document and parallel work done in other standards bodies. It then covers four common communication patterns for smart objects (device-to-device, device-to-cloud, device-to-application layer gateway, and back-end data sharing). The document summarizes key areas that lack standardization and discusses security recommendations from the IETF.
Synopsis on online shopping by sudeep singhSudeep Singh
This document provides an overview of an online shopping project developed using Java. It discusses the aims of improving customer and vendor services. It maintains customer payment and product details. The key features are high accuracy, flexibility and easy availability. It uses database tables to represent entities and relationships. The project allows customers to shop online and buy items which are then shipped to the submitted address. It has modules for customers and stores.
This document discusses techniques for attacking and reversing Java applications. It begins by introducing Java archive (JAR) files, which contain compiled Java classes and can be easily extracted. It then outlines some common difficulties in reversing Java applications, such as many classes and libraries, non-clean decompilation, and obfuscated code. The document presents methods for defeating Java application signing and modifying classes. It also introduces newer attack techniques using tools like Burp and JavaSnoop that target serialized objects without requiring reversing. In the end, it claims that both traditional reversing and newer attack methodologies can enable attacking Java applications.
Building Blocks for Private and Hybrid CloudsRightScale
Learn key considerations about building a private or hybrid cloud, including selecting hardware, cloud infrastructure software, hosting vendors, systems integrators, and reference architectures.
The document discusses attacking websites using HTML5 features and capabilities. It introduces HTML5 and some of its new tags, attributes, and APIs that can be abused for attacks like cross-site scripting and bypassing input filters. Specific techniques demonstrated include bypassing blacklists using new HTML5 event attributes and tags, setting up reverse web shells using cross-origin requests, and clickjacking via the drag-and-drop API. The talk also covers poisoning the HTML5 application cache and exploiting client-side file includes through cross-origin XMLHttpRequests. Demo attacks are promised to illustrate these HTML5-based vulnerabilities.
Ebs performance tuning session feb 13 2013---Presented by OracleAkash Pramanik
This document discusses performance tuning of Oracle E-Business Suite applications. It covers defining and isolating performance issues, approaches to investigating issues such as using SQL traces and TKPROF output, and AWR/Statspack reports. Best practices for maximizing performance are also presented, including upgrading components, applying recommended patches, performing regular health checks, and tuning the database, forms server, concurrent manager, and applications. The session agenda includes applications architecture, defining and isolating issues, SQL tracing, AWR reports, and best practices.
Presentation of ActiveStates micro-cloud solution Stackato at Open Source Days 2012.
Stackato is a cloud solution from renowned ActiveState. It is based on the Open Source CloudFoundry and offers a serious cloud solution for Perl programmers, but also supports Python, Ruby, Node.js, PHP, Clojure and Java.
Stackato is very strong in the private PaaS area, but do also support as public PaaS and deployment onto Amazon's EC2.
The presentation will cover basic use of Stackato and the reason for using a PaaS, public as private. Stackato can also be used as a micro-cloud for developers supporting vSphere, VMware Fusion, Parallels and VirtualBox.
Stackato is currently in public beta, but it is already quite impressive in both features and tools. Stackato is not Open Source, but CloudFoundry is and Stackato offers a magnificent platform for deployment of Open Source projects, sites and services.
ActiveState has committed to keeping the micro-cloud solution free so it offers an exciting capability and extension to the developers toolbox and toolchain.
More information available at: https://logiclab.jira.com/wiki/display/OPEN/Stackato
This document outlines the history and design proposals of Apache Drill from the OpenDremel team. It describes OpenDremel starting in 2010 with an initial implementation based on the Dremel paper. Over time, the design was found to be naive and was restarted with a new architecture called Dazo inspired by BigQuery. The document proposes several design tenets for Apache Drill including supporting multi-tenancy, being flexible and customizable, being efficient through the use of ZeroVM for sandboxing, and having a suggested architecture with a browser frontend and multi-tenant backend.
This document provides an introduction to reverse engineering and discusses cracking Windows applications. It begins with a disclaimer that reverse engineering copyrighted material is illegal. It then defines reverse engineering as analyzing a system to understand its structure and function in order to modify or reimplement parts of it. The document discusses reasons for learning reverse engineering like malware analysis, bug fixing, and customizations. It outlines some of the history of reverse engineering in software development. The remainder of the document focuses on tools and techniques for reverse engineering like PE identification, decompilers, disassemblers, debuggers, patching applications in OllyDbg, and analyzing key generation and phishing techniques.
Refactor your Java EE application using Microservices and Containers - Arun G...Codemotion
Codemotion Rome 2015 - This talk will provide a quick introduction to Docker images (build time), containers (run time), and registry (distribution). It shows how to take an existing Java EE application and package it as a monolithic application as a single Docker image. The application will then be refactored in to multiple microservices and assembled together using orchestration. Unit and integration testing of such applications will be discussed and shown as well. Design patterns and anti-patterns that show how to create cluster of such applications will be demonstrated and discussed.
Lucene, Solr and java 9 - opportunities and challengesCharlie Hull
Apache Lucene and Solr needed to be updated to work with Java 9's new module system. This introduced challenges around strong encapsulation and reflective access. The talk discussed changes like compact strings and performance improvements from intrinsics and the G1 garbage collector. It also recommended using multi-release JARs to include Java 9 specific implementations of utils classes for compatibility. Migrating to Java 9 could improve security and performance in some cases for Elasticsearch users.
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...JAXLondon2014
This document discusses pushing Java EE outside of the traditional enterprise space. It provides an overview of using Java EE technologies like JSON-P, Java API for WebSocket, and Contexts and Dependency Injection for building a home automation system. Examples are given of using these technologies to build a home automation backend that connects to devices using protocols like Z-Wave and KNX, and a JavaScript frontend that receives updates over WebSocket. The document compares Z-Wave and KNX standards for home automation and discusses how technologies like JSON-P and WebSocket enable better connectivity between devices, backends, and clients.
Stackato is a PaaS cloud platform from ActiveState that allows developers to easily deploy applications to the cloud. It supports multiple languages including Perl, Ruby, and JavaScript. The presentation demonstrated deploying simple Perl apps to Stackato using the Mojolicious framework. Key benefits of Stackato include minimal differences between development and production environments, one-click deployments, and allowing developers to manage infrastructure. ActiveState is very open and provides documentation, examples, and a community forum to support Stackato users.
SIOS is a software company that was founded in 1999 with offices worldwide. They provide software solutions for virtualizing and automating data centers using open source technologies. Their goal is to help customers reduce costs while improving scale, performance, and availability through a software-defined approach. This involves virtualizing storage, networking, and other infrastructure components and managing them through APIs and software stacks.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersLynda Kane
Slide Deck from Automation Dreamin'2022 presentation Sharing Some Gratitude with Your Users on creating a Flow to present a random statement of Gratitude to a User in Salesforce.
Automation Hour 1/28/2022: Capture User Feedback from AnywhereLynda Kane
Slide Deck from Automation Hour 1/28/2022 presentation Capture User Feedback from Anywhere presenting setting up a Custom Object and Flow to collection User Feedback in Dynamic Pages and schedule a report to act on that feedback regularly.
Hands On: Create a Lightning Aura Component with force:RecordDataLynda Kane
Slide Deck from the 3/26/2020 virtual meeting of the Cleveland Developer Group presentation on creating a Lightning Aura Component using force:RecordData.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Buckeye Dreamin 2024: Assessing and Resolving Technical DebtLynda Kane
Slide Deck from Buckeye Dreamin' 2024 presentation Assessing and Resolving Technical Debt. Focused on identifying technical debt in Salesforce and working towards resolving it.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Ad
Black Hat EU 2010 - Attacking Java Serialized Communication
1. ATTACK & DEFENSE
labs
Attacking JAVA Serialized
Communication
Manish S. Saindane
2. Who am I ?
• Security Researcher
– Working as a Lead Application Security Specialist for an
international software development and services company
– Likes to research on security issues in software
– Follow me @ blog.andlabs.org
ATTACK & DEFENSE
labs
Black Hat Europe 2010 2
3. Agenda
• JAVA Object Serialization Basics
• The Current Scenario & Challenges Faced
• Suggested Solution
• Demo
ATTACK & DEFENSE
labs
Black Hat Europe 2010 3
4. Objectives
• Simplify the penetration testing process of thick
clients and make it completely seamless
• Enable the pentester to edit JAVA objects in the same
way that a developer would
• Enable all of this using the currently available tools
ATTACK & DEFENSE
labs
Black Hat Europe 2010 4
6. JAVA Object Serialization
• Protocol implemented by SUN for converting JAVA
objects into a stream of bytes to be
– Stored in a file
– Transmitted across a network
• The serialized form contains sufficient information
such that it can be restored to an identical clone of
the original JAVA object
ATTACK & DEFENSE
labs
Black Hat Europe 2010 6
7. JAVA Object Serialization cont’d
• Objects can be written using the writeObject()
method provided by the ObjectOutput interface
• Objects can be retrieved using the readObject()
method provided by the ObjectInput interface
• The ObjectOutputStream and ObjectInputStream
classes implement the above interfaces respectively
ATTACK & DEFENSE
labs
Black Hat Europe 2010 7
8. JAVA Object Serialization cont’d
• JAVA Object Serialized data can be easily identified
by the 0xac 0xed stream header (also called as the
magic number)
ATTACK & DEFENSE
labs
Black Hat Europe 2010 8
9. JAVA Object Serialization cont’d
• If the object in the stream is a java.lang.String, it
is encoded in a modified UTF-8 format and preceded
by a 2-byte length information
• Make sure you read section 5.6 of the JAVA Object
Serialization specification before modifying the
objects
ATTACK & DEFENSE
labs
Black Hat Europe 2010 9
10. The Current Scenario
&
Challenges Faced
ATTACK & DEFENSE
labs
Black Hat Europe 2010 10
11. So what do we have ?
• Current tools or application interception proxies
allow very limited functionality to test such data
• Not as easy or straightforward as testing regular web
applications sending data in request parameters
• Some work has been done in the past to improve the
situation. Let’s have a look at some of these methods
ATTACK & DEFENSE
labs
Black Hat Europe 2010 11
12. Modifying Raw HEX
• One of the most basic techniques is to modify the
raw HEX data using a HEX editor
• This is very limited and can be used to modify simple
integers or string values in the raw data
• Isn’t really practical to inspect or modify complex
objects
ATTACK & DEFENSE
labs
Black Hat Europe 2010 12
13. Modifying Raw HEX cont’d
• Modifying raw data may result in a corrupted
Serialized byte stream
• Make sure to modify the length information if you
edit some string value as discussed earlier
• Existing interception proxies usually have very basic
HEX editors hence working with them becomes
difficult
ATTACK & DEFENSE
labs
Black Hat Europe 2010 13
14. Decompiling Class Files
• This can allow us to carefully study the application
logic
• Hardcoded values, sensitive functions, crypto
algorithms, etc. can be identified and used for
attacks
• Decompiling may not be straight forward for
applications making use of strong obfuscation
techniques ATTACK & DEFENSE
labs
Black Hat Europe 2010 14
15. Decompiling Class Files cont’d
• Popular decompilers like JAD, JD, Jode and DJ Java
Decompiler may be used for simple obfuscated
classes
• Editing signed jars may be difficult
ATTACK & DEFENSE
labs
Black Hat Europe 2010 15
16. Assessing JAVA Clients with BeanShell
• This was a technique developed by Stephen D’ Vires
from Corsaire
• It made use of the BeanShell scripting language that
was plugged into the client
• Could be handy in identifying client-side security
controls
ATTACK & DEFENSE
labs
Black Hat Europe 2010 16
17. Assessing JAVA Clients with BeanShell cont’d
• The pentester must be comfortable writing JAVA
code to use this technique
• The scope of this technique is too broad for our use
i.e. to tamper the serialized data
ATTACK & DEFENSE
labs
Black Hat Europe 2010 17
18. Runtime Protocol Analysis (RPA)
• This was presented by Shay Chen from Hacktics at an
OWASP Israel meet
• He spoke about creating a custom runtime protocol
analyzer to read data from JAVA serialized objects
• The object once read, could then be analyzed and
modified
ATTACK & DEFENSE
labs
Black Hat Europe 2010 18
19. Runtime Protocol Analysis (RPA) cont’d
• The way this works is:
– Sniff traffic over the network
– Split each request/response into individual packets
– Modify the destination URL or Host within the packet with
a HEX editor to a local server (protocol analyzer)
– Send it to the Protocol Analyzer using netcat
• The protocol analyzer is customized code written to
suit the protocol used to transfer the object
ATTACK & DEFENSE
labs
Black Hat Europe 2010 19
20. Runtime Protocol Analysis (RPA) cont’d
• This only drawback is that it is not completely
seamless
– Too many steps involved
– Takes some time to setup
– The protocol analyzer has to be modified and compiled
each time for different scenarios
• But this is the technique that suffices our needs to a
certain extent
ATTACK & DEFENSE
labs
Black Hat Europe 2010 20
22. Solution
Thick Client Interception Application
Application Proxy Server
JRuby Shell
ATTACK & DEFENSE
labs
Black Hat Europe 2010 22
23. Setup Needed
• Tools we need
– JRuby version 1.4.0
– BurpSuite version 1.2.x
– Buby version 1.8.x
– Any text editor
ATTACK & DEFENSE
labs
Black Hat Europe 2010 23
24. Why JRuby ?
• Why not a pure Java plug-in. Why JRuby?
– Easier syntax, hence easy to learn
– Can call almost all JAVA libraries
– Provides an interactive shell (jirb)
– Dynamic Type Language
ATTACK & DEFENSE
labs
Black Hat Europe 2010 24
25. Advantages
• Adds the ability of modifying JAVA objects on-the-fly
• Ease of use – makes the whole process seamless
• Hooks a JAVA development environment in your
interception proxy
• Can be used for other stuff too ….. Just be a bit
creative ;)
ATTACK & DEFENSE
labs
Black Hat Europe 2010 25
26. Demo
ATTACK & DEFENSE
labs
Black Hat Europe 2010 26
27. References
• Chen, S. (2008). Achilles’ heel – Hacking Through Java Protocols. OWASP Israel.
Herzliya.
• Monti, E. (n.d.). Buby. Retrieved from http://emonti.github.com/buby/
• Sun Microsystems. (n.d.). Java Object Serialization Specification. Retrieved from
sun.com:
http://java.sun.com/javase/6/docs/platform/serialization/spec/serialTOC.html
• Vries, S. d. (2006, June 15). Assessing JAVA Clients with the BeanShell. Retrieved
from Corsaire: http://research.corsaire.com/whitepapers/060816-assessing-java-
clients-with-the-beanshell.pdf
ATTACK & DEFENSE
labs
Black Hat Europe 2010 27
28. Big Thanks To
• For the work done that helped me build this:
– Shay Chen
– Eric Monti
• And of course for testing & review:
– Lavakumar Kuppan
– Luca Carettoni
If I have seen further it is only by standing on the shoulders of giants.
- Sir Isaac Newton
ATTACK & DEFENSE
labs
Black Hat Europe 2010 28
29. Questions ??
ATTACK & DEFENSE
labs
Black Hat Europe 2010 29
30. Thank You
Contact me:
manish (-at-) andlabs.org
ATTACK & DEFENSE
labs
Black Hat Europe 2010 30