Cross-Site Scripting
Attacks
on Current Web
Applications
Introduction
 An attacker gets control of the user’s browser

in order to execute a malicious script within
the context of trust of the web application’s site.
 As a result, and if the embedded code is successfully

executed, the attacker might then be able to access,
passively or actively, to any sensitive browser
resource associated to the web application (e.g.,
cookies, session IDs, etc.)
THREATS!!!
 Everything from account

hijacking, changing of
user settings, cookie theft/poisoning, or false
advertising is possible.

 Steal cookies which can then be used to impersonate

customer and have access to their data and privileges.
This is also known as Session Hijacking.
 Redirect the user to another website of their

choosing. Maybe one that may be quite offensive, or one
that attempts to install malware onto users computer;
 Display alternate content on your own website.
History of Attacks
 October 2001, -----Hotmail ---- Remote attacker was

allowed to steal .NET Passport identifiers of
Hotmail’s users by collecting their cookies.

 October 2005, ------ MySpace, utilized by the worm

Samy to propagate itself across MySpace’s user
profiles.

 November 2006,Orkut, was vulnerable to cookie

stealing by simply posting the stealing script into the
attacker’s profile.
Secure coding | XSS Attacks on current Web Applications
Non-Persistent XSS Attack
 User input is reflected immediately

on the page by server-side scripts
without proper sanitization.
 To exploit, the attacker has to

provide the victim with a modified
URL, passing the code to be
inserted as a parameter.
 This attack is done by encoding

data in the URL, thus disguising
the injected code from the user.
Secure coding | XSS Attacks on current Web Applications
Persistent XSS Attacks
Persistent XSS Attacks
 When the data entered by the user are stored

on the server for a certain length of time, the
attack is called "persistent".
 All of the website's users have access to the page

where the harmful code was introduced.
 Commonly found in:

Contact/Feedback
pages, Log viewers, Exception handlers, Chat
applications/Forums, etc.
Secure coding | XSS Attacks on current Web Applications
BACHAA V !!!
Actual Demonstration
No Protection
Data Validation
 Application accepts correct data.
 User data must be validated to ensure it is of the

corrected type, and discarded if it doesn’t pass the
validation process.
 Allow a limited set of special characters.
Preg Match
 Performs a regular expression match.
Output Escaping
 Protects integrity of displayed/output data,
 Should escape the data when presenting it to the

user.
 Prevents the browser from applying any unintended

meaning to any special sequence of characters that
may be found.
htmlspecialchars
Secure coding | XSS Attacks on current Web Applications
Data Sanitization
 Manipulating the data to make sure it is safe.

 Removing any unwanted bits from the data and

normalizing it to the correct form.
Secure coding | XSS Attacks on current Web Applications
Secure coding | XSS Attacks on current Web Applications
htmlentities
 Converts all applicable characters to HTML entities.
 Default value for this argument is ISO-8859-1 in

versions of PHP prior to 5.4.0, and UTF-8 from PHP
5.4.0 onwards.
 ** http://coderstoolbox.net/
Usage of ENT_IGNORE
Available flags constants
ID

Description

ENT_COMPAT

Will convert double-quotes and leave
single-quotes alone.

ENT_QUOTES

Will convert both double and single
quotes.

ENT_NOQUOTES

Will leave both double and single quotes
unconverted.
ID

Flags

FILTER_SANITIZE_EM
AIL

FILTER_SANITIZE_EN
CODED

Remove all characters
except letters, digits
and !#$%&'*+/=?^_`{|}~@.[].

FILTER_FLAG_STRIP_LOW
,
FILTER_FLAG_STRIP_HIG
H,
FILTER_FLAG_ENCODE_L
OW,
FILTER_FLAG_ENCODE_HI
GH

URL-encode string,
optionally strip or
encode special
characters.

Apply addslashes().

FILTER_SANITIZE_MAGIC
_QUOTES
FILTER_SANITIZE_NUMB
ER_FLOAT

Description

FILTER_FLAG_ALLOW_FR
ACTION,
FILTER_FLAG_ALLOW_TH

Remove all characters
except digits, +- and
optionally .,eE.
ID

Flags

FILTER_SANITIZE
_NUMBER_INT

Description

Remove all characters
except digits, plus and
minus sign.

FILTER_SANITIZE
_SPECIAL_CHARS

FILTER_FLAG_STRIP_LOW,
FILTER_FLAG_STRIP_HIGH,
FILTER_FLAG_ENCODE_HIGH

HTMLescape '"<>& and
characters with ASCII
value less than 32,
optionally strip or
encode other special
characters.

