常见的几种web攻击方式及原理

常见的几种web攻击方式

  1. SQL注入攻击
  2. 重定向攻击
  3. 上传文件攻击
  4. Dos攻击(Denial of Service attack)
  5. 跨站点请求伪造(CSRF,Cross-Site Request Forgeries)
  6. XSS攻击(Cross-Site scripting)

常见的web攻击原理

xss跨站攻击技术:

主要是攻击者往网页里嵌入恶意脚本,或者通过改变html元素属性来实现攻击,主要原因在于开发者对用户的变量直接使用导致进入html中会被直接编译成js,通常的get请求通过url来传参,可以在url中传入恶意脚本,从而获取信息,解决方法:特殊字符过滤。

    主要是攻击者往网页里嵌入恶意脚本,或者通过改变html元素属性来实现攻击,主要原因在于开发者对用户的变量直接使用导致进入html中会被直接编译成js,通常的get请求通过url来传参,可以在url中传入恶意脚本,从而获取信息,解决方法:特殊字符过滤。

  • xss是什么

    • 跨站脚本攻击
    • Web页面里面插入恶意script代码
    • 用户浏览该页之时,嵌入其中web里面的script代码会被执行
    • 分为:反射型和存储型
  • xss思路

    1. 寻找注入点
      url 是否带有参数
      用户可以输入的地方
    2. 构造攻击
      构造攻击url
      构造攻击脚本
    3. 提交
      制作诱人的连接
      提交攻击脚本
    4. 利用敏感信息
      利用这些数据做各种坏事了,比如以受害用户身份登陆漏洞网站等
  • xss的类型

    1. 反射型:通过给别人发送带有恶意脚本代码参数的url,当url地址被打开时,特有的恶意代码参数被HTML解析、执行
    2. 存储型:通过提交恶意代码,访问者点击恶意代码、图片后,恶意代码被执行或者跳转到恶意网站,造成个人信息被泄露。
sql注入攻击:

主要是就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如select * from test where username=”wuxu” or 1=1,这样会使用户跳过密码直接登录,具体解决方案:

  1. 特殊字符过滤,不要用拼接字符串的方法来凑sql语句。
  2. 对sql语句进行预编译,比如java的preparedstatement。
  3. 关闭错误信息,攻击者可能会通过不断的尝试来得到数据库的一些信息,所以关闭错误信息变得重要起来。
  4. 客户端对数据进行加密,使原来传进来的参数因为加密而被过滤掉。
  5. 控制数据库的权限,比如只能select,不能insert,防止攻击者通过select * from test ;drop tables这种操作
CSRF(Cross-site request forgery跨站请求伪造

CSRF攻击原理
CSRF攻击原理比较简单,如图1所示。其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。
用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
CSRF漏洞防御
CSRF漏洞防御主要可以从三个层面进行,即服务端的防御、用户端的防御和安全设备的防御。

Dos攻击(Denial of Service attack)

是一种针对服务器的能够让服务器呈现静止状态的攻击方式。有时候也加服务停止攻击或拒绝服务攻击。其原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝服务的状态。这就是Dos攻击。

猜你喜欢

转载自blog.csdn.net/yw00yw/article/details/80937336