A frustrating interruption to anyone’s day is the infamous HTTP Error 500 internal server error message. When it happens not only do you lose traffic or potential site revenue, but it can also reflect badly on your site’s reputation and even affect your search rankings.
Furthermore, 500 errors can sometimes be an indicator of compromise — the result of unsuccessful malware, damaged .htaccess files, or broken script injections nestled somewhere on the site.
In this article, we’ll explain more about 500 status codes, what they mean for you and your website visitors, and how to troubleshoot these errors to get your website back online again.
Contents:
- What is HTTP error 500?
- How are 500 errors different from other internal server errors?
- What are the most common causes of a 500 internal server error?
- Can HTTP error 500 be caused by malware?
- How to fix a 500 internal server error
- Do 500 errors impact SEO?
- Resolving 500 errors due to malware
What is HTTP error 500?
The HTTP 500 error is a server-side error that indicates that something went wrong on the website’s server, but the server is unable to provide specific details about the problem. It’s is a generic message displayed when no other message is suitable for the situation.
The Internet Engineering Task Force defines the 500 Internal Server Error as follows:
“The 500-error status code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.”
Something has gone wrong with the website, but the problem is not with your browser, your internet connection, or your computer. It’s a message that indicates there is a general problem with the site you’re trying to access or the server where the site resides, as seen below.