FILTER_SANITIZE
_STRING

FILTER_FLAG_NO_ENCODE_Q
UOTES,
FILTER_FLAG_STRIP_LOW,
FILTER_FLAG_STRIP_HIGH,
FILTER_FLAG_ENCODE_LOW,
FILTER_FLAG_ENCODE_HIGH,
FILTER_FLAG_ENCODE_AMP

Strip tags, optionally
strip or encode special
characters.

FILTER_SANITIZE
_STRIPPED

Alias of "string" filter.
ID

Flags

FILTER_SANITIZE_UR
L

Description

Remove all characters
except letters, digits
and $_.+!*'(),{}|^~[]`<>
#%";/?:@&=.

FILTER_UNSAFE_RA
W

FILTER_FLAG_STRIP_LOW Do nothing, optionally
,
strip or encode special
FILTER_FLAG_STRIP_HIG characters.
H,
FILTER_FLAG_ENCODE_L
OW,
FILTER_FLAG_ENCODE_HI
GH,
FILTER_FLAG_ENCODE_A
MP

FILTER_SANITIZE_FU
LL_SPECIAL_CHARS

FILTER_FLAG_NO_ENCOD
E_QUOTES,

Equivalent to
callinghtmlspecialchar
s() withENT_QUOT
ES set. Encoding
quotes can be disabled
Mod Security(Web Application
Firewall)
 Protects against attacks that target websites.
 csrf_protection
 session_hijacking
 comment_spam
 authentication_tracking
 protocol_violations
 sql_injection_attacks
 xss_attacks
 brute_force, and many more
Secure coding | XSS Attacks on current Web Applications
Default
Information Disclosure
Original Contact Information
Original Code
How to change Contact info
 Go to :
• binariesapacheerror
• Open contact.html.var
Modified Code

Change contact information
Disable Apache Signature and/or Apache
Banner
 ADD in httpd.config of apache to remove apache

version disclosure


ServerTokens ProductOnly

 ServerTokens takes 1 argument, 'Prod', 'Major',

'Minor', 'Min', 'OS', or 'Full'""
Before

After
 ADD/replace/change in php.ini to remove php

version disclosure
 expose_php = Off
 display_errors=Off
 register_globals = Off
Secure coding | XSS Attacks on current Web Applications
Disable Version Disclosure

 Go to :
• binariesapacheerrorinclude

• Open bottom.html

By Default
we see this
Original Bottom.html file
Change
Bottom.html
My customized error page !!
Stopping Sensitive file disclosure
 Turn off automatic indexing.
 Instruct Apache to reject all requests for files

matching a series of regular expressions given below.
 Goto httpd.conf file to deny access to . htaccess files.
Protecting bakup files
 Add in httpd.config
 TheFilesMatchdirective only looks at the last part of

the full filename
Disable Directory Indexing
 Listing of files like see in Windows Explorer as

opposed to a web page.
 Attacker can gain valuable information about your
site.
 Files may may include sensitive information, such as
backup script files htaccess files, or text files with
note.
 Can allow access files outside the web root directory,
leading to the stealing of system files.
How to Disable Directory
Listings in Apache
 Navigate to your Apache config file (httpd.conf)
 Find – “Options FollowSymLinks Indexes”
 Replace by – “Options FollowSymLinks”
 Done
 FollowSymLinks makes Apache follow system

symbolic links (shortcuts, if you would) in your file
system.
 Indexes allows access to open folders within your
file system.
Secure coding | XSS Attacks on current Web Applications
Disable powerful functions in php
 Disable functions that may be useful to an attacker

but not necessary to the application.
 Disable execution of OS commands
 Open php.ini and search “disable_functions”.
 Write “shell_exec “ (without comma in front of
disable_functions).
Secure coding | XSS Attacks on current Web Applications
Other functions
 exec, passthru, shell_exec, system, proc_open,

popen, curl_exec, curl_multi_exec, pcntl_exec,
dl".
 If the application needs to execute OS commands,

it should use "pcntl_exec", because it provides
better abstraction of parameters than the others.
References
 http://php.net/manual/en/filter.filters.sanitize.php
 http://www.sitepoint.com/php-security-cross-site-

scripting-attacks-xss/
Emailshubham.sharma3005@gmail.com
Phone- +91-99300-53215

Thank You !!

More Related Content

