SlideShare una empresa de Scribd logo
1 de 24
• What is Unicode?
• How Apps deal with Unicode
• Unicode Transformation Attack
• Real World Examples
• How To Manipulate Applications
• Remediation
<scrİpt> <script>
< <
g g
• Unicode lets computer systems support more
languages, allowing for world wide use
• Stores characters with multiple bytes
• It provides a unique number for every character,
no matter what the platform, no matter what the
program, no matter what the language
• Every character has a unique number
• A = U+0041
• < = U+003C
• Classic example: c0rn ;)
o=U+006f, ο=U+03bf, о=U+043e
• Latin Small o, Greek Small O, Cyrillic Small
Letter o
• Searches for the above can turn up different
results in Google
• Data can be entered using Unicode to disguise
malicious code and permit various Unicode
transformation issues, such as Best-Fit
Mapping
• Occurs when a character X gets transformed to
an entirely different character Y.
• Character X in the source encoding doesn't exist
in the destination encoding, so the App
attempts to find a best match.
• So the characters are transcoded between
Unicode and another encoding language.
Bypass filters:
• Lowercase operation on the input after
filtering.
• The string "script" is prevented by the filter,
but the string "scrİpt" is allowed.
• Possibility of using many lookalikes:
AΑАᐱᗅᗋᗩᴀᴬ⍲A
• Unicode character U+FF1C FULLWIDTH LESS-THAN SIGN
(<) transformed into U+003C LESS-THAN SIGN (<) due
to best-fit.
• Unicode Transformation for Cross-Site Scripting or SQL
Injection;
• %C0%BE = >
• %C0%BC = <
• URL encoded GET input locale is set to
acux5291%C0%BEz1%C0%BCz2a%90bcxuca5291
• Here is a part of the HTTP request.
https://vendors-unit.prudential.com/OA_HTML/help?locale=
acux5291%C0%BEz1%C0%BCz2a%90bcxuca5291
&group=FND:LIBRARY:US&topic=US/FND/@ICX_FWK_LABS_H
OME_PAGE
• In the HTTP response, this character was converted to
the short form (<)
<input type="hidden" value="acux5291&gt;z1<z2a&#65533;bcxuca5291" name="group">
• Unicode character
acux5291%C0%BEz1%C0%BCz2a%90bcxuca5291
is transformed into
acux5291&gt;z1<z2a&#65533;bcxuca5291
• ?locale=%c0%bcscript%3E&group=FND:LIBRARY:US&topic=US/FND/@ICX
_FWK_LABS_HOME_PAGE
• ?locale=%3E&group=FND:LIBRARY:US&topic=US/FND/@ICX_FWK_LABS_H
OME_PAGE
• ?locale=%c0%bcscript/%3E&group=FND:LIBRARY:US&topic=US/FND/@IC
X_FWK_LABS_HOME_PAGE
• Supported Unicode usernames.
• Existing user account bigbird hijacked.
• Attacker created a new Spotify account with username
ᴮᴵᴳᴮᴵᴿᴰ (string u’u1d2eu1d35u1d33u1d2eu1d35u1d3fu1d30′).
• Send a request for a password reset for your new account.
• A password reset link is sent to the email for your new account. Use
it to change the password.
• Instead of logging into that account with username ᴮᴵᴳᴮᴵᴿᴰ, logged
with username bigbird with the new password.
• Account compromised.
• The canonical_username function only implemented
the first time. Function like “toLower” implemented.
• Users signs up with username BigBird, normalized to
bigbird.
• Another user signs up as ᴮᴵᴳᴮᴵᴿᴰ, which also gets
normalized to BIGBIRD the first time, but bigbird the
next time.
• ᴮᴵᴳᴮᴵᴿᴰ requests a password reset email, but with it can
reset bigbird’s account.
• Use Canonicalizing
– Important aspect of input sanitization
– Converting data with various possible
representations into a standard "canonical"
representation deemed acceptable by the
application mapping all characters to lower case
– Treat “BigBird”, “ ᴮᴵᴳᴮᴵᴿᴰ ” and “bigbird” as the same
by Canonicalizing as they would all be mapped to
‘bigbird’
• The vulnerability was noticed when the compromised
accounts started RETWEETING a tweet with a "♥" symbol
that was followed by a string of code/Parameter.
• Users didn’t even have to click on the tweet sent out by the
Twitter account @derGeruhn. Just the act of viewing the
tweet would cause the user to automatically retweet
• Affected accounts also involuntarily re-tweeted a cross-site
scripting (XSS) code as a result of the vulnerability
• That tweet hit the max re-tweet
over 84,000 times
• TweetDeck didn’t escape HTML-chars if a Unicode-
char is in the tweet -text
• The Unicode-Heart (which gets replaced with an
image by TweetDeck) somehow prevents the Tweet
from being HTML-escaped.
• TweetDeck was not supposed to display this as an
image.
Because it's simple Text,
which should be escaped to
"&amp;hearts;".
1. When converting strings used in security-
sensitive operations, use documented options
which prevent the use of best-fit mappings.
2. A suitable canonical form should be chosen and
all user input canonicalized into that form before
any authorization decisions are performed.
3. Security checks should be carried out after UTF-
8 decoding is completed.
X is only allowed if X==canonical(X)
• Here’s a chart with all the new emoji in yellow
including my favorite “1F595” which will be a
hit on Twitter.
• http://www.unicode.org/charts/PDF/Unicode-
7.0/U70-1F300.pdf
• http://www.rishida.net/tools/conversion/
• http://www.fileformat.info/info/unicode/char/a.htm
• http://www.panix.com/~eli/unicode/convert.cgi?text=
Unicode
• http://unicode-table.com/en/
• http://www.unicode.org/charts/PDF/Unicode-7.0/U70-
1F300.pdf
Unicode

