Sucuri Sit-Down Episode 4: XSS & WP Plugin Vulnerabilities with Antony Garand - Security Boulevard

Sucuri Sit-Down Episode 4: XSS & WP Plugin Vulnerabilities with Antony Garand

October is National Cyber Security Awareness Month, and we’re back with analyst Antony Garand to take a deeper look into cross site scripting (XSS) attacks and WordPress plugin vulnerabilities. Plus, host Justin Channell will catch you up on the latest website security news from the Sucuri blog.

For further reading about any of these topics, check out these blogs we reference in the episode:

Justin Channell:

Hello and welcome to the Sucuri Sit-Down. I’m your host Justin Channell, and this is a monthly podcast about website security, where we get in depth with the malware removal experts here at Sucuri. Later in the show, I’ll sit down with our analyst, Antony Garand, to talk about cross-site scripting and WordPress plugin vulnerabilities.

Justin Channell:

Now it’s been a few months since our last episode, but that’s because we’ve been keeping busy behind the scenes preparing for National Cybersecurity Awareness Month. If you’re not already following us on social media, October 2020 is the best time to start. We have a ton of content coming out and a lot of great stuff planned, including a contest that’s exclusive to our Twitter community. So follow us at Sucuri Security. But as always, we’re also keeping up with publishing the latest attacks and vulnerabilities on our blog. Before we get started with Antony, let’s take a deep dive into a few of the topics we’ve covered on the blogs since episode three. If you want to get a more in-depth look at any of these topics, check out the show notes for a link to the full blog.

Justin Channell:

Luke Leal, who we spoke with in episode three, wrote about an interesting example of WordPress malware back in September. Most WordPress users are probably aware that there are a lot of security plugins available, including Sucuri’s own free plugin. Now these plugins are a helpful tool for identifying WordPress attacks, but they won’t do much good if an attacker can disable them, and that’s exactly what Luke found with this malware. It would disable all of the most popular security plugins. If you would re-enable them, they would quickly be disabled again. The reason why it was so efficient at disabling was because the code was written into the wp-load.php file on the website. That file’s going to load every time there’s a page load on a WordPress environment. So let’s say your site was infected and you re enabled all the plug-ins. As soon as you check the live site, the plugins are going to be disabled. Even if another user loads a page on your site, it’s going to trigger the malware to disable those plugins again. So if you have a really popular site, it may be impossible to keep them disabled for only a couple of seconds. And malware like this makes it clear why a plugin, alone, isn’t going to be enough to protect your website. You’re going to need a solution that scans the website at the server level to get the best protection.

Justin Channell:

Also, the reinfection of this shows why it’s so important to completely clean a website hack. Bad actors are going to want to retain access to the compromised environment as long as possible, and they’re going to use every tool at their disposal to do so, whether that means using a backdoor or an automated reinfection technique like this example. Think of it like taking antibiotics for an infection. If you don’t finish the round of antibiotics, the infection won’t be completely gone and it can potentially get worse. Also, we recently found malware that could add an arbitrary user inside of WordPress and then elevate that user to an administrator status. Krasimir Konov wrote about this back in late August. A bit of code was hidden inside of a plugin’s functions.php file. And that would add the user and then elevate its status. By elevating the status to an administrator, that would give an attacker complete access to the WordPress environment. And again, this is another example of an attack that a server-side scanner can mitigate better than a plugin.

Justin Channell:

We’ll be talking about WordPress plugin vulnerabilities later though. In the meantime, let’s catch up with what’s going on with Magento e-commerce stores. We’re well past the Magento one end of life date, but there are still a lot of e-commerce sites using it and struggling to migrate to the new version. Hackers are well aware of this and they’re actually making tools that will target all versions of Magento. Tools like this will make website attacks more successful and profitable for bad actors. That’s why you really need to consider upgrading your Magento 1 sites to Magento 2 at this point. However, if for whatever reason you can’t do it, get ahold of us because our website security platform actually does have virtual patching, which can protect you from a lot of vulnerabilities.