PDF
XSS Injection Vulnerabilities
PPTX
Xss what the heck-!
PPT
Identifying Cross Site Scripting Vulnerabilities in Web Applications
PPTX
Cross site scripting
PDF
The Cross Site Scripting Guide
PPTX
Cross Site Scripting Defense Presentation
PPTX
Reflective and Stored XSS- Cross Site Scripting
XSS Injection Vulnerabilities
Xss what the heck-!
Identifying Cross Site Scripting Vulnerabilities in Web Applications
Cross site scripting
The Cross Site Scripting Guide
Cross Site Scripting Defense Presentation
Reflective and Stored XSS- Cross Site Scripting

What's hot (20)

PPTX
Cross site scripting
PPTX
Cross Site Scripting(XSS)
PPTX
Cross-Site Scripting (XSS)
PPTX
Cross Site Scripting (XSS)
PPTX
XSS- an application security vulnerability
PDF
Cross site scripting attacks and defenses
PPTX
Cross Site Scripting
PDF
XSS-Alert-Pentration testing tool
PPT
Xss talk, attack and defense
PPTX
Cross site scripting (xss)
PDF
Cross site scripting
PPT
Cross site scripting (xss)
PDF
Introduction to Cross Site Scripting ( XSS )
PDF
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
PPTX
Xss (cross site scripting)
PPTX
Deep understanding on Cross-Site Scripting and SQL Injection
PPTX
What is xss, blind xss and xploiting google gadgets
KEY
Cross Site Scripting - Mozilla Security Learning Center
Cross site scripting
Cross Site Scripting(XSS)
Cross-Site Scripting (XSS)
Cross Site Scripting (XSS)
XSS- an application security vulnerability
Cross site scripting attacks and defenses
Cross Site Scripting
XSS-Alert-Pentration testing tool
Xss talk, attack and defense
Cross site scripting (xss)
Cross site scripting
Cross site scripting (xss)
Introduction to Cross Site Scripting ( XSS )
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Xss (cross site scripting)
Deep understanding on Cross-Site Scripting and SQL Injection
What is xss, blind xss and xploiting google gadgets
Cross Site Scripting - Mozilla Security Learning Center
Ad

Viewers also liked (6)

PDF
Digital Advertising, Privacy and User-tracking Methods
PDF
OWF14 - Big Data Track : Take back control of your web tracking Go further by...
PDF
Online Privacy
PPTX
Internet Privacy
PPTX
Web Browsers
PPTX
Web application attacks
Digital Advertising, Privacy and User-tracking Methods
OWF14 - Big Data Track : Take back control of your web tracking Go further by...
Online Privacy
Internet Privacy
Web Browsers
Web application attacks
Ad

Similar to Secure coding | XSS Attacks on current Web Applications (20)

PPTX
Secure Coding
ODP
Security In PHP Applications
PPTX
04. xss and encoding
PPT
Intro to Web Application Security
DOCX
logout.php Session Data after Logout Username Email . $_.docx
PPTX
webapplicationattacks-101005070110-phpapp02.pptx
PPT
4.Xss
PPSX
Web Security
PPT
Why You Need A Web Application Firewall
PPTX
Website hacking and prevention (All Tools,Topics & Technique )
PPTX
Web Application Security - Folio3
PPS
Manindra kishore _incident_handling_n_log_analysis - ClubHack2009
PDF
Top 10 Security Vulnerabilities (2006)
PDF
Owasp top 10_openwest_2019
PPT
Application Security
PPT
Andrews whitakrer lecture18-security.ppt
PPT
Top Ten Web Hacking Techniques – 2008
PDF
Application security 101
PPTX
Owasp Top 10 2017
PPTX
C#Web Sec Oct27 2010 Final
Secure Coding
Security In PHP Applications
04. xss and encoding
Intro to Web Application Security
logout.php Session Data after Logout Username Email . $_.docx
webapplicationattacks-101005070110-phpapp02.pptx
4.Xss
Web Security
Why You Need A Web Application Firewall
Website hacking and prevention (All Tools,Topics & Technique )
Web Application Security - Folio3
Manindra kishore _incident_handling_n_log_analysis - ClubHack2009
Top 10 Security Vulnerabilities (2006)
Owasp top 10_openwest_2019
Application Security
Andrews whitakrer lecture18-security.ppt
Top Ten Web Hacking Techniques – 2008
Application security 101
Owasp Top 10 2017
C#Web Sec Oct27 2010 Final

More from n|u - The Open Security Community (20)