Más contenido relacionado

La actualidad más candente

Microprocessor 80386
Microprocessor 80386Microprocessor 80386
Microprocessor 80386
yash sawarkar
 
Cache memory
Cache memoryCache memory
Cache memory
Anuj Modi
 

La actualidad más candente (20)

Instruction Set Architecture
Instruction Set ArchitectureInstruction Set Architecture
Instruction Set Architecture
 
Microprocessor 80386
Microprocessor 80386Microprocessor 80386
Microprocessor 80386
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
TCP/ IP
TCP/ IP TCP/ IP
TCP/ IP
 
Cache memory
Cache memoryCache memory
Cache memory
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)
 
Assembly language programming_fundamentals 8086
Assembly language programming_fundamentals 8086Assembly language programming_fundamentals 8086
Assembly language programming_fundamentals 8086
 
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
Finite Automata: Deterministic And Non-deterministic Finite Automaton (DFA)
 
Ip address
Ip addressIp address
Ip address
 
Wireless Markup Language
Wireless Markup LanguageWireless Markup Language
Wireless Markup Language
 
Compiler construction tools
Compiler construction toolsCompiler construction tools
Compiler construction tools
 
Web Security
Web SecurityWeb Security
Web Security
 
Stack organization
Stack organizationStack organization
Stack organization
 
Socket Programming
Socket ProgrammingSocket Programming
Socket Programming
 
Processes and threads
Processes and threadsProcesses and threads
Processes and threads
 
Computer Organisation & Architecture (chapter 1)
Computer Organisation & Architecture (chapter 1) Computer Organisation & Architecture (chapter 1)
Computer Organisation & Architecture (chapter 1)
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of Compilers
 
Register organization, stack
Register organization, stackRegister organization, stack
Register organization, stack
 
OSI Model
OSI ModelOSI Model
OSI Model
 
Toy compiler
Toy compilerToy compiler
Toy compiler
 

Similar a Unicode

Open source security
Open source securityOpen source security
Open source security
lrigknat
 
Javascript done right - Open Web Camp III
Javascript done right - Open Web Camp IIIJavascript done right - Open Web Camp III
Javascript done right - Open Web Camp III
Dirk Ginader
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
Sang Don Kim
 
Chapter-introduction about java programming
Chapter-introduction about java programmingChapter-introduction about java programming
Chapter-introduction about java programming
DrRajeshkumarPPatel
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
Ganesh Kondal
 

Similar a Unicode (20)

Open source security
Open source securityOpen source security
Open source security
 
International Web Application Development
International Web Application DevelopmentInternational Web Application Development
International Web Application Development
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
 
Writing clean code in C# and .NET
Writing clean code in C# and .NETWriting clean code in C# and .NET
Writing clean code in C# and .NET
 
C for Engineers
C for EngineersC for Engineers
C for Engineers
 
Web Hacking Series Part 4
Web Hacking Series Part 4Web Hacking Series Part 4
Web Hacking Series Part 4
 
