网络实习

软件定义网络 SDN

SDN 概念

  • 传统网络元素
    • HUB 物理层
    • 交换机 数据链路层
    • 路由器 网络层
  • 网络功能虚拟化: 不再用专用网络设备, 而使用通用设备和特定的虚拟化软件
  • 传统紧耦合的网络设备被拆分成应用 控制 和 转发 三层

    底层的网络设备被抽象为可自定义的逻辑尸体, 可被上层应用定义为不同类型

    在应用层, 用户可以通过通用, 简单的API获取网络信息, 并可修改转发设备的工作逻辑, 达到动态改变网络架构的木的
  • SDN 网络元素
    • SDN交换机
      工作层面:转发层面
      协议:无
      转发策略:根据控制器配置
    • SDN控制器
      控制层面
      协议: 南向 Openflow 协议, 北向提供 API
      转发策略: 可配置
    • APP
      应用层面
      特点: 可使用常用编程语言, 通过 API 控制

控制层

  • SDN Controller FloodLight
  • Rest API
    • 把数据封装在 Switch 里, 通过 HTTP 协议指定 URL 访问指定 Switch 进行访问。
  • 其他 Controller
  • OpenFLow 协议介绍
  • 基于 FAST 架构的 OpenFlow 通道实现

第三讲 OpenBox-S4 以及 FAST 架构介绍

FAST 架构简介

  • 面向 FPGA + 多核 CPU 的异构分组处理平台, FAST 支持 FPGA 中的硬件流水线与 CPU 上的用户定义软件模块(UA) 协同处理
    • 典型 UA :
      • Linux 协议栈(控制平面)
      • Openflow 通道
      • 数据平面扩展功能
  • UM 五级流水
  • UA
  • FAST 支撑程序

OpenFLow 通道原理讲解

第四讲

xinu代码阅读

  • system/main.c
    • 启动 shell 进程
  • include/process.h
    • 定义了 process table 的结构
  • system/resched.c
    • resched:重新按优先级安排进程
    • resched_cntl: 控制是否允许重新安排
  • system/resume.c
    • resume: 不再挂起指定进程,让它处于 ready 状态
  • system/suspend.c
  • system/kill.c
  • system/xdone.c
    • 提示所有用户进程结束后 halt
  • system/create.c
    • 初始状态 PR_SUSP
  • system/userret.c
    • 强制结束当前进程
  • system/chprio.c
    • 改变进程优先级
  • system/wait.c
  • system/signal.c
    • 释放一个等待队列中的进程?
  • system/semcreate
  • system/semdelete
  • system/semreset
  • system/send
    • 发送消息并 ready 一个进程
  • system/recvclr.c

    • 如果有消息则返回消息, 没有则返回ok, 然后清空消息
  • 要添加系统调用

    • 在 system 中创建函数
    • 在 include/xinu.h 中 include 进来
    • 在 shell 中创建 xsh_xxxx.c
    • 在 shell.c 的 cmdtab 中加入
    • 在 Makefile 中加入对应文件编译

计算机网络概论

第二讲

  • 重点:

    • 组播技术
    • 网络技术
    • 评判网络的性能指标

阅读全文

操作系统

第一讲

中央处理器(CPU)

阅读全文

编译技术复习

第二章 一个简单的语法指导翻译器

2.1 引言

阅读全文

应用克隆漏洞

漏洞发现

由腾讯玄武实验室发现支付宝存在该漏洞

漏洞特征

test

攻击流程

test

漏洞攻击原理

  • 该漏洞主要利用了Android系统WebView控件的同源策略漏洞来进行攻击,Android应用内部分可导出的Activity组件中,WebView允许通过file url对http域进行访问,并且并未对file域的路径进行严格校验所导致的。

  • 该漏洞会打破Android应用的沙箱隔离机制,即A应用可以通过B应用导出的Activity让B应用加载一个恶意file协议的url,从而获取B应用的内部私有文件。

  • 当APP出现以下两种情况时,即受该漏洞的影响:

    1. WebView中setAllowFileAccessFromFileURLs 或**setAllowUniversalAccessFromFileURLsAPI配置为true;
    2. WebView可以直接被外部调用,并能够加载外部可控的HTML文件。

漏洞的初步修复建议

  • file域访问为非功能需求时,手动在Activity中配置setAllowFileAccessFromFileURLs或setAllowUniversalAccessFromFileURLs两个API为false。(Android4.1版本之前这两个API默认是true,需要显式设置为false)

  • 若需要开启file域访问,则设置file路径的白名单,严格控制file域的访问范围,具体如下:

    1. 固定不变的HTML文件可以放在assets或res目录下,file:///android_asset和file:///android_res 在不开启API的情况下也可以访问;
    2. 可能会更新的HTML文件放在/data/data/(app) 目录下,避免被第三方替换或修改;
    3. 对file域请求做白名单限制时,需要对“../../”特殊情况进行处理,避免白名单被绕过。
  • 避免App内部的WebView被不信任的第三方调用。排查内置WebView的Activity是否被导出、必须导出的Activity是否会通过参数传递调起内置的WebView等。

  • 建议进一步对APP目录下的敏感数据进行保护。客户端APP应用设备相关信息(如IMEI、IMSI、Android_id等)作为密钥对敏感数据进行加密。使攻击者难以利用相关漏洞获得敏感信息。