PDF
Hardware security testing 101 (Null - Delhi Chapter)
PPTX
SSRF exploit the trust relationship
PDF
PDF
Api security-testing
PDF
Introduction to TLS 1.3
PDF
Gibson 101 -quick_introduction_to_hacking_mainframes_in_2020_null_infosec_gir...
PDF
Talking About SSRF,CRLF
PPTX
Building active directory lab for red teaming
PPTX
Owning a company through their logs
PPTX
Introduction to shodan
PDF
Detecting persistence in windows
PPTX
Frida - Objection Tool Usage
PDF
OSQuery - Monitoring System Process
PDF
DevSecOps Jenkins Pipeline -Security
PDF
Extensible markup language attacks
PPTX
PDF
Hardware security testing 101 (Null - Delhi Chapter)
SSRF exploit the trust relationship
Api security-testing
Introduction to TLS 1.3
Gibson 101 -quick_introduction_to_hacking_mainframes_in_2020_null_infosec_gir...
Talking About SSRF,CRLF
Building active directory lab for red teaming
Owning a company through their logs
Introduction to shodan
Detecting persistence in windows
Frida - Objection Tool Usage
OSQuery - Monitoring System Process
DevSecOps Jenkins Pipeline -Security
Extensible markup language attacks

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Hybrid model detection and classification of lung cancer
PDF
Developing a website for English-speaking practice to English as a foreign la...
DOCX
search engine optimization ppt fir known well about this
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Five Habits of High-Impact Board Members
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPT
Module 1.ppt Iot fundamentals and Architecture
Assigned Numbers - 2025 - Bluetooth® Document
O2C Customer Invoices to Receipt V15A.pptx
Hybrid model detection and classification of lung cancer
Developing a website for English-speaking practice to English as a foreign la...
search engine optimization ppt fir known well about this
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A novel scalable deep ensemble learning framework for big data classification...
Getting Started with Data Integration: FME Form 101
Taming the Chaos: How to Turn Unstructured Data into Decisions
Five Habits of High-Impact Board Members
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
1 - Historical Antecedents, Social Consideration.pdf
Benefits of Physical activity for teenagers.pptx
Zenith AI: Advanced Artificial Intelligence
DP Operators-handbook-extract for the Mautical Institute
Chapter 5: Probability Theory and Statistics
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Module 1.ppt Iot fundamentals and Architecture