Justin Channell:

But just keep in mind, while you may hear about Magento or WordPress vulnerabilities or attacks, every CMS can be a target. In fact, October has already brought an interesting malware dropper that can detect the CMS on a website and deploy the specific type of code needed for that infection. That being said though, WordPress is still going to see the bulk of the attacks just with it being such a popular platform. We’ve seen several plugin vulnerabilities come into play since our last episode, including one that affected nearly 700,000 users. To get a better idea of what’s going on with plugin vulnerabilities, I sat down with Antony Garand, who wrote about that vulnerability for our blog.

Justin Channell:

But before we start, I wanted to remind you about our sister podcast, the Sucuri Sync-Up. It’s a weekly website security news briefing that you can find anywhere you get your podcast or as an Alexa flash briefing and in video form on our social media accounts. Get new website security content delivered every Monday. Now, on with the show.

Justin Channell:

All right, Antony, thanks for joining us today. Why don’t we start and why don’t you to tell us a little bit about what you do here at Sucuri?

Antony Garand:

Hey. Glad to be here today. So I am a vulnerability researcher here at Sucuri, so I research plugins and audit all codes to find out if there are security vulnerabilities in them. And whenever a vulnerability pops up in the wild, I research it and ensure that we do block all attacks against this one.

Justin Channell:

Okay. And can you kind of explain how exactly you find vulnerabilities and plugins and other software?

Antony Garand:

There is a lot of manual code reviewing. A lot of it is simply scrolling through code and knowing what to look for and sometimes finding weird ways code can interact with specific parts of it, which were not expected by the developers. So essentially, it’s finding out bugs, but here the bugs are pretty important because they cause vulnerabilities. So these can range from lack of permission and authentication on certain places, as well as simply public information disclosure, such as downloading a backup. So yeah, it’s really a lot of manual stuff.

Justin Channell:

Okay. And thinking of what you’ve written for the blog a lot, it seems like there were a lot of WordPress plugin vulnerabilities that were found in 2020, including the one with File Manager that affected 700,000 users. Now how was that vulnerability, especially, how did that work and how was it exploited by hackers?

Antony Garand:

This vulnerability was a very critical one. So it allowed anyone with no account and no authentication on the website to fully take over the website and execute arbitrary coding it. So these are the type of vulnerabilities that hackers like because they can automate the request and the exploitation of the websites. So all they need to do is find websites with the plugin installed, run their script, and then the website is now theirs, essentially. So what they did is make a script to automatically exploit it and throw it in the wild and try it out against all of the WordPress websites they have in their list.

Justin Channell:

Okay. And because it kind of targets such a wide amount of WordPress sites, how could WordPress users protect their sites from a plugin vulnerability like this?

Antony Garand:

The first way would be essentially to keep everything updated. So most of the vulnerabilities are exploited once they are publicly known and found. And once this state is reached, the plugin author usually updates the plugin to remove the vulnerability, which means that if you keep your stuff updated, you won’t be vulnerable and you won’t be able to be targeted. But this is not always enough because sometimes hackers find these vulnerabilities and they don’t report it to the developer so they can patch. Instead, this is what we call a zero-day. And when a zero-day is in the wild, there’s nothing you can do from the site perspective to protect yourself against this, other than using security firewalls, such as our web application firewall. So what this firewall does is read out all of the requests that your website should receive and find out if it’s malicious. And if it is, it will block it, no matter if it’s a zero-day or if it’s a known vulnerability. All of these are blocked, except in very odd scenarios of zero-days.

Justin Channell:

Okay. And now, a lot of the things that you’ve written about in the blog are about cross-site scripting, and it’s also reflected cross-site scripting. Can you kind of describe what the difference is between those two?

Antony Garand:

Sure. So cross-site scripting essentially is executing JavaScript on the browser on the website. And under these cross-site security attacks, there are two variants usually. There’s reflected cross-site scripting and stored cross-site scripting attacks. The stored cross-site scripting attacks are the ones that are served on the website and saved on the website, which means that anyone visiting a specific page will have the attack rendered to them. While a reflected XSS, it’s variant, is instead an XSS which is only on one page, depending on certain query arguments or certain variables of your browser when you send it, which means that it’s only there once and no one else really is affected by it unless they do specifically reach this page.

