epsylon / xsser

Cross Site "Scripter" (aka XSSer) is an automatic -framework- to detect, exploit and report XSS vulnerabilities in web-based applications.
https://xsser.03c8.net
1.21k stars 240 forks source link

xsser detects but nothing happens. #55

Closed Sublist3r closed 4 years ago

Sublist3r commented 4 years ago

Describe the bug

xsser shows: You have found: [ 4 ] XSS vector(s)! -> [100% VULNERABLE]

This is one of it from the 4 detected. example:

[+] Target: https://www.thiswebsite.com/blablabla??countryName=Default&default%27b%27Country=XSS [+] Vector: [ default'b'Country ] [!] Method: URL [] Hash: c43a28532b76082519cb67ffe92794ca [] Payload: https://www.thiswebsite.com/blablabla?countryName=Default&default%27b%27Country=%22%3Ec43a28532b76082519cb67ffe92794ca [!] Vulnerable: [IE7.0|IE6.0|NS8.1-IE] [NS8.1-G|FF2.0] [O9.02] [!] Status: XSS FOUND!

so i copied the entire link from above(website name changed) and pasted on browser. I do not see anything change. The website loads normal but i don't see any vulnerability on the website.

https://www.thiswebsite.com/blablabla?countryName=Default&default%27b%27Country=%22%3Ec43a28532b76082519cb67ffe92794ca

To Reproduce 1 . $xsser -u https://www.thiswebsite/ -c 20 --Cl --reverse-check

Expected behavior should be able to see the vulnerability on the website modified.

Screenshots If applicable, add screenshots to help explain your problem.

Running environment:

Target details:

Additional context Add any other context about the problem here.


epsylon commented 4 years ago

Well... That you do not see the result on the website, does not mean that it is a program error..

Have you tried to inject some other post-exploitation script, for example, that gives you an alert ()?

ex: xsser -u "https://www.thiswebsite.com/" -g "blablabla?countryName=Default&default%27b%27Country=XSS" -v --reverse-check --reverse-open --Fp "<script>alert(XSS);</script>"

Have you searched for the hash of a found injection (ex: c43a28532b76082519cb67ffe92794ca) in the resulting source code?

epsylon commented 4 years ago

On the other hand. Do you know if the target website is using some AJAX? Sometimes, even if the vector is injectable, the result is not where we expect it. If you think it uses javascript for the answers, try also playing with the 'BlindXSS' options (ex: --checkaturl = ALT)

Sublist3r commented 4 years ago

Well... That you do not see the result on the website, does not mean that it is a program error..

Have you tried to inject some other post-exploitation script, for example, that gives you an alert ()?

ex: xsser -u "https://www.thiswebsite.com/" -g "blablabla?countryName=Default&default%27b%27Country=XSS" -v --reverse-check --reverse-open --Fp "<script>alert(XSS);</script>"

Have you searched for the hash of a found injection (ex: c43a28532b76082519cb67ffe92794ca) in the resulting source code?

yes. the hash is in the source code...

epsylon commented 4 years ago

When trying a --reverse-check combined with --reverse-open and just after discover a vulnerability, you should have open a browser with a message (ex: "thanks for coming!" / "success"...). Do you reach that message on your tests?. There we can found vector discovered without the need to find it on target's source code.

jepunband commented 4 years ago

See.. that is the one im not getting.. the browser opens with --reverse-check option. ..but there were no messages of any whatsoever... :(

epsylon commented 4 years ago

the browser opens with --reverse-check option.

you mean... when --reverse-open. OK!. Maybe you haven't assigned a default web-browser on your system. Let's try to open it, manually. This reverse-service is operating at: localhost:19084. So, after discover a vulnerability, just open a browser and enter this location. You should see that messages this way.

Sublist3r commented 4 years ago

command i used: xsser -u https://www.website.com -c 20 --Cl --reverse-check --reverse-open


[Info] Generating 'token' url:

https://www.website.com/account/login/">">#http://localhost:19084/success/fe484f90bedef383dc254fcf248d8a87

Screenshot at 2020-02-11 21-35-23

epsylon commented 4 years ago

OK!. Looks that something is wrong on your box, when opening a new socket... You need to allow a port to be opened in 19084, in localhost (127.0.0.1). Do you have that busy port?. Do you have sufficient privileges?

Sublist3r commented 4 years ago

hi i have full root privileges, i also did a check on port 19084. I ran SimpleHTTPServer on port 19084 and it works. There is nothing blocking it. So as you can see it is not the privilege isssue. Screenshot at 2020-02-12 11-12-40 Screenshot at 2020-02-12 11-12-06

epsylon commented 4 years ago

Look at the error message at your comment: https://github.com/epsylon/xsser/issues/55#issuecomment-584638490

localhost refused to connect

What about 127.0.0.1 != localhost?. Did you tried to change that url?

epsylon commented 4 years ago

Hi @Sublist3r, I am checking this issue, that looks related to a problem with "false positives" results, also described at this other thread: https://github.com/epsylon/xsser/issues/56

epsylon commented 4 years ago

A) This issue (the part related with a false positive result) should be fixed after this commit: https://github.com/epsylon/xsser/commit/93897b24d37ca30b8507387d1cc9418a427e876f B) Error opening a socket looks like a user environment problem.

Sublist3r commented 4 years ago

yeah .. now it shows the false positives ... one of the reason why i could not find anything before.. Thanks.