1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

经常听说某某网站被黑,请问黑人家网站的基本原理是什么呢?

本帖由 漂亮的石头2016-04-27 发布。版面名称:知乎日报

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    487,766
    赞:
    47
    日报标题:原来这就是黑客们「干坏事」时候的基本修养

    [​IMG] 知乎用户,thu lv7

    SQL

    首先说明几点基本背景知识:

    1. 不管是代码还是数据,它在计算机底层看来,都不过是二进制字节流而已,没有区别;

    2. 与程序交互往往意味着数据的输入,黑客就可以写一段代码输入进去;

    3. 这就是“远程代码执行”漏洞了,感觉大部分漏洞都可以归类于此。他本质上就是:使用某个输入数据的时候,因为各种各样的原因,把这段数据作为可执行程序运行了,然后就会出现写这个输入的黑客希望的结果了;

    然后具体讨论这个案例。

    第一步是 SQL 注入,网站里最常见的注入攻击之一。

    由于网站需要存储数据,通常而言都会使用数据库,而数据库的查询通常而言都会使用 SQL 语句。

    关于 SQL 的介绍参见 SQL

    这里提到的"注入点",其实就是"提交一个特殊数据让网站执行有害 SQL 语句"的点。

    例如:

    可能网站功能是输入名字查询信息,假设输入的数据在后台是$data,

    那么写得不好的后台可能会执行 select * from info where name = '$data',

    正常情况可能就是 select * from info where name = 'thyyyy',

    然而黑客可以写这么一个输入: abc' or 'a'='a

    这样的话 语句变成了 select * from info where name = 'abc' or 'a'='a',就变成查询到全部数据了。

    更实际的 SQL 注入会有更复杂的情况,以上只是举例。

    总之,他找到这样的点之后,就可以执行他需要的语句,然后显示出本无法看到的数据库内容了。

    第二步是找到管理员权限,

    这里他是利用上面的注入,查询出数据库里的用户数据,然后得到了 admin 密码的 MD5 值。

    md5 的介绍参见 MD5

    简单来说 md5 是一个不可逆的函数,会把密码映射成一个没有规律的字符串,原则上讲这样是可以保护密码的。

    但它毕竟是一个确定的函数,因此 input 和 output 是对应的,因此机智的黑客们就想到,可以造一个表预先存好一些密码对应的 md5,这样就可以反查。 这个叫彩虹表:彩虹表

    因此利用这样的根据,使用了简单密码的话,还是很容易就被查表破解,于是这里管理员密码就被拿到了。

    第三步就是利用管理员权限去黑网站了

    不过管理员权限不是万能的,所以这里答主提到一句没有上传点,也就是说功能受限。

    这里他提到使用一个工具叫做“菜刀”打开了他的权限,这个工具我不太熟悉,了解的知友可以帮我补充一下。

    这里简单查了一下,它的核心原理应该还是远程代码执行,通过给网站提交有害的 PHP 代码,达到提升权限做各种各样事情的能力。

    做到这一步,网站里所有文件都可以被修改了,那就意味着“黑进去一个网站”了。

    以上根据个人浅薄的知识回答,望各位指正~

    阅读原文
     
正在加载...