Closed ghost closed 4 years ago
@squelch0 Does not use the Smarty template. Has a somewhat "lookalike" template language but that's it.
Tried this on my live production site and all I get is a 404 page not found.
@squelch0 Does not use the Smarty template. Has a somewhat "lookalike" template language but that's it.
Either way, template injection could be possible. Often if it's vulnerable to XSS it is also vulnerable to template injection if there is any template system involved.
@squelch0 Does not use the Smarty template. Has a somewhat "lookalike" template language but that's it.
Either way, template injection could be possible. Often if it's vulnerable to XSS it is also vulnerable to template injection if there is any template system involved.
and template injection could lead to Remote Code Execution.
Tried this on my live production site and all I get is a 404 page not found.
It could be because your live production site has a WAF.
okay the payload is ">
Tried this on my live production site and all I get is a 404 page not found.
It could be because your live production site has a WAF.
okay the payload is ">
try that instead of "
@squelch0 Sorry but part of what you say is wrong... First of all the template system only treat the code from a file, not from a stream. Second, maybe you should give us your version number because what you are telling use does not work. Could you either supply a screenshot or some proof, for example a W3AF log ?
@squelch0 Sorry but part of what you say is wrong... First of all the template system only treat the code from a file, not from a stream. Second, maybe you should give us your version number because what you are telling use does not work. Could you either supply a screenshot or some proof, for example a W3AF log ?
Okay, well nevertheless, there is a Cross Site Scripting vulnerability here that needs to be fixed. You can literally prove this by going to any live website and typing "> into the "f_n" parameters or "u" parameters.
@squelch0 Okay, one last shot here... On what damn version are you doing this ? I tried this on the latest version and it doesn't seem to work. And so did @Undefined-Variables
@polynamaude He is up to something...
My sever is under attack!
@squelch0 Okay, one last shot here... On what damn version are you doing this ? I tried this on the latest version and it doesn't seem to work. And so did @Undefined-Variables
I tried it on 15.4 stable.
My sever is under attack!
...what?
this is on my own website.
make sure you type ">
If anyone has Discord I can show you there.
@squelch0 Please keep polite, no trolling allowed here.
You told me to try a url now my server is throwing alerts XSS on every site and all cpanels are you telling me thats chance? No
I didnt open your url I tried
signup/?ref=main&a=index&u=chaya-ward&f_n=Avis"><script>alert('XSS')</script>
on the end of my url and did nothing but now it is popping up everywhere
I didnt open your url I tried
signup/?ref=main&a=index&u=chaya-ward&f_n=Avis"><script>alert('XSS')</script>
on the end of my url and did nothing but now it is popping up everywhere
Yes, exactly! That's why I reported this to you guys..
@Undefined-Variables We now have "Shit in the fan !"
I'm looking in to what can be done to stop this now.
@Undefined-Variables We now have "Shit in the fan !"
Well, you are the security guy, right? It's not a bad vulnerability, it can be fixed easily using HTML entity encoding.
I have only tested this on my own websites
This needs solving straight away!
I'm sorry for disclosing it publicly like this, but I figured it would be the best way to get it fixed.
You need to use htmlentities() function to convert symbols such as " > < to " < >
yes but you can get around that by url encoding so what is the point?
yes but you can get around that by url encoding so what is the point?
I'm not sure the details of what you need to do. Like I said, I am new with this framework, but either way there needs to be a way to prevent dangerous characters like < > " or {}
There are messures in place. I think we have shared enough to the world for now and like I said im looking in to it.
I don't want to test it either as that was a nightmare. Ive had to reboot more than once to clear this.
@squelch0 Thank you for reporting this! You have done the right thing and we are being highly suspicious. We get a lot of this kind of thing and normally it's rubbish.
Thanks
@squelch0 Thank you for reporting this! You have done the right thing and we are being highly suspicious. We get a lot of this kind of thing and normally it's rubbish.
Thanks
You're welcome! Haha, I understand, I know you get a lot of reports. It shouldn't be difficult to fix though. I have a website running this right now, and as long as it's not vulnerable to template injection it shouldn't be too severe. That's why the { } characters should be properly sanitized, to prevent template injection vulnerabilities.
I don't want to test it either as that was a nightmare. Ive had to reboot more than once to clear this.
I'm not sure how many servers you have running, but this should only make 1 pop-up alert saying "XSS". It shouldn't crash the server or anything unless it's something else.
From what I have found in mod security log I am Speechless!! From that single call of that URL I have over 500 hits all XSS rules all at the same time.
That is no normal XSS attempt.
I can't find much about the components that make up the URI request except...
?ref=main relatrs to IPV4 addresses
&a=indexu has some link to iframe injection
And
Chaya-ward is most commonly referred to as a name, but pops up in owasp reports here and there so with all that considered I'd guess it is some form of callback
There are rules covering this in the framework which is why we don't see an initiate alert this is much more complex.
From what I have found in mod security log I am Speechless!! From that single call of that URL I have over 500 hits all XSS rules all at the same time.
That is no normal XSS attempt.
I can't find much about the components that make up the URI request except...
?ref=main relatrs to IPV4 addresses
&a=indexu has some link to iframe injection
And
Chaya-ward is most commonly referred to as a name, but pops up in owasp reports here and there so with all that considered I'd guess it is some form of callback
There are rules covering this in the framework which is why we don't see an initiate alert this is much more complex.
Hmm that is really odd. Are you getting attacked? I haven't checked my logs yet but I doubt anyone would start attacks after reading this so quickly. As long as the only problem is Reflected XSS it shouldn't be too severe. The only vulnerability with the XSS is if someone sends you a link to your own website with this payload, they can potentially steal your auth cookie or do "session fixation". Thankfully it doesn't appear to be "stored XSS".
No not right now. Its odd how there are so many hits on mod securiry and all at the same time, all from my ip starting with that request. I have asked cloudflare what they think and they are looking in to it. They asked for the logs and normally are fast at answering but its been hours.
No not right now. Its odd how there are so many hits on mod securiry and all at the same time, all from my ip starting with that request. I have asked cloudflare what they think and they are looking in to it. They asked for the logs and normally are fast at answering but its been hours.
So the requests were from you? This bug shouldn't effect anything server side. The only vulnerability is when you send the link with the payload and someone clicks it. What I think could be happening here is called "Blind XSS". You should test this with xsshunter.com. It's helpful for tracking down Blind XSS triggers.
@Undefined-Variables I think what is happening is "Blind XSS". The payload is being processed by many different scripts, and with a template system between everything it could possibly execute the payload in many different areas.
How did you find this?
How did you find this?
I do bug bounties and I'm hoping to make a career of Penetration Testing. I'm on HackerOne and other bug bounty platforms. This is a classic XSS and I found it just by manually testing those parameters. If you put a quote(") in the parameters you will see that whatever you input is directly reflected on the page , and the quote causes some problems. Anything you input into the "f_n" parameter can be treated as html. So you can actually for example put href tags and that should simply make a link render on the page (I tried showing an example just now but GitHub doesn't play nicely with quotes).
Here are my bug bounty profiles, I'm also on BugCrowd but I'm not active on there.
https://hackerone.com/squelch0 https://www.openbugbounty.org/researchers/squelch000
@Undefined-Variables It's a very simple classic case of reflected XSS. And it surprised me that it wasn't already being sanitized as it is supposed to be a secured and soooo secured software (as per the author).
Most automated testing framework will do this type of check in a automatic fashion.
@Undefined-Variables It's a very simple classic case of reflected XSS. And it surprised me that it wasn't already being sanitized as it is supposed to be a secured and soooo secured software (as per the author).
Most automated testing framework will do this type of check in a automatic fashion.
Yes I was surprised to find it although I tested all parameters with sqlmap and they seem to be secure against SQL injection. I also tried payloads like {{5*5}} to test for template injection, but I have no idea how the syntax works for ph7 yet. If you can get it to show 25 on the page, its vulnerable to template injection. Just gonna do black box testing then I will start looking at the source code. As long as all parameters use prepared statements there should be no SQL injection risk.
@Undefined-Variables It's a very simple classic case of reflected XSS. And it surprised me that it wasn't already being sanitized as it is supposed to be a secured and soooo secured software (as per the author).
Most automated testing framework will do this type of check in a automatic fashion.
I actually think this framework is quite good, it will just take some time to improve this young project and fix the bugs. Looking forward to finding more of the bugs to keep everything secure!
Yeah SQL injection is impossible as it uses PDO prepaired statements. I have tried myself. The template system core file is found here https://github.com/pH7Software/pH7-Social-Dating-CMS/tree/master/_protected/framework/Layout/Tpl/Engine/PH7Tpl and is simular to smarty. See what you can find...
Also, since the CMS uses Smarty templates, it could also be vulnerable to template injection, although I'm not sure if that is possible with GET requests.
FYI, pH7Builder (pH7CMS) uses pH7Tpl. A homemade template engine. Only the installation wizard still uses Smarty.
Thanks very much for reporting this @squelch0!!! 💯 It seems that https://github.com/pH7Software/pH7-Social-Dating-CMS/commit/b52f033692a4d4fc512d0b161b39e19e28335541 opened an XSS hole that occurs in <link rel="canonical" href="">
value. I will patch it and release an update ASAP.
-> Patch available here: https://github.com/pH7Software/pH7-Social-Dating-CMS/commit/ee647aa628a14aa8c0cc3654f4a7ee0e46354080, file _protected/framework/Navigation/Page.class.php
, line 102.
@squelch0, @Undefined-Variables, @polynamaude
And it will also be included in the next release.
-> Patch available here: ee647aa
@squelch0, @Undefined-Variables, @polynamaude
And it will also be included in the next release.
Great job on the fast fix, thank you!
Great job on the fast fix!
You're very welcome!
@ph-7 Thank you great response and rapid fix :)
@squelch0 Thank you for reporting this :)
There is a XSS vulnerability without need for any authentication at all. It seems to be also present in the newest versions.
To reproduce: 1)If you created sample users such as "Avis", "Clark", "Raphael", etc , click on their photos on the home page. 2)The endpoint "/signup/" has parameters that are vulnerable to Cross Site Scripting. Here is an example: http://example.com/pH7-Social-Dating-CMS/signup/?ref=main&a=index&u=chaya-ward&f_n=Avis">
I hope it will be fixed because I really like this project. It should not be too difficult to sanitize those parameters.