Javascript done right - Open Web Camp III
Javascript done right - Open Web Camp IIIJavascript done right - Open Web Camp III
Javascript done right - Open Web Camp III
 
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
 
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
Bot-Tender: A Chat Bot Walks into a Bar (Microsoft Tech Days Sweden 2018)
 
memories of tumblr gear & Tumblrowl
memories of tumblr gear & Tumblrowlmemories of tumblr gear & Tumblrowl
memories of tumblr gear & Tumblrowl
 
Web Hacking Series Part 1
Web Hacking Series Part 1Web Hacking Series Part 1
Web Hacking Series Part 1
 
Raptor codes
Raptor codesRaptor codes
Raptor codes
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
Chapter-introduction about java programming
Chapter-introduction about java programmingChapter-introduction about java programming
Chapter-introduction about java programming
 
Unique Features of SQL Injection in PHP Assignment
Unique Features of SQL Injection in PHP AssignmentUnique Features of SQL Injection in PHP Assignment
Unique Features of SQL Injection in PHP Assignment
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
 
Java EE changes design pattern implementation: JavaDays Kiev 2015
Java EE changes design pattern implementation: JavaDays Kiev 2015Java EE changes design pattern implementation: JavaDays Kiev 2015
Java EE changes design pattern implementation: JavaDays Kiev 2015
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
Ch 13: Attacking Users: Other Techniques (Part 2)
Ch 13: Attacking Users: Other Techniques (Part 2)Ch 13: Attacking Users: Other Techniques (Part 2)
Ch 13: Attacking Users: Other Techniques (Part 2)
 

Más de Ronan Dunne, CEH, SSCP

Cross Domain Hijacking - File Upload Vulnerability
Cross Domain Hijacking - File Upload VulnerabilityCross Domain Hijacking - File Upload Vulnerability
Cross Domain Hijacking - File Upload Vulnerability
Ronan Dunne, CEH, SSCP
 
Cross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement TechniquesCross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement Techniques
Ronan Dunne, CEH, SSCP
 

Más de Ronan Dunne, CEH, SSCP (14)

B wapp – bee bug – installation
B wapp – bee bug – installationB wapp – bee bug – installation
B wapp – bee bug – installation
 
Cross Domain Hijacking - File Upload Vulnerability
Cross Domain Hijacking - File Upload VulnerabilityCross Domain Hijacking - File Upload Vulnerability
Cross Domain Hijacking - File Upload Vulnerability
 
Kali Linux Installation - VMware
Kali Linux Installation - VMwareKali Linux Installation - VMware
Kali Linux Installation - VMware
 
Error codes & custom 404s
Error codes & custom 404sError codes & custom 404s
Error codes & custom 404s
 
Cross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement TechniquesCross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement Techniques
 
ASP.NET View State - Security Issues
ASP.NET View State - Security IssuesASP.NET View State - Security Issues
ASP.NET View State - Security Issues
 
Blind xss
Blind xssBlind xss
Blind xss
 
Ip v4 & ip v6
Ip v4 & ip v6Ip v4 & ip v6
Ip v4 & ip v6
 
Cross site scripting XSS
Cross site scripting XSSCross site scripting XSS
Cross site scripting XSS
 
Apache Multiview Vulnerability
Apache Multiview VulnerabilityApache Multiview Vulnerability
Apache Multiview Vulnerability
 
Content security policy
Content security policyContent security policy
Content security policy
 
Mime sniffing
Mime sniffingMime sniffing
Mime sniffing
 
Qr codes
Qr codesQr codes
Qr codes
 