Antony Garand:

A good example of it would be like a search page. If you search for a certain scenario, a certain script, with a malicious payload inserted, the search results will have a reflected XSS. But to execute this one, one, we need to visit a specific URL with the search page. It doesn’t affect anyone else searching on the website. While a stored cross-site scripting would be, say, a sitting update in the plugin where everyone visiting the website, either a specific page or their homepage or any variant of this, would be targeted and would execute the script.

Justin Channell:

Okay. Okay. No, that makes sense. There were a lot of XSS attacks on WordPress in 2020 as well. Is there any reason that they’re so popular for WordPress?

Antony Garand:

They’re popular everywhere. So while these attacks are not necessarily as popular as a full site takeover, WordPress attacks or XSS attacks are simply interesting because they allow the user to execute kill and the browser does the heavy leveraging of the attack by itself, which means that it can gather data about the context and everything else the browser currently has and resurrect it, conditionally, depending on the variant effector. So usually most malware will use XSS as an end once an attack is executed to control the browser and execute pop-ups from [inaudible 00:11:24] and everything else because it’s simply an easy way to compromise everyone without leaving as many traces on the server itself.

Justin Channell:

Okay. No, that makes sense. Now to kind of get into another topic that you’ve written about, you’ve about phishing attacks for this site, and those are also popular. And why is that, do you think?

Antony Garand:

The reward for phishing attacks are huge. So phishing attacks are essentially serving you a fake login page for a different website. So say you go on example.com and you’re served a login page for your bank, well of course this won’t log you into your bank. It’s a malicious phishing page. But if you do enter your credentials in there, the hacker is now gaining access to your bank, and your bank account has a lot of money so there’s a lot of financial incentive to these. And these can be very lucrative, which is why they’re popular. Even if only half a percent of the people visiting the page do enter their credentials, this hacker presence will cover the costs of this attack even more. It will be super lucrative.

Justin Channell:

Yeah. And that seems to be pretty much why any attack is popular.

Antony Garand:

Mm-hmm (affirmative). Exactly. Of course, the ends is always financial profit, but these are the easiest way to compromise websites for money.

Justin Channell:

Yeah. It even affects gamers because you wrote that piece about phishing attacks in RuneScape. And is that something that gamers should really be aware of, these phishing attacks? Because it’s even targeting a game like RuneScape that’s been around decades at this point.

Antony Garand:

Yes, of course. So phishing attacks in games are nothing new. And something that people might not realize about games is that game currency and game content can have real world value. So we can see this directly with a lot of teen games, like Counter-Strike GO or Dota, where there’s a marketplace for items, skins, and colors. Or even with Fortnite, the skins and the currency have value.

Antony Garand:

So in this specific example, in RuneScape, people buy and sell RuneScape gold for real money. It’s even a major currency in a few places like prison, according to some reporters. So by getting your account tacked in there, you lose not only all of your items, progress, and everything that you’ve done on the game, but the hackers gain a lot of money from it, or they can gain, depending on the accounts and everything else. So it’s super dangerous.

Antony Garand:

And something that also can result from a phishing attack is password reuse issues. So if people reuse the same password on multiple accounts and multiple places, these passwords can be tried for your other services. So let’s say you get your RuneScape account hacked. To log in, you might need a pin, an email, and a password. So by having these information, they might try logging to the email. And if they gain access to your email, they might recover the password for your Amazon account and then order stuff from your credit card from there. So there’s a lot of stuff that can be done with only one point of entry from a game where you can get compromised.

Justin Channell:

Mm-hmm (affirmative). Now in that case, since thinking of that and where even one account can affect multiple others if people are using their password, obviously one thing would be don’t reuse passwords. But what else can people do to kind of defend themselves against phishing attacks like that?

Antony Garand:

Well, of course, don’t reuse your password. I would strongly recommend everyone to use a password manager and use auto-generated passwords everywhere. This way, if you yourself don’t know your password, you won’t enter it anywhere because you won’t be aware of it. And password manager only auto-fill the password on the sites you want them to and they’re recorded to. So let’s say on RuneScape, if you’re on the RuneScape login page, the password manager will automatically detect, “Hey, this is a RuneScape login page. Here’s your credentials,” and you’re filled. But if you’re on a phishing RuneScape page, it won’t auto-fill it. So then you know, “Hey, something’s fishy. My password manager doesn’t detect this as RuneScape.”

Antony Garand:

But something else which will have an impact, even if your password is compromised, if a hacker knows your password, is two-factor authentication. So this works by using a unique code. Once you enter your username and password, then the website or the app will ask you for a second code, usually six digits, that changes every minute and you need an app on your phone or sometimes an SMS or email to confirm that you’re the real person trying to login, you’re the original account owner. And these will protect against most attacks, most phishing attacks. Unless you do give this two-factor authentication code to the phishing site, people even with your password won’t be able to access your account.

Justin Channell:

Mm-hmm (affirmative). Okay. Now how do you see phishing attacks changing in the 20s, in the next decade or so?

Antony Garand:

I think as people value security more and more and technologies to protect against phishing attacks change as well, we’ll see more advanced attacks where they automatically, say, ask for your Twitter code on the phishing page, and automatically on their side attempt logging you in to get the data immediately. So instead of simply gathering all the usernames and passwords at one point and at the end of the day, the hackers can try logging in on to these burdens, I think they’re going to react as a proxy against the website, so you won’t even realize you’re not on their website and try to steal as much information as they can offer you, including the Twitter codes and all other juicy information they can have.

Justin Channell:

Wow. Now that’s kind of the end of all my prepared questions. I know that you said you’re mostly focused on vulnerabilities, and I mostly asked… I try to ask everybody at the end what’s the coolest malware you’ve encountered? But since you’re kind of focused on vulnerabilities, I thought I’d ask what’s the most interesting vulnerability you’ve encountered in your time with Sucuri, or even before, I guess?

Antony Garand:

The coolest one… There are a lot of interesting ones. One I liked is an old one on main WordPress, a plugin, where simply by a lack of validation and to their specific conditions, you could login onto any account simply by adding a query argument into the URL. So let’s say you were visiting the WordPress, the website, you would be able to add, say, login as equal administrator, and it would log you in ASAP. Noting else to do. And I think this was a cool one because it was so major, yet so simple and stupid that it had huge repercussions everywhere. And the plugin was pretty popular at the time. And it still is, but now it’s more secure. So this one’s a cool one.

Justin Channell:

Awesome. Yeah. I mean, awesome how it worked, but then terrible for if you ran into that.

Antony Garand:

Exactly.

Justin Channell:

All right, Antony.

Antony Garand:

Is what technically interesting, but it wasn’t a good thing for the plugin, itself, and the users.

Justin Channell:

Yeah. Okay, Antony, thank you so much for joining us. And I don’t know if there’s anything else you wanted to add before we go.

Antony Garand:

Nope, that’s it on my end.

Justin Channell:

All right. Thank you very much. You have a good one.

Justin Channell:

Thanks again for Antony for joining us here on the Sit-Down. We’ll be back with another episode as soon as we wind down from National Cybersecurity Awareness Month. So be sure to subscribe on Apple Podcasts, Spotify, Stitcher, and anywhere else you get your podcasts. Also follow us on social media @sucurisecurity and check us out at sucuri.net. That’s S-U-C-U-R-I.net. I’m Justin Channell, and this has been the Sucuri Sit-Down. Stay safe out there.

 


*** This is a Security Bloggers Network syndicated blog from Sucuri Blog authored by Justin Channell. Read the original post at: https://blog.sucuri.net/2020/10/sucuri-sit-down-episode-4-xss-wp-plugin-vulnerabilities-with-antony-garand.html