黑客如何入侵网站


How hackers, are hacking the websites?

所以基本上,几天前我的一个网站客户来找我,告诉我他们的数据库和网站被黑客入侵(黑客以某种方式从数据库中窃取了md5哈希密码),登录管理面板,并更改了数据。嗯,是的,我在 1 年半前创建了那个页面,所以当时我不知道更好的hash或盐。无论如何,他们如何破解数据库?基本上,是否有任何保护措施,或者他们是否使用任何类型的JavaScript代码,我不应该允许加载,或者其他什么?

希望你能帮助我解决这个问题,这样我就可以创建更多受保护的网站。

这是该站点以前的登录代码。根据请求添加 -

  public function loginUser($username, $password) {
    if(isset($_POST['login'])) {
      if($username != '' && $password != '') {
        $sql = "SELECT * FROM `users` WHERE `username` = '".$username."' AND `password` = '".$password."'";
        $q = mysql_query($sql);
        $row = mysql_fetch_array($q);
        if(mysql_num_rows($q) > 0) {
          if($row['level'] == 'admin') {
            $_SESSION['user_level'] = 'admin';
          }
          else {
            $_SESSION['user_level'] = 'normal';
          }
          $_SESSION['logged_in'] = 1;
          header('location: account.php');
        } 
        else {
          header('location: error2.php');
          // Return to page and show error
        }
      }
      else {
        header('location: error1.php');
        // Show error, when people have empty fields entered
      }
    }

如果没有更多信息,就不可能肯定地说,但最有可能的情况是你的应用程序容易受到SQL注入的攻击,这使得攻击者能够让站点显示数据库的内容。另一种可能性是目录遍历攻击允许他们直接下载数据库文件。

由于MD5现在已经

完全坏了(无论你是否使用盐,MD5都不再重要),其余的都很简单。

你应该阅读SQL注入(也许这就是他们在你的数据库中获取信息的方式)。

然后你应该看看XSS。

你要做的第一件事是验证每一个输入,一切!

针对 SQLi,您应该使用预准备语句。

针对XSS,您应该对所有内容进行编码!

但是,嘿,不用担心,你可以用谷歌搜索所有这些!