Click jacking
Click jackingClick jacking
Click jacking
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Unicode

  • 1.
  • 2.
  • 3. • What is Unicode? • How Apps deal with Unicode • Unicode Transformation Attack • Real World Examples • How To Manipulate Applications • Remediation
  • 5. • Unicode lets computer systems support more languages, allowing for world wide use • Stores characters with multiple bytes • It provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language
  • 6. • Every character has a unique number • A = U+0041 • < = U+003C
  • 7. • Classic example: c0rn ;) o=U+006f, ο=U+03bf, о=U+043e • Latin Small o, Greek Small O, Cyrillic Small Letter o • Searches for the above can turn up different results in Google
  • 8. • Data can be entered using Unicode to disguise malicious code and permit various Unicode transformation issues, such as Best-Fit Mapping
  • 9. • Occurs when a character X gets transformed to an entirely different character Y. • Character X in the source encoding doesn't exist in the destination encoding, so the App attempts to find a best match. • So the characters are transcoded between Unicode and another encoding language.
  • 11. • Lowercase operation on the input after filtering. • The string "script" is prevented by the filter, but the string "scrİpt" is allowed. • Possibility of using many lookalikes: AΑАᐱᗅᗋᗩᴀᴬ⍲A
  • 12. • Unicode character U+FF1C FULLWIDTH LESS-THAN SIGN (<) transformed into U+003C LESS-THAN SIGN (<) due to best-fit. • Unicode Transformation for Cross-Site Scripting or SQL Injection; • %C0%BE = > • %C0%BC = <
  • 13. • URL encoded GET input locale is set to acux5291%C0%BEz1%C0%BCz2a%90bcxuca5291 • Here is a part of the HTTP request. https://vendors-unit.prudential.com/OA_HTML/help?locale= acux5291%C0%BEz1%C0%BCz2a%90bcxuca5291 &group=FND:LIBRARY:US&topic=US/FND/@ICX_FWK_LABS_H OME_PAGE
  • 14. • In the HTTP response, this character was converted to the short form (<) <input type="hidden" value="acux5291&gt;z1<z2a&#65533;bcxuca5291" name="group"> • Unicode character acux5291%C0%BEz1%C0%BCz2a%90bcxuca5291 is transformed into acux5291&gt;z1<z2a&#65533;bcxuca5291
  • 16. • Supported Unicode usernames. • Existing user account bigbird hijacked. • Attacker created a new Spotify account with username ᴮᴵᴳᴮᴵᴿᴰ (string u’u1d2eu1d35u1d33u1d2eu1d35u1d3fu1d30′). • Send a request for a password reset for your new account. • A password reset link is sent to the email for your new account. Use it to change the password. • Instead of logging into that account with username ᴮᴵᴳᴮᴵᴿᴰ, logged with username bigbird with the new password. • Account compromised.
  • 17. • The canonical_username function only implemented the first time. Function like “toLower” implemented. • Users signs up with username BigBird, normalized to bigbird. • Another user signs up as ᴮᴵᴳᴮᴵᴿᴰ, which also gets normalized to BIGBIRD the first time, but bigbird the next time. • ᴮᴵᴳᴮᴵᴿᴰ requests a password reset email, but with it can reset bigbird’s account.
  • 18. • Use Canonicalizing – Important aspect of input sanitization – Converting data with various possible representations into a standard "canonical" representation deemed acceptable by the application mapping all characters to lower case – Treat “BigBird”, “ ᴮᴵᴳᴮᴵᴿᴰ ” and “bigbird” as the same by Canonicalizing as they would all be mapped to ‘bigbird’
  • 19. • The vulnerability was noticed when the compromised accounts started RETWEETING a tweet with a "♥" symbol that was followed by a string of code/Parameter. • Users didn’t even have to click on the tweet sent out by the Twitter account @derGeruhn. Just the act of viewing the tweet would cause the user to automatically retweet • Affected accounts also involuntarily re-tweeted a cross-site scripting (XSS) code as a result of the vulnerability • That tweet hit the max re-tweet over 84,000 times
  • 20. • TweetDeck didn’t escape HTML-chars if a Unicode- char is in the tweet -text • The Unicode-Heart (which gets replaced with an image by TweetDeck) somehow prevents the Tweet from being HTML-escaped. • TweetDeck was not supposed to display this as an image. Because it's simple Text, which should be escaped to "&amp;hearts;".
  • 21. 1. When converting strings used in security- sensitive operations, use documented options which prevent the use of best-fit mappings. 2. A suitable canonical form should be chosen and all user input canonicalized into that form before any authorization decisions are performed. 3. Security checks should be carried out after UTF- 8 decoding is completed. X is only allowed if X==canonical(X)
  • 22. • Here’s a chart with all the new emoji in yellow including my favorite “1F595” which will be a hit on Twitter. • http://www.unicode.org/charts/PDF/Unicode- 7.0/U70-1F300.pdf
  • 23. • http://www.rishida.net/tools/conversion/ • http://www.fileformat.info/info/unicode/char/a.htm • http://www.panix.com/~eli/unicode/convert.cgi?text= Unicode • http://unicode-table.com/en/ • http://www.unicode.org/charts/PDF/Unicode-7.0/U70- 1F300.pdf