简单复现及处理

  • 将一下内容保存为html文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <!DOCTYPE>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>webview</title>
    <style></style>
    <script type="text/javascript">
    <!--alert("1");-->
    function loadData(){
    var arm="file:///mnt/sdcard/abc.txt";
    var xmlhttp;
    if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
    }
    xmlhttp.onreadystatechange = function(){

    if (xmlhttp.readyState == 4) {
    alert("3");
    alert(xmlhttp.responseText);
    }
    }
    xmlhttp.open("GET",arm);
    xmlhttp.send(null);
    }
    <!--alert("2");-->
    </script>
    </head>

    <body>
    <input type="button" name="btn" value="触发漏洞" onclick="loadData()" />
    </body>
  • 将该文件放到assets目录下,在手机sd卡目录下,新建一个abc.txt,键入部分文字。

  • 使用webview加载该文件,点击触发漏洞按钮,如果弹出内容为空,则说明加载不到(在该手机上无此漏洞);如果弹出了文件中的内容,则说明在该手机上需要进行处理

  • 如果存在该漏洞,并且app不需要进行文件域操作,那么,设置为false即可。

    1
    2
    3
    WebSettings wSet = wView.getSettings();
    wSet.setAllowFileAccessFromFileURLs(false);
    wSet.setAllowUniversalAccessFromFileURLs(false);
  • 如果因为需求需要,那么我们可以在该方法中拦截url,对非法或者不符合预期的url进行拦截,不让其加载。

    1
    2
    3
    4
    @Override
    public void onLoadResource(WebView view, String url) {
    super.onLoadResource(view, url);
    }

漏洞的危害

在备份旧手机应用数据,恢复到新手机的过程中。

认出来我换设备的APP有且只有一款:

Lastpass–密码安全应用,果然是专业的,克隆后启动,显示设备被禁用。给我发了提醒邮件,让我确认新设备登录。


其他支付宝,微博,微信,QQ,工行,建行,招行等的客户端,百度安全中心,YY安全中心,QQ安全中心,google身份验证器等一票涉及金融,涉及密保的APP都没发现,他们在新设备里运行。

支付宝,微博,微信,QQ,工行,建行,招行–这些还好一点,毕竟关闭小额免密后还只是个人信息的泄露。


这里对我认为危害最大的是谷歌的原生应用,也是最核心安全应用——–(google)身份验证器,和各种XX安全中心,还有微信

百度安全中心,YY安全中心,QQ安全中心虽然也可以实现克隆动态令牌,但是我可以在这些APP里给他们设置启动密码,克隆出来的APP也需要输入密码才能进去。而(google)身份验证器、微信是无法设置启动密码的。他就不支持设置启动密码。


身份验证器是google的密保,是lastpass的密保,是teamviewer的密保,是博客后台的密保,是VPS的密保。Gmail邮箱是很多账号的密保邮箱。

而现在很多应用也在使用微信验证码。

这意味着,如果身份验证器、微信被克隆。整个账号安全防御体系都可能整体崩溃。

转自知乎 Happy Ennding 的回答

更详细的漏洞复现

https://www.cnblogs.com/goodhacker/p/8748681.html

检测方法

暂时没有查询到任何自动化的检测方法, 百度百科表示该漏洞的检测无法自动化进行必须要人工检测。360提出有自动化检测方法,但网上没有任何自动化检测的方法以及方向

CTF Web 萌新的小笔记

目录

  1. 文件上传

文件上传

  • 上传 php 文件并过滤 <?php ?> 标签的时候 可以使用 绕过

    如果只过滤了小写的 php 可以用 strtolower(‘PHP’) 来绕过

    题目出处: 2017 百度杯9月场 Upload

CG-CTF Web 部分 write up

签到题

打开源码就能看到 flag

md5 collision

md5 碰撞, 这里用的是 PHP 对字符串 0exxx 使用科学计数法计算, 将 QNKCDZO 进行 md5 加密,密文为0e830400451993494058024219903391, 只需要再找一个 0e 开头的字符串即可:s878926199a

阅读全文

计组复(yu)习笔记(慕课)

运算器

0x01 加法器和减法器

  • 4-bit RCA的关键路径(延迟最长的路径)
    test

阅读全文

计组复(yu)习笔记

第二讲-计算机的基本结构

0x01 冯·诺依曼结构的要点

  • 五个组成部分:运算器(CA),控制器(CC),储存器(M),输入设备(I),输出设备(O)

  • plus:外部储存设备(R) example:bios芯片

0x02 x86指令系统概览

  • Intel 8086(1978)

    • 16位通用寄存器
    • 对外16根数据线,20 根地址线,内存空间1MB
    • 物理地址采用段+偏移的形式
  • Intel 80286(1982)

    • 地址总线 24 位,内存 16 MB
    • 引入保护模式
    • 兼容8060,有实模式
  • 实模式(实地址模式)

    • 运行在实模式下的 80x86 微处理器像是一个更快的 8086
    • 所有x86处理器在加电或复位后首先进入实模式
    • 系统初始化程序在实模式下运行,为进入保护模式做好准备
  • Intel 80386(第一款32位处理器)
  • 三种模式的转换
    test


阅读全文