Secure coding | XSS Attacks on current Web Applications

  • 2. Introduction  An attacker gets control of the user’s browser in order to execute a malicious script within the context of trust of the web application’s site.  As a result, and if the embedded code is successfully executed, the attacker might then be able to access, passively or actively, to any sensitive browser resource associated to the web application (e.g., cookies, session IDs, etc.)
  • 3. THREATS!!!  Everything from account hijacking, changing of user settings, cookie theft/poisoning, or false advertising is possible.  Steal cookies which can then be used to impersonate customer and have access to their data and privileges. This is also known as Session Hijacking.  Redirect the user to another website of their choosing. Maybe one that may be quite offensive, or one that attempts to install malware onto users computer;  Display alternate content on your own website.
  • 4. History of Attacks  October 2001, -----Hotmail ---- Remote attacker was allowed to steal .NET Passport identifiers of Hotmail’s users by collecting their cookies.  October 2005, ------ MySpace, utilized by the worm Samy to propagate itself across MySpace’s user profiles.  November 2006,Orkut, was vulnerable to cookie stealing by simply posting the stealing script into the attacker’s profile.
  • 7.  User input is reflected immediately on the page by server-side scripts without proper sanitization.  To exploit, the attacker has to provide the victim with a modified URL, passing the code to be inserted as a parameter.  This attack is done by encoding data in the URL, thus disguising the injected code from the user.
  • 10. Persistent XSS Attacks  When the data entered by the user are stored on the server for a certain length of time, the attack is called "persistent".  All of the website's users have access to the page where the harmful code was introduced.  Commonly found in: Contact/Feedback pages, Log viewers, Exception handlers, Chat applications/Forums, etc.
  • 15. Data Validation  Application accepts correct data.  User data must be validated to ensure it is of the corrected type, and discarded if it doesn’t pass the validation process.  Allow a limited set of special characters.
  • 16. Preg Match  Performs a regular expression match.
  • 17. Output Escaping  Protects integrity of displayed/output data,  Should escape the data when presenting it to the user.  Prevents the browser from applying any unintended meaning to any special sequence of characters that may be found.
  • 20. Data Sanitization  Manipulating the data to make sure it is safe.  Removing any unwanted bits from the data and normalizing it to the correct form.
  • 23. htmlentities  Converts all applicable characters to HTML entities.  Default value for this argument is ISO-8859-1 in versions of PHP prior to 5.4.0, and UTF-8 from PHP 5.4.0 onwards.  ** http://coderstoolbox.net/
  • 25. Available flags constants ID Description ENT_COMPAT Will convert double-quotes and leave single-quotes alone. ENT_QUOTES Will convert both double and single quotes. ENT_NOQUOTES Will leave both double and single quotes unconverted.
  • 26. ID Flags FILTER_SANITIZE_EM AIL FILTER_SANITIZE_EN CODED Remove all characters except letters, digits and !#$%&'*+/=?^_`{|}~@.[]. FILTER_FLAG_STRIP_LOW , FILTER_FLAG_STRIP_HIG H, FILTER_FLAG_ENCODE_L OW, FILTER_FLAG_ENCODE_HI GH URL-encode string, optionally strip or encode special characters. Apply addslashes(). FILTER_SANITIZE_MAGIC _QUOTES FILTER_SANITIZE_NUMB ER_FLOAT Description FILTER_FLAG_ALLOW_FR ACTION, FILTER_FLAG_ALLOW_TH Remove all characters except digits, +- and optionally .,eE.
  • 27. ID Flags FILTER_SANITIZE _NUMBER_INT Description Remove all characters except digits, plus and minus sign. FILTER_SANITIZE _SPECIAL_CHARS FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH HTMLescape '"<>& and characters with ASCII value less than 32, optionally strip or encode other special characters. FILTER_SANITIZE _STRING FILTER_FLAG_NO_ENCODE_Q UOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP Strip tags, optionally strip or encode special characters. FILTER_SANITIZE _STRIPPED Alias of "string" filter.
  • 28. ID Flags FILTER_SANITIZE_UR L Description Remove all characters except letters, digits and $_.+!*'(),{}|^~[]`<> #%";/?:@&=. FILTER_UNSAFE_RA W FILTER_FLAG_STRIP_LOW Do nothing, optionally , strip or encode special FILTER_FLAG_STRIP_HIG characters. H, FILTER_FLAG_ENCODE_L OW, FILTER_FLAG_ENCODE_HI GH, FILTER_FLAG_ENCODE_A MP FILTER_SANITIZE_FU LL_SPECIAL_CHARS FILTER_FLAG_NO_ENCOD E_QUOTES, Equivalent to callinghtmlspecialchar s() withENT_QUOT ES set. Encoding quotes can be disabled
  • 29. Mod Security(Web Application Firewall)  Protects against attacks that target websites.  csrf_protection  session_hijacking  comment_spam  authentication_tracking  protocol_violations  sql_injection_attacks  xss_attacks  brute_force, and many more
  • 33. How to change Contact info  Go to : • binariesapacheerror • Open contact.html.var
  • 35. Disable Apache Signature and/or Apache Banner  ADD in httpd.config of apache to remove apache version disclosure  ServerTokens ProductOnly  ServerTokens takes 1 argument, 'Prod', 'Major', 'Minor', 'Min', 'OS', or 'Full'""
  • 37.  ADD/replace/change in php.ini to remove php version disclosure  expose_php = Off  display_errors=Off  register_globals = Off
  • 39. Disable Version Disclosure  Go to : • binariesapacheerrorinclude • Open bottom.html By Default we see this
  • 43. Stopping Sensitive file disclosure  Turn off automatic indexing.  Instruct Apache to reject all requests for files matching a series of regular expressions given below.  Goto httpd.conf file to deny access to . htaccess files.
  • 44. Protecting bakup files  Add in httpd.config  TheFilesMatchdirective only looks at the last part of the full filename
  • 45. Disable Directory Indexing  Listing of files like see in Windows Explorer as opposed to a web page.  Attacker can gain valuable information about your site.  Files may may include sensitive information, such as backup script files htaccess files, or text files with note.  Can allow access files outside the web root directory, leading to the stealing of system files.
  • 46. How to Disable Directory Listings in Apache  Navigate to your Apache config file (httpd.conf)  Find – “Options FollowSymLinks Indexes”  Replace by – “Options FollowSymLinks”  Done
  • 47.  FollowSymLinks makes Apache follow system symbolic links (shortcuts, if you would) in your file system.  Indexes allows access to open folders within your file system.
  • 49. Disable powerful functions in php  Disable functions that may be useful to an attacker but not necessary to the application.  Disable execution of OS commands  Open php.ini and search “disable_functions”.  Write “shell_exec “ (without comma in front of disable_functions).
  • 51. Other functions  exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, pcntl_exec, dl".  If the application needs to execute OS commands, it should use "pcntl_exec", because it provides better abstraction of parameters than the others.