0%

武汉科技大学信息安全协会

讲真的,最舒服的就是进去的那一下,不进去永远体会不到在里面的快感和激情

光看着信安协会不进是感受不到快感的,先进来看看介绍吧

0x00 . 关于WUST-AIS

信息安全协会创立于2017年9月,响应国家网络安全的人才需要,协会以CTF(夺旗赛)竞赛为主,研究网络安全,逆向工程,二进制漏洞利用等方向,还包含管理安全,安全开发,社会工程学等研究方向,是一个覆盖面极广的学术与技术性的组织,是武科大最优秀的黑客集中地,低调且有条不紊地发展着。

在这里,你可能会涉及到或学到:

  • 不同于程序员的思考思维
  • 学校可能不会学到的知识或者骚操作
  • 强大的学习能力以及 Google 能力
  • 很骚但什么都要学的Web安全
  • 以逆向思维去分析代码和逻辑的逆向工程
  • 象征着获取权限的二进制安全 “Pwn”
  • 不但什么都要学且脑洞要大的 Misc 杂项类
  • 像破解你心爱的人空间密码一样的密码学

0x01 . 关于CTF

​ 本栏内容摘自诸葛建伟老师在 i 春秋上的公开视频「CTF 的过去、现在与未来」。

CTF 的起源

​ CTF 的前身是传统黑客之间网络技术比拼的游戏,起源于 1996 年第四届 DEFCON。

早期 CTF 竞赛

​ 最开始的 CTF 比赛(1996 年-2001 年),没有明确的比赛规则,没有专业搭建的比赛平台与环境。由参数队伍各自准备比赛目标(自己准备的比赛目标自己防守并要尝试攻破对方提供的比赛目标)。而组织者大都只是一些非专业的志愿者,接受参赛队伍请求手工计分。

​ 没有后台自动系统支持和裁判技术能力认定,计分延迟和误差以及不可靠的网络和不当的配置,导致比赛带来了极大的争论与不满。

「现代」CTF 竞赛

​ 由专业队伍承担比赛平台、命题、赛事组织以及自动化积分系统。参赛队伍需提交参赛申请,由 DEFCON 会议组织者们进行评选。

​ 就 LegitBS 组织的三年 DEFCON CTF 比赛而言,有以下突出特点:

  • 比赛侧重于对计算机底层和系统安全核心能力,Web 漏洞攻防技巧完全不受重视。

  • 竞赛环境趋向多 CPU 指令架构集,多操作系统,多编程语言。

  • 采用「零和」计分规则。

  • 团队综合能力考研:逆向分析、漏洞挖掘、漏洞利用、漏洞修补加固、网络流量分析、系统安全运维以及面向安全的编程调试。

0x02 . 关于CTF的主要方向

A.MISC 简介

​ Misc是英文miscellaneous的前四个字母,杂项、混合体、大杂烩的意思。

​ 在Misc这一方向中,主要介绍以下的知识:

  • Recon(信息搜集)

    ​ 主要介绍一些获取信息的渠道和一些利用Baidu && Google等搜索引擎的技巧

  • Encode(编码转换)

    ​ 主要介绍在CTF比赛中一些常见的编码形式以及转换的技巧和常见方式

  • Forensic && Stego(数字取证 && 隐写分析)

    ​ 隐写取证是Misc中最为重要的一块,包括文件分析、隐写、内存镜像分析和流量抓包分析等等,涉及巧妙的编码、隐藏数据、层层嵌套的文件中的文件,灵活利用搜索引擎获取所需要的信息等等。

    ​ CTF中Misc与现实中的取证不同,现实中的取证很少会涉及巧妙的编码加密,数据隐藏,被分散嵌套在各处的文件字符串,或是其他脑洞类的Chanllenge。很多时候是去精心恢复一个残损的文件,挖掘损坏硬盘中的蛛丝马迹,或者从内存镜像中抽取有用的信息。

    ​ 现实的取证需要从业者能够找出间接的恶意行为证据:攻击者攻击系统的痕迹,或是内部威胁行为的痕迹。实际工作中计算机取证大部分是从日志、内存、文件系统中找出犯罪线索,并找出与文件或文件系统中数据的关系。而流量取证比起内容数据的分析,更注重元数据的分析,也就是当前不同端点间常用TLS加密的网络会话。

    ​ MISC 是切入 CTF 竞赛领域,,培养兴趣的最佳入口。MISC 考察基本知识,对安全技能的各个层面都有不同程度的涉及,可以在很大程度上启发思维。

B.密码学 简介

​ 密码学(Cryptography)一般可分为古典密码学和现代密码学。

​ 其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰的定义。其主要包含以下几个方面

  • 单表替换加密

  • 多表替换加密

  • 奇奇怪怪的加密方式

    ​ 而现代密码学则起源于 20 世纪末出现的大量相关理论,这些理论使得现代密码学成为了一种可以系统而严格地学习的科学。现代密码学又可以简单的分为以下几个方面

  • 对称密码,以 DES,AES,RC4 为代表

  • 非对称密码,以 RSA,椭圆曲线加密为代表

  • HASH,以 MD5,SHA1,SHA512 等为代表

  • 数字签名,以 RSA 签名,ElGamal 签名,DSA 签名为代表

    其加密方式主要有两种方式

  • 块加密

  • 流加密

    一般来说,密码设计者的基本想法是确保密码框架的

  • 保密性

  • 完整性

  • 可用性

  • 不可否认性

    ​ 其中,前三者又称为 CIA 三元组。

​ 而对于密码破解者来说,一般都是要想办法识别密码算法,然后利用暴力破解方法或者密码框架的漏洞进行破解。当然,也有可能是处于希望构造虚假的哈希值或者签名来绕过相应的检测。

​ 一般来说,我们都会假设攻击者知道要攻破的密码体制,一般来说会有如下几种攻击类型

  • 唯密文攻击
  • 已知明文攻击
  • 选择明文攻击
  • 选择密文攻击

C.WEB 简介

随着 WEB 2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于 WEB 环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在 WEB 平台上,WEB 业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是 WEB 安全威胁的凸显,黑客利用网站操作系统的漏洞和 WEB 服务程序的漏洞得到 WEB 服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。

在 CTF 竞赛中,WEB 也是占比重很大的一个方向之一,WEB 类的题目种类繁多,知识点细碎,时效性强,能紧跟时下热点漏洞,贴近实战。

WEB 类的题目包括但不限于:SQL 注入、XSS 跨站脚本、CSRF 跨站请求伪造、文件上传、文件包含、框架安全、PHP 常见漏洞、代码审计等。

SQL 注入

通过在用户可控参数中注入 SQL 语法,破坏原有 SQL 结构,达到编写程序时意料之外结果的攻击行为。其成因可以归结为以下两个原因叠加造成的: 1. 程序编写者在处理应用程序和数据库交互时,使用字符串拼接的方式构造 SQL 语句 2. 未对用户可控参数进行足够的过滤便将参数内容拼接进入到 SQL 语句中

XSS 跨站脚本攻击

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 WEB 页面里插入恶意 HTML 代码,当用户浏览该页之时,嵌入其中 Web 里面的 HTML 代码会被执行,从而达到恶意攻击用户的特殊目的。

命令执行

当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如 PHP 中的 system 、 exec 、 shell_exec 等,当用户可以控制命令执行函数中的参数时,将可以注入恶意系统命令到正常命令中,造成命令执行攻击。这里还是主要以 PHP 为主介绍命令执行漏洞,Java 等应用的细节待补充。

文件包含

如果允许客户端用户输入控制动态包含在服务器端的文件,会导致恶意代码的执行及敏感信息泄露,主要包括本地文件包含和远程文件包含两种形式。

CSRF 跨站请求伪造