Common types of 500 error messages
500 error messages can come in all sorts of flavors, but they all mean the same thing. Here are a few variations of 500 errors you might encounter in your browser:
- 500 Internal Server Error
- 500 Error
- HTTP Error 500
- Temporary Error (500)
- 500
- The website cannot display the page – HTTP 500.
- Is currently unable to handle this request. HTTP ERROR 500.
These are only a handful of the possible messages you might find when encountering a 500 error. In fact, some websites even have their own custom internal server error messages.
But if you receive this message, you can be sure that an unexpected problem has been detected by the server.
How are 500 errors different from other internal server errors?
There are many types of internal server status error codes and they all mean different things.
To help you understand the difference between generic 500 errors and other types of internal server errors, we’ve outlined some of the common types of 5xx responses you might encounter on your site.
- 500 error: server encountered an unexpected problem. This error code comes up when something unexpected happens on the server which prevents it from completing the request, but no additional information is shown.
- 501 error: HTTP status code for not implemented. This indicates that the server is unable to execute the request and is either unable to identify the goal of the request, or does not have enough power to execute the request.
- 502 error: bad gateway. Essentially, an invalid response was detected. The server was doing a job as a proxy or a gateway and received an invalid response from a different upstream server. If you are using a WAF, this could indicate a problem with your server.
- 503 error: a service is unavailable. This occurs when the server gets too many tasks and is overloaded, down due to maintenance, or has been taken down by malware.
- 504 error: Gateway timeout. The server, which was performing as a proxy or a gateway, wasn’t able to identify the request within the fixed time limit.
- 505 error: HTTP version not supported by server. The server isn’t able to identify the HTTP protocol used in the request.
- 511 error: network authentication. The server requires user authentication to access the request.
With the exception of a 500 error, the majority of server errors provide clear reasons for the status response that can help you pinpoint the issue and resolve it.
But don’t despair; there are a number of potential causes for the vague and generic 500 server error. Let’s examine some of these sources before we move on to possible solutions.
What are the most common causes of a 500 error?
As the name suggests, a 500 internal server error is a general issue with a webserver. They can be caused by a plethora of issues ranging from relatively benign, like your browser cache needs to be cleared, to more serious server or database errors.
And unlike 503 or 504 errors, a 500 server error won’t clearly outline how to fix the problem nor what the problem is in the first place.
So, let’s take a look at some examples of elements that could be causing the problem.
- Your browser cache needs to be cleared
- Incorrect database login credentials have been used
- The website’s database is corrupt
- WordPress core files have become corrupted
- Issues exist within the database server
- PHP memory limit is exhausted
- The server has run out of disk space
- .htaccess file is corrupt or broken
- Issues exist with third-party plugins and themes
- There could be PHP timing out or errors with third-party plug-ins
- There are incorrect file/folder permissions
- There are CGI or Perl script errors
- Your hosting company made a change
Furthermore, many of these issues can arise due to a malware infection. Let’s explore how these issues could be indicators of compromise.
Can HTTP error 500 be caused by malware?
Hackers often make modifications to compromised sites — anything ranging from injecting extra code into existing files to creating thousands of malicious files and posts. These can result in 500 errors for your site.
The following scenarios can seriously affect website functioning and result in server errors if left unaddressed:
- Injected malicious code contains bugs
- Injected malicious code interferes with your website’s functionality
- Malicious code is injected into the wrong location, breaking legitimate website code
- Hackers completely replace legitimate code their own, breaking any site functionality that depended on the original legitimate file
- Hackers delete entire files or directories from the server
- Hackers encrypt legitimate files
- Too many malicious files (ie. doorways) exhaust disk quota
- The database becomes corrupted during compromise
- An attacker runs their own tools on the server, exhausting available resources required for site functionality (ie. cryptominers, DDoS bots, spam servers)
Example of how malware can cause 500 errors
Here’s an excerpt of a decoded black hat SEO doorway script that can lead to 500 errors on your website.
$search_bot=is_search_bot($ua); if($search_bot){ $response = post_url($indata_url,$data); if($response=="404"){ header("HTTP/1.0 404 Not Found"); exit; } else if($response=="500"){ header("HTTP/1.0 500 Internal Server Error"); exit; } else if($response=="blank"){ echo ''; exit; } else{ echo $response; exit; } } else{ header("HTTP/1.0 404 Not Found"); }
Since this code works for search engine crawlers, under certain conditions it can cause search engines and security scanners to return 500’s for your website.
Fortunately, there are a few ways to troubleshoot and resolve 500 internal server error notifications. Let’s dive in!
How do I fix a 500 error on my site?
Here are a few ways to troubleshoot 500 errors to get your site back up and running.
1. Clear your browser cache
This is a good troubleshooting step. This is done before looking for more debugging on your site to confirm that the issue isn’t cached on your end.
Below are instructions on how to clear cache on Google Chrome.
- Open Chrome.
- Click on the icon with the three dots icon at the top right of the browser window.
- Go to More tools then select Clear browsing data.
- Select the Time Range field, then choose one of the options that appear. To delete everything, select All time.
- Select Clear data to clear the cache.
You can opt to clear only your browsing history, or you can choose a more thorough clearing of your cache by including cookies and other site data in the cache clearing.
Note: Some website settings will get deleted and you’ll need to sign in to sessions again. You may also find that some websites seem slower, since content and images will need to load again.
2. Reload the page
When you receive the 500 error, wait a minute and then try reloading the page (F5/Ctrl + F5). It is possible that the host or server is overloaded, and the site should come back shortly. You could also try a different browser to rule out the issue.
To ensure that you are not seeing a cached page on the website, try loading the website with an appended variable like this: example.com?nocache
Another option to try is to paste the website into: downforeveryoneorjustme.com
This website can confirm if the problem is on your side, or the website is actually down. If you’re a Sucuri client, you can leverage our uptime monitoring to identify if your site is up and running or problems are detected there.
Something to note is that 500 server errors can happen immediately after you update a plug-in or theme on your WordPress site, but these are usually resolved after a refresh.
3. Check for recently installed or updated software
Investigate to see if any recently installed or upgraded software on your website failed to install or upgrade. To refresh your software, check the vendor’s website for specific instructions.
You’ll also want to audit your website for any new and unfamiliar plugins or themes. If you find anything unusual, this may be an indicator of compromise.
Investigate further to pinpoint:
- What the unfamiliar software or component is
- How long it’s been installed on your site
- Whether or not it’s legitimate
If you encounter anything that looks suspicious, remove the component and scan your website for malware.
Note: It’s always important to keep in mind that attackers regularly scan outdated and poorly maintained plugins, themes, and components for known vulnerabilities. Bad actors regularly run automated scripts to locate and target vulnerable websites. So as a rule of thumb, always keep your software up-to-date with the latest patches and security updates.
4. Check your server logs
Make use of your website monitoring and error logs. Server errors are usually logged in error.log and will contain any important information about what’s broken.
If your host doesn’t have a logging tool, you can also enable WordPress debug mode by adding the following code to your wp-config.php file to enable logging:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
Be sure to disable these WordPress debugging options as soon as you’re done troubleshooting. Any error messages found there may disclose sensitive information about your server and website, making it easier for a bad actor to hack it.
5. Check your plugins, extensions or themes
Extensible components like plugins and themes can often cause 500 internal server errors.
Most times you’ll see the error immediately after doing an update or installing something new. It’s advisable to do updates one at a time, otherwise it may become difficult to determine which update caused the internal server error.
You can again use the debug mode to coax your website into providing a specific error that will reference the broken component. As described in the last step, debug mode can be enabled in WordPress by adding the following line to your website’s wp-config.php file:
define( 'WP_DEBUG', true );
If you can get a specific error referencing a specific plugin or theme, try disabling that component and see if your website comes back online.
If not, continue troubleshooting. You can also check the error_log file in your website’s docroot to see if you can find the specific issue.
Another option is to try troubleshooting by deactivating all your plug-ins and testing them individually. We’ll outline a few options depending on whether you can access your Admin panel or not.
If you are still able to access your Admin panel in WordPress:
- Navigate to Plugins > Installed Plugins
- Select the checkbox at the top of the list to select all plugins
- Open Bulk Actions and select Deactivate.
- Click Apply to disable all your plugins to start troubleshooting.
If you are unable to access your WordPress Admin panel, try using sFTP to disable plugins:
- Connect to your server using your sFTP client.
- Navigate to the wp-content folder.
- Right-click on plugins and select Rename.
- Enter a new name for the folder. (ie. deactivated-plugins)
- Your WordPress site won’t be able to locate the folder and all plugins will be deactivated.
And if you find disabling all our plugins does in fact fix the issue, you’ll have to determine one caused the problem. Activate each of them one at a time and then reload the site after each activation. When you see the 500 internal server error return, you will know which one caused the error. Then reach out to the plugin developer for assistance.
Added bonus: You might find that having fewer active plug-ins on your site helps things run more smoothly.
6. Check for errors establishing a database connection
500 internal server errors can also occur from a database connection error.
Depending on your browser you might see a number of different errors, but both generate a 500 HTTP status code in your server logs. With this error, your entire page will appear blank as no data can be retrieved to render the page because the connection is not working properly. This will break the front-end of your site and will also prevent you from accessing your WordPress dashboard.

