2.1.1. 常见网站攻击方式以及开发防范手段

  • 暴力攻击
    • Ddos
    • 邮件炸弹
  • 脚本攻击
    • Sql注入
    • Xss
    • Csrf + 中间人攻击
    • 重定向(钓鱼网站)
  • 高级攻击方式
    • Sniffer扫描
    • 京东(struts2)缓冲区逸出

2.1.1. 脚本攻击

2.1.1.1. Sql注入

  • 数据库被非法修改
  • 拖库

原因:sql拼接

  • 使用preparedStatement
  • 不要直接使用JDBCTemplate,使用NamedParameterJdbcTemplate

如下:

update table set aaa = xx where id = 1;delete from table1

id为条件,如果被传进来是后面的一句话,那么就拼接成了多条sql。 至于为什么使用preparedStatement就可以防范了。还有待去查看。

2.1.1.2. XSS(跨站脚本攻击)

如:在插入的字符串里面添加js脚本。 注:现在的前端框架一般都会当成字符串处理。

网站会直接展示用户输入,造成字符串被直接当次html代码执行

  1. 对用户输入进行校验:转义<>等符号
  2. 富文本编辑框得到的内容。(一般自带内容转义功能)

2.1.1.3. CSRF(请求伪造)

因为通过了别人的代理。所以 这个代理可以拿到你的请求并修改或则存储你的信息; http 协议是文本协议。所以容易被获取。 https 是二进制协议。所以不太容易被获取

2.1.1.3.1. 解决方案

SSL - 证书

  • 证书安全
  • 运维部署困难

加签/验签 sign

也就是签名,服务端和客户端都有一个签名。 类似微信的签名。

: 该方案的key不能在网络中传输,也就是不能用于js中

  • 算法 类似微信的算法,自然排序,再加上key,变成一个字符串,进行MD5/RSA 等加密算法得到一个字符串sign
  • key

应用场景

  • 金融接口
  • 收单接口

服务端到服务端通信,或则手机端app对服务端的通信

2.1.1.4. 重定向(钓鱼网站)

上图中,单点登录后,需要跳转回原来的地址,那么这个地址,是通过请求发送过去的。也就是在这一步,如果被伪造修改,那么登录之后就会调转到修改之后的地址。

2.1.1.5. sniffer

  • 端口扫描
    • 扫描软件漏洞
      • oracle:1521
      • Mysql:3309
      • Svn:3690
      • Redis:6379(bug)
      • SSH:22(bug)
  • telnet
    • 防ping
    • 防火墙
    • 端口自定义

2.1.1.6. 缓冲区逸出

通过端口扫描,可以用缓冲区逸出来攻击

京东 - Struts2

  • 12年出现严重的bug
  • 接受参数的时候,使用ognl,ognl里面的map存在严重的hash冲突的时候,就会溢出,直接获得shell

Oracle

  • 缓冲区逸出(php)
  • (代码里面限定数据大小)
© All Rights Reserved            updated 2017-02-08 21:40:53

results matching ""

    No results matching ""