跨站请求伪造(Cross-Site Request Forgery,CSRF)是一种使已登录用户在不知情的情况下执行某种动作的攻击。因为攻击者看不到伪造请求的响应结果,所以 CSRF 攻击主要用来执行动作,而非窃取用户数据。当受害者是一个普通用户时,CSRF 可以实现在其不知情的情况下转移用户资金、发送邮件等操作;但是如果受害者是一个具有管理员权限的用户时 CSRF 则可能威胁到整个 WEB 系统的安全。

SSRF 服务器端请求伪造

SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统。

文件上传

在网站的运营过程中,不可避免地要对网站的某些页面或者内容进行更新,这时便需要使用到网站的文件上传的功能。如果不对被上传的文件进行限制或者限制被绕过,该功能便有可能会被利用于上传可执行文件、脚本到服务器上,进而进一步导致服务器沦陷。

点击劫持

Clickjacking(点击劫持)是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼在 2008 年首创的。

是一种视觉欺骗手段,在 WEB 端就是 iframe 嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。

由于点击劫持的出现,便出现了反 frame 嵌套的方式,因为点击劫持需要 iframe 嵌套页面来攻击。

下面代码是最常见的防止 frame 嵌套的例子:

if(top.location!=location) top.location=self.location;

VPS 虚拟专用服务器

VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。实现 VPS 的技术分为容器技术,和虚拟化技术。在容器或虚拟机中,每个 VPS 都可分配独立公网 IP 地址、独立操作系统、实现不同 VPS 间磁盘空间、内存、CPU 资源、进程和系统配置的隔离,为用户和应用程序模拟出独占使用计算资源的体验。VPS 可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS 为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于 IDC 资源租用。

IDC 资源租用,由 VPS 提供商提供。不同 VPS 提供商所使用的硬件 VPS 软件的差异,及销售策略的不同,VPS 的使用体验也有较大差异。尤其是 VPS 提供商超卖,导致实体服务器超负荷时,VPS 性能将受到极大影响。相对来说,容器技术比虚拟机技术硬件使用效率更高,更易于超卖,所以一般来说容器 VPS 的价格都高于虚拟机 VPS 的价格。

条件竞争

条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进行的,因此,如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发生。

XXE

XXE Injection 即 XML External Entity Injection,也就是 XML 外部实体注入攻击.漏洞是在对非安全的外部实体数据进⾏行处理时引发的安全问题。

在 XML 1.0 标准里,XML 文档结构⾥里定义了实体(entity)这个概念.实体可以通过预定义在文档中调用,实体的标识符可访问本地或远程内容.如果在这个过程中引入了「污染」源,在对 XML 文档处理后则可能导致信息泄漏等安全问题。

XSCH

由于网站开发者在使用 flash、Silverlight 等进行开发的过程中的疏忽,没有对跨域策略文件(crossdomain.xml)进行正确的配置导致问题产生。 例如:

1
</cross-domain-policy>

因为跨域策略文件配置为 *,也就指任意域的 flash 都可以与它交互,导致可以发起请求、获取数据。

越权(功能级访问缺失)

越权漏洞是 WEB 应用程序中一种常见的安全漏洞。它的威胁在于一个账户即可控制全站用户数据。当然这些数据仅限于存在漏洞功能对应的数据。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。所以测试越权就是和开发人员拼细心的过程。 敏感信息泄露

敏感信息指不为公众所知悉,具有实际和潜在利用价值,丢失、不当使用或未经授权访问对社会、企业或个人造成危害的信息。包括:个人隐私信息、业务经营信息、财务信息、人事信息、IT 运维信息等。 泄露途径:Github、百度文库、Google code、网站目录等。 错误的安全配置

Security Misconfiguration:有时候,使用默认的安全配置可能会导致应用程序容易遭受多种攻击。在已经部署的应用、WEB 服务器、数据库服务器、操作系统、代码库以及所有和应用程序相关的组件中,都应该使用现有的最佳安全配置,这一点至关重要。