A few reasons why this happens:
- One of the most common reasons is that your database login credentials are incorrect.
- Your database could be corrupt. With a lot of moving parts with themes, plugins, and users constantly deleting and installing them, databases occasionally get corrupted. This could be due to a missing or individually corrupted table, or perhaps some information was deleted by accident.
- There are issues with your database server. A number of things could be wrong on the web hosts end. The database could be overloaded from a spike in traffic, or it could be unresponsive from too many concurrent connections.
To troubleshoot a database connection error, first take a backup of your website. Then run through the following steps:
- Check your database login credentials. This is a common issue that should be ruled out before troubleshooting further, so make sure details in your wp-config.php file are accurate.
- Check for a corrupted database. If your database has become corrupted, WordPress has a database repair mode you can initiate. Add the following to your wp-config.php file: define(‘WP_ALLOW_REPAIR’, true); then navigate to https://yourdomain.com/wp-admin/maint/repair.php. From here, you’ll have the option to repair and optimize your database.Be sure to remove the WP_ALLOW_REPAIR statement from wp-config once you’re done to ensure nobody else can access the page on your site.
- Check with your hosting provider. Too many concurrent connections can cause database connection errors and many hosts limit the number of connections that are permitted for any given server.
- Restore a backup. If you aren’t worried about losing any data, try restoring a backup of your website files and database.
7. Check for problems with your .htaccess file
The .htaccess is a crucial file for Apache server environments. If you are using WordPress with Apache and have recently started encountering 500 errors, your .htaccess file could be corrupt or damaged.
Moreover, the .htaccess file is notorious for being targeted during a compromise. Attackers can use the file to conceal malware, redirect search engines to spam websites, inject malicious content into a website, modify php.ini values, or even conceal backdoors.
To begin, you’ll want to assess if any problems with your .htaccess are the result of a hack or an update to your .htaccess file.
You can locate your .htaccess file by accessing your website files through a file manager like cPanel or via FTP/SFTP. The file will probably be located in your public_html directory. There’s a good chance your server will hide this file from view by default and you’ll need to toggle hidden files to see it.
8. Check for permissions errors
Occasionally, file permissions may be accidentally altered or incorrectly set resulting in a permissions issue. A permissions error for an important file can result in 500 internal server errors.
To resolve this issue, you’ll need to connect to your server via FTP/SFTP and review your site’s file permissions. Each file and directory has unique file permissions that control access. These permissions are represented by a three-digit number. Each digit indicates the level of permission for the owner, group, and others (respectively).
The ideal file permissions for a WordPress site are:
- Files: 644 or 640
- Directories: 755 or 750
- wp-config.php: 440 or 400
You can refer to the WordPress Codex article on changing file permissions for more details.
9. Check for PHP memory limit on your server or website
A 500 internal server error could also be caused by exhausting the PHP memory limit on your server. Try increasing the limit.
PHP timeouts can also occur from the lack of PHP workers, although these typically cause 504 errors — not 500 errors. These determine how many simultaneous requests your site can handle at any given time. Simply put, each uncached request for your website is handled by a PHP Worker.
When PHP workers are already busy on a site, they start to build up a queue. Once you’ve reached your limit of PHP workers, the queue starts to push out older requests which could result in 500 errors or incomplete requests.
Follow the instructions below on how to change this limit in cPanel or Apache.
Increase PHP Memory Limit in cPanel
If you’re running on a host that uses cPanel, you can easily change this from the UI.
- Under Software click on Select PHP Version.
- To choose the PHP version, select Switch to PHP Options.
- Click on the memory_limit attribute and change its value.
- Click Save.
Increase PHP Memory Limit in Apache
You can modify server behavior from your .htaccess file right down to a directory specific level:
- Log into your site via FTP or SSH.
- Locate your .htaccess file.
- Add or replace the following line in your .htaccess file, modifying xxx with the new memory limit value in megabytes that you want to set: php_value memory_limit xxx
- Save the changes.
You can verify that the new setting is active by creating a PHP test file containing the following code in the same directory as your .htaccess file:
<?php phpinfo(); ?>
Simply load your new test file in a browser and the Local Value should display the value that you set in your .htaccess file.
Increase PHP Memory Limit in WordPress
Sometimes, all that needs to be done is to increase the amount of memory that WordPress itself is able to consume. This can be done by adding the following line to wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
10. Check for server issues with your host
Sometimes these errors can be difficult to troubleshoot without an expert, so you can always check with your host. Ask your service provider to access your error logs and help you pinpoint the issue.
In some cases, you may also be experiencing connectivity issues with your host server due to some unexpected network failures at an upstream provider that affects the connectivity to your host server. If so, they will be able to shed some light on whether this is affecting you and your website visitors.
Do 500 errors impact SEO?
500 errors can have a negative impact on SEO if not addressed.
Googlebot will typically retry pages that are serving 500 errors. If they persist, Googlebot will reduce the crawl frequency and over time eventually drop the URLs from the index.
Moreover, if the 500 errors are happening due to a malware infection and Google identifies that your website has been hacked or is serving malicious content, the infection could result in blocklisting — and this can significantly impact your search rankings and organic traffic.
So, the first step is to determine why the 500 errors are occurring and address them to mitigate risk for your SEO.
Resolving a 500 error due to malware
500 internal server errors are extremely frustrating, but after these troubleshooting tips you should be able to get your website back up and running in no time.
Keep in mind that these types of errors can be caused by the plethora of issues outlined in this post, but sometimes malware infections can also result in 500 errors.
- It’s in malware’s best interest to keep the victim website online, but if a malware injection is buggy and breaks the code on the website it can result in a 500 error.
- Malware like cryptominers can eat up resources on the server, causing timeouts, slow performance and 500 errors.
- In the wake of a blackhat SEO infection, thousands of spam pages can be generated on a website. Search engines will continue to try to crawl these pages even after they’ve been removed, and result in degraded performance and sometimes server timeouts or 500 errors.
If you’ve followed these troubleshooting steps and suspect that your website has been hacked, you can refer to our guide on how to clean up malware. If you need a hand, we’d be happy to help clean up your infected website.