WAF

Web 应用防护系统(也称:网站应用级入侵防御系统。英文:Web Application Firewall,简称:WAF)。利用国际上公认的一种说法:WEB 应用防火墙是通过执行一系列针对 HTTP/HTTPS 的安全策略来专门为 WEB 应用提供保护的一款产品。

IDS

IDS 是英文 Intrusion Detection Systems 的缩写,中文意思是「入侵检测系统」。专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么 IDS 就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。

IPS

入侵防御系统(IPS:Intrusion Prevention System)是电脑网络安全设施,是对防病毒软件(Antivirus Programs)和防火墙(Packet Filter,Application Gateway)的补充。入侵预防系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。

参考资料: WEB 渗透 Wiki

D.逆向工程 简介

指对软件的结构,流程,算法,代码等进行逆向拆解和分析

研究目标

导出软件产品的源代码,设计原理,结构,算法,处理过程,运行方法及相关文档等

应用领域

主要应用于 软件维护 , 软件破解 , 漏洞挖掘 , 恶意代码分析 逆向分析流

  • 研究保护方法,去除保护功能
  • 反汇编目标软件,跟踪,分析代码功能
  • 生成目标软件的设计思想,架构,算法等相关文档
  • 注入代码,开发出更完善的应用软件

软件逆向的历史

20 世纪 60 年代 为挽救第二代计算机软件及加速第三代计算机软件开发,美国研制专用反编译工具进行软件移植 1993 年 Chikofs等人于发起逆向工程会议并每年举行一次,研究和讨论软件逆向工程的问题,技术及其支持工具 80 年代后期到 90 年代 关于解决软件逆向工程和软件版权的矛盾基本上有了结果,各国纷纷针对软件逆向工程进行立法,不是约束而是规范该领域的研究工作 2007 年 1 月 17 日 最高人民法院发布司法解释: 通过自行开发研制或者反向工程等方式获得的商业秘密,将不被认定为反不正当竞争法有关条款规定的侵犯商业秘密行为。

逆向研究的目的和意义

  • 充分利用和改造现有软件,对现有软件进行再设计,再工程,使软件功能得到大幅提高以满足用户的需要
  • 通过软件逆向工程将过时的软件系统转化为易演化系统
  • 破除商业闭源,技术保护(这阻碍了软件科学的发展).开放源代码

CTF竞赛中的逆向

涉及Windows/Linux/Android平台的多种编程技术,要求利用常用工具对源代码及二进制文件进行逆向分析,掌握Android移动应用APK文件的逆向分析,掌握加解密、内核编程、算法、反调试和代码混淆技术。 —— 《全国大学生信息安全竞赛参赛指南》

要求

  • 熟悉如操作系统,汇编语言,加解密等相关知识
  • 具有丰富的多种高级语言的编程经验
  • 熟悉多种编译器的编译原理
  • 较强的程序理解和逆向分析能力

E.PWN 简介

​ PWN在黑客俚语中代表着攻破,取得权限,在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有栈溢出、堆溢出。主要考察参数选手对漏洞的利用能力。CTF中的pwn大部分是指缓冲区溢出。

缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。

​ 而目前CTF中PWN题目Linux平台占多数,少数出现内核pwn,windows pwn等。

​ pwn需要一定的基础才能驾驭,比起其他方向,该方向”看起来”更加令人不敢接近,所涉及到的如下:

  • 计算机系统原理

  • 汇编语言

  • 一定的逆向能力

  • 挖掘可以利用漏洞的经验

考察内容包括:
  • 栈溢出

  • ROP

  • 堆溢出

  • 格式化字符串

0x03 最后

如果你也想女神对你投向无比崇拜的眼光

如果你也想你的意中人在茫茫人海中发现你

如果 …

可惜没如果,这就是命。

Join us, make your life(maybe others’) controllable.

Donate comment here.