![Malware comes in many different varieties. Analyst Krasimir Konov is on this month’s Sucuri Sit-Down to help keep them all straight. From malicious iframes to SEO spam, join host Justin Channell as he racks Krasimir’s brain on all the different types of malware. Also, Krasimir discusses his recent blog post about a malicious cURL downloader, and Justin breaks down the latest website security news, including patched plugins you should update. Podcast Transcript 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 have our analyst Krasimir Konov to chat about some different types of malware, but first, let's take a look at other topics we've published on our blog and Sucuri labs notes this month. First up, we have some new information about credit card skimming with hackers using a hybrid method to steal payment information from eCommerce websites. Our analyst Dennis Sinegubko wrote about this for the Sucuri blog back at the beginning of June. Now, most credit card stealing malware is a client side JavaScript that grabs data and sends it to a third party server. But, that approach has a drawback for bad actors because it's still possible to track the requests and catch them as being suspicious. Now, to get around that, bad actors have started harvesting information server side by modifying core PHP files. In this case, the infection would be undetectable from the outside, but it's still going to be pretty easy to find because you're rarely modifying any of those core files, so any of those changes that are going to come up are going to be suspicious. To get around both of these drawbacks, we're seeing bad actors combine the two. So client side snippets of JavaScript are sending stolen credit card data to server side scripts that they've installed on the same server as the site. Now, this allows bad actors to cover their tracks a little bit because the traffic that's being redirected is going to the same server, and that's less likely to be flagged as suspicious. It's a bit more complicated to pull this off, but our team has been seeing this hybrid approach in the wild, so it's something to be on the lookout for. Now, another month has passed, and we found more cross site scripting attacks targeting WordPress plugins. Most notably, we discovered one that affects users of the YITH WooCommerce Ajax Product Filter plugin. Now, this is a plugin that allows WooCommerce stores to be filtered by product type, and it's pretty popular. It's got about 100,000 users right now, so with it being vulnerable, it's very important that all of them update to the latest version, which is 3.11.1. Some of the other plugins we found cross site scripting vulnerabilities with included Elementor Page Builder, Careerfy, JobSearch, and Newspaper. If you're looking for a full list of vulnerabilities that have been patched this month, John Castro at the Sucuri Labs blog has you covered. Check out our show notes for the link. Also, this month I had a blog go up detailing what's called a jibberish hack. It's basically the same motivation as an SEO spam attack where bad actors use your site's good standing to redirect visitors to their own sites. But in this attack, you'll find a bunch of randomly named folders filled with a ton of HTML files with really nonsensical file names like cheap-cool-hairstyles-photos.html. It's just going to be a mishmash of keywords that clearly you didn't put there. Unfortunately, just deleting all those HTML files and folders is not going to be enough to get rid of that jibberish hack though. You're going to need to fully clean any hacked files and database tables, and then you're going to have to deal with all the damage caused to your site's standing. And just keep in mind, if you find anything about that process too daunting, we're always here to help. Now, for this month's Sit Down, we have Sucuri analyst Krasimir Konov. Earlier in June, he had written a lab's note about a malicious downloader script that used the curl function, and we chatted a bit about it, but more importantly, we went really in-depth on all the different varieties of malware that website owners need to be aware of. But, before I get started with Krasimir, I just wanted to remind you about the Sucuri Sync-Up, our sister podcast. It's a weekly website security news briefing that you can find anywhere you get your podcasts, as well as the video version on our social media feed, and now you can even get it on your Amazon Alexa smart speakers. Just search Amazon skills for Sucuri Sync-Up, add the flash briefing, and get new content delivered every Monday. Now, on with the show. Hi Krasimir, thanks for joining us on the show. I thought we could start off and maybe have you tell us a little bit about yourself and what you do here at Sucuri? Krasimir Konov: Yeah, sure. Well, I joined Sucuri originally in 2014, but I've been in the IT business for about 10 years. Nine of those I did security. And currently at Sucuri I'm one of the malware analysts. I used to work in the front lines, used to clean websites and whatnot, and then I gradually moved up, and now I'm working in the malware research department. And my day to day job is basically analyzing malware, and then once I analyze it and figure out what it is, then I will create a signature for it. And we'll add those signatures to our tools, so we can automate some of the work we do. And I also write some Labs Notes blog posts. Usually, if I find something interesting in malware or some security topic, I'll write about it. Justin Channell: Yeah. And of those topics recently that you wrote about, one was about a malicious curl downloader, and how exactly did that work? Krasimir Konov: Right, yeah. That was an interesting one, but not very unique or anything like that. We see that a lot with curl being used as a downloader. It's a very common malware. So rather than including the actual malware in the file, the attackers would use curl to download the malicious code. In this case, they'll download it from Pastebin, but it could be anything. It could be another website or anything like that, and curl would just make a call to the website, request the code. The website will respond with the code, and then later on, there is some code to either save the output somewhere on the website, or you'll just run it through eval and execute the actual code right away. Justin Channell: Right. And you said that it's commonly found in malware, but let's kind of maybe talk a bit broader about malware in general. What is everything that is classified as malware? Krasimir Konov: Well, in general it will be anything that the owner of the website didn't authorize, anything that was added by a third party. There is a lot of different malware. It could be even something like a defacement that will also be considered malware because it was something the user did not authorize. Even though it might not be doing anything malicious on the website, it's not infecting users, the visit is still something they did not authorize. So defacement would also be considered malware. And even something like ransomware where the website is technically not really damaged, it's all encrypted, but it's not infecting anybody. It's not doing anything malicious, but it's still encrypting the entire website and asking the user or the customer, the owner of the website for a ransom they need to pay in order to get the website back online. Justin Channell: Okay. Let's maybe break it down to each individual type of malware. For example, what would be a way that maybe I-frames could be maliciously used by a hacker? Krasimir Konov: Yeah. An I-frame can be used maliciously when it loads content from another location. You can look at the I-frame as a window that just opens another website. So anything that website has on it, you're pretty much loading it through the I-frame. So if that website is infected and it's serving some kind of malware, by opening an I-frame, you're loading all those elements, everything that was on this website. And sometimes the I-frame can be as small as pixel or something hidden somewhere off the screen, so you wouldn't even know that it was opening it. Justin Channell: And yeah, I feel like we've also seen a lot of them where they're used almost to mimic popups as well. Krasimir Konov: Yeah. I mean the I-frame, it could just load from another website and the other website could do anything. It could be serving just malware and it would try to infect the user that doesn't even know that they're being connected to the other website. It could just have some other JavaScript that's just trying to open up pop ups on the original website through the I-frame. Yeah, it could be a lot of things. Justin Channell: Okay. And also, let's talk a little bit about conditional redirects and how those work. What allows a script to detect which devices are coming in and where they're coming from? Krasimir Konov: Right. Yeah. That's a common one we see a lot. Basically, a conditional redirect would be something, it's a redirect on the website. It's obviously malicious, but there's certain conditions that need to be met before the redirect is actually executed or the redirect happens. For example, let's say if it's on a phishing website or a phishing page that is hidden somewhere on the website. For example, if Google visits it, obviously the attacker doesn't want Google to see the actual phishing page and record it as a phishing page. So they'll look for, for example, the IP address. They would look for the user agent. And a lot of times they can tell that it's a bot. So they'll just return a 404 response, for example, that will be like, "Oh, page not found." So Google would be like, "Oh, it looks like this page doesn't exist." But then if a regular user goes to the same page, then those conditions will be met. The actual website or the script behind the phishing will check and see, and be like, "Oh, this one is running Firefox or Chrome," and be like, okay. And then they'll look at the IP and be like, "Oh, he's in whatever, he's in United States somewhere." And he's like, "Oh, okay. That's good." And then once all of these conditions are met, then the actual script will serve them the actual phishing page. And it'll be like, "Oh, you need to fill out this to recover your account or whatever, or type in your credentials to log in here." Justin Channell: And so this is the type of thing we're really, a website owner is going to run into this more commonly when people are complaining about they're getting served bad content or whatever, and they can't seem to replicate it. It's likely probably these kind of redirects. Is that right? Krasimir Konov: Right, right. It could be something as specific as, for example, a range of IP addresses that correspond to an ISP or maybe let's say a country. It could be like, "Oh, were targeting only customers in the US," so if you're connecting from another country and you go to the same website or the same page, it would just say 404. It will give you a page not found. But then if you actually have an IP address from the United States, you're connecting from the United States, then it will actually show you the phishing page. Justin Channell: Now another type of malware I feel like we see a lot here is SEO spam. We hear people talking about that. What are some of the top SEO spam keywords that you see coming through? Krasimir Konov: Yeah. We get that a lot. We see a lot of spam on websites. A lot of times attackers will use SEO spam to gain ranking for their own website. Or they'll just try to include some kind of SEO spam in links to another website that they're currently running or something. I mean, these things change all the time. So a website might be up for a week and then it'll disappear, and then they'll start another campaign. But yeah, we see that a lot. We see all kinds of keywords they use. Most common ones will be something like Viagra. We'll have like jerseys for sale. A lot of times, they'll use name brands like Nike, Rolex, Prada. We've seen even some essay writing services for some reason. I'm not sure why, but that's common. We see, for example, pharmaceuticals a lot that will use specific medicine names. They'll use all kinds of replicas, like a replica bag of this, replica this, replica that. We'd see prescription, also payday loans. And obviously there's some adult related sites and things like that keywords. Justin Channell: So pretty much anything that people are going to be searching and clicking on are probably going to be targets for SEO spam? Krasimir Konov: Right. I think a lot of it commonly is pharma related because a lot of people are looking to buy medicine online, and a lot of times will require a prescription. So a lot of people are like, "Oh, let me see if I can find this medicine that I can buy it online somewhere." They don't need a prescription. They don't want to pay to visit a doctor and whatnot, and they'll look for it. And yeah. Justin Channell: Now, whenever somebody's website does get hacked with a SEO spam attack, what kind of effect can it have on the website beyond just being defaced? Krasimir Konov: Yeah. You can have a lot of things can happen, negative things. For example, the website can be blacklisted because of the keywords. And that usually represents a big red warning when you go on the website, depending on who blacklisted it. But if it's Google, for example, you'll see a big warning and it'll tell you this website contains malware or there's something wrong with this website. So, pretty much all the traffic on the website will be gone. And then you can also lose a lot of your reputation if there is a SEO spam on the website. For example, if you were ranked in say number five for certain keywords that represent your product on Google search engines, and then suddenly you get hit with SEO spam, then all these search engines then go and visit the website. And all of a sudden they're like, "Oh, there's all these weird key words on here, all this SEO spam that's causing a lot of mixed signals." And the search engines are like, "Oh, where do we rank this website now? Do we rank them with this product that's originally what the website is about? Or do we take into consideration all these other keywords that are mixed up that are SEO spam?" So, all of a sudden your website might go from being ranked number five on the first page to being on the 10th page. And then you rank for all these other keywords that you didn't intend to. And then people search for something completely different. They're searching for jerseys or something, or now they're searching for Prada products, and then suddenly your website pops up in there. So you're not really getting any good traffic, not targeted traffic. But, yeah. Justin Channell: Okay. So in a lot of ways, the effects of SEO spam would kind of be the same for defacements or any kind of malware with the blacklisting, but it does bring that kind of unique part to it where then it can also then bring traffic that you weren't expecting from somebody searching for jerseys, for example. I had not really ever thought about that. Krasimir Konov: Right, right. Yeah. It will definitely bring some traffic. I've seen a lot of times where websites will be connected. Let's say, there was 1,000 websites that were all infected with SEO spam, and it will kind of link each other to try to bring each other up into the rankings. And so you would see a lot of strange traffic from some random websites that were, for example, that were previously infected, even if they might not be anymore. But yeah, they'll be sending traffic to you or there'll be usually search engines sending you traffic, but for the wrong keywords. People are looking for something else, so obviously they're not going to be interested in your website. They're not going to buy anything because they're not looking for that. Justin Channell: And now, so thinking of the way websites get infected, a very common way it seems to be is through phishing campaigns. What are some recommendations you have for the best ways to avoid becoming a phishing victim? Krasimir Konov: Yeah. There is some ways. I mean, it depends really on the type of attack. Obviously, a lot of people, when they think of phishing, they think, "Oh, it's just like a PayPal phishing page and it just looks like the original," but it could be more subtle. If it's just a regular page where you're just going and you get redirected to another website, obviously the first thing to look is if you have the security padlocks, make sure that traffic is encrypted. A lot of these websites don't really have any encryption nowadays. More are starting to get that with pre SSLs being issued and whatnot. But that's the first thing to look and see, make sure. Anywhere you're typing your sensitive information, you want to make sure you have the padlock to make sure everything is encrypted. Krasimir Konov: But also you want to look at the URL of the actual website you're visiting. A lot of times they'll try to hide it. So you might have to be careful and look closely. Something that might be an I will be an L or something like that. And a capital I and L might look kind of similar into your IRL, so you might miss something like that. Say, if you're looking for PayPal and it might replace the L with an I, and if you don't look closely, it might look exactly the same. And you're like, "Oh, okay, it's paypal.com," but not really. So yeah. Just pay attention to the URL, make sure it is the actual website. There's no paypal.com dot something, dot something else, dot com. Yeah. You want it to just say paypal.com, and then it'll have forward slash and something else. But yeah, it gets more complicated when you have, for example, a phishing page that's injected into a regular page. For example, you have a checkout page on a website that you're buying things from and you go through the checkout page and you're looking at where you type in your credit card information and whatnot. And you might have a phishing page that actually looks exactly like a little box that gives you where you put in your credit card number, or your name, your address, and all that. So that will be more subtle. For example, that could be also an I-frame that's just coming from another page. And it will look exactly like it's part of the website. You're on the legitimate website, but only that portion of the website is actually the phishing page. And you look at it and you're like, "Oh, okay. It looks fine. I'm just putting my credentials." So that one could be a lot harder to figure it out. Usually, if it's something like that, I look for something that looks kind of out of place. Maybe they didn't get the right font. It might not be the same as the original website or there might be something out of place, some fields that are missing or some fields that are squished into the left or the right. It looks kind of awkward. It's like, why would this be like this? The whole website looks professional. There's a pink background or something, for example, and then suddenly there's this white box in the middle. It's like, ah, it looks kind of weird, out of place. Justin Channell: So pretty much if anything looks slightly out of place, you really should double check everything at that point. Krasimir Konov: Right. Right. Yeah. Obviously there's more ways that you can check, but I wouldn't get into more technical, like inspecting elements and looking at stuff, but yeah. Justin Channell: And now another type of malware that's kind of, and it kind of plays in with whatever the other infection is, is backdoors. Can you give us some examples of what backdoors can be? It's mainly just when a hacker can get back into the site to reinfect it, but I know there are a ton of different methods. And what are some of the more common ones and then maybe some that really interesting that you've seen? Krasimir Konov: Yeah, there is a lot. They'll probably be one of the first things the hacker would do is if they compromise a website, obviously they'll try to spread backdoors and just inject code everywhere so they can get back in, even if the owner of the website or webmaster cleans it. They want to try and hide some malicious code somewhere so they can always get back in. There's many variations. A backdoor could be something as simple as a single line of code to just [inaudible 00:20:19] argument, some kind of string or something via get or post. Krasimir Konov: And then it runs into an eval, so it evaluates the code and executes it. And some backdoors are very complex and they can be included in, let's say you have a WordPress site and you have a specific login page where all the login credentials are being processed and everything else. They could even inject code into that to basically bypass the whole login mechanism so that they can just bypass everything. They don't even have to know any user. They don't have to know the password, nothing. They'll just include some lines in there, and every time they'll be just able to log in. Yeah. It gets pretty crazy. Yeah. I mean, there's all kinds of malware. There is always a malware, for example, that just targets credit cards and will just target the eCommerce websites. And they'll just try to steal the login credentials, I mean, the credit cards. They'll try to get your address, your credit card information, any kind of CVV code or whatever you typed into the billing address, everything. And then there's also malware like the backdoors that are just trying to keep the attacker in control and trying to get them back into the website. There's just so many variations of what a malicious user might want to do on a website. Some can be something as simple as just reinfecting the website. They don't want to keep control. They just want to keep reinfecting it with some kind of malware. So even if you clean it, it would just get reinfected. Some of them in the database, otherwise might be in the files. We've seen some added into a [inaudible 00:22:14] job that just keeps running on the server. There could be malware that is just a giant to, for example, attack out of websites. Like for example, a distributed denial service where they put the same malware on thousands of websites. And then they try to send traffic to one website to try to bring it down. Yeah. People try to do all kinds of stuff with websites. We've seen even some cryptocurrency mining malware that you go onto a website and suddenly your PC starts running like crazy. And you're like, what the hell is going on? Your fans turn on and the PC is 100% CPU. And it turns out that the website has some malware that's just by mining Bitcoins with your CPU and it's using all of it. Justin Channell: Wow. Okay. So one question now, the last question I have is of all the malware that you've seen, what do you think is the coolest piece of malware that you've ever seen? Krasimir Konov: I think the coolest would be the ones that are so subtle that you don't even know that it's there. For example, we've seen some that were pretty innovative. It will be just a one liner code that's just one line. And for example, it will be let's say 40-50 characters, something like that. And that's all it is. And they'll hide it somewhere in between the legitimate code. And if you don't know what you're looking for, you would never see it. It doesn't look suspicious. There is no links to some other website. There's no some kind of encrypted code or anything like that. It's just a simple one line. And then if you're just scrolling through the file looking for something, you would never see it. It just looks like all the other code. And then if you look closely, you're like, "Oh, there's this..." Look closely, and you're like, "Oh wow, this is not supposed to be there." And then you keep looking at it and you're like, "This looks really weird." And then you see that it's actually doing some malicious things and trying to evaluate some code or taking output from the outside, I mean, some input from outside, you can call it and give it code to run. Justin Channell: Well, Krasimir, thanks for coming on and talking to us for today. Krasimir Konov: Yeah. Thank you. Thank you. I'm so happy. I'm glad I was able to do this podcast and I can't wait to do another one. Justin Channell: Yeah, we'll have you on again. Thanks. Krasimir Konov: Thank you. Justin Channell: Thanks again to Krasimir for joining us here on the Sit Down. We'll be back with another episode next month. So be sure to subscribe on Apple podcasts, Spotify, Stitcher, or any podcasting platform. Also, be sure to follow us on social media at Sucuri Security 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.](https://blog.sucuri.net/wp-content/uploads/2020/05/20-sucuri-podcast-blog-post_blog_image-390x183.jpg)

