Merge pull request #105 from FallenYing/master

chore: 计算机安全
This commit is contained in:
camera-2018
2023-08-14 14:05:40 +08:00
committed by GitHub
10 changed files with 207 additions and 195 deletions

View File

@@ -2,11 +2,11 @@
Author: `Liki4` from Vidar-Team
Vidar-Team 2023 招新 QQ 群: 861507440仅向校内开放
Vidar-Team 2023 招新 QQ 群861507440仅向校内开放
Vidar-Team 官网: [https://vidar.club/](https://vidar.club/)
Vidar-Team 官网[https://vidar.club/](https://vidar.club/)
Vidar-Team 招新报名表: [https://reg.vidar.club/](https://reg.vidar.club/)
Vidar-Team 招新报名表[https://reg.vidar.club/](https://reg.vidar.club/)
本文中所有涉及的代码全部都托管在 [https://github.com/Liki4/SQLi](https://github.com/Liki4/SQLi)
@@ -482,8 +482,6 @@ if __name__ == "__main__":
![](https://cdn.xyxsw.site/boxcnXyMaLh26lkNuAPiQVHuaNg.png)
####
#### 时间盲注
时间盲注的场景和原理与布尔盲注类似,都是在没有回显查询结果的时候使用的
@@ -782,9 +780,7 @@ INSERT 语句也被成功执行了,向数据库中插入了 Liki3 的数据
在 SQL 注入中,`infromation_schema` 库的作用无非就是可以获取到 `table_schema, table_name, column_name` 这些数据库内的信息。
####
##### MySQL 5.6 的新特性
#### MySQL 5.6 的新特性
在 MySQL 5.5.x 之后的版本MySQL 开始将 innoDB 引擎作为 MySQL 的默认引擎,因此从 MySQL 5.6.x 版本开始MySQL 在数据库中添加了两张表,`innodb_index_stats``innodb_table_stats`,两张表都会存储数据库和对应的数据表。
@@ -797,7 +793,7 @@ select table_name from mysql.innodb_table_stats where database_name=<em>database
![](https://cdn.xyxsw.site/boxcnbMtjAq8osStjcSbFuIdDSc.png)
##### MySQL 5.7 的新特性
#### MySQL 5.7 的新特性
由于 `performance_schema` 过于发杂,所以 MySQL 在 5.7 版本中新增了 `Sys schema` 视图,基础数据来自于 `performance_chema``information_schema` 两个库。
@@ -848,13 +844,13 @@ select table_name from sys.x$schema_table_statistics_with_buffer where table_sch
### Gorm SQL 注入
# 数据库注入工具 SQLMAP 及其高级使用指南
## 数据库注入工具 SQLMAP 及其高级使用指南
> 这里不讨论诸如 -u 这种简单参数
## 一些特殊参数
### 一些特殊参数
### -r [文件名]
#### -r [文件名]
当你从 Burp 之类的工具中发现了 数据库注入的痕迹
@@ -866,7 +862,7 @@ select table_name from sys.x$schema_table_statistics_with_buffer where table_sch
对你传入的报文的目标进行自动化的 sql 注入
### --sql-shell
#### --sql-shell
在摸索到 数据库注入的时候 生成一个交互式的数据库注入
@@ -878,7 +874,7 @@ Sqlmap 会自动探寻目标的注入返回结果 减少手动编写 payload 的
> 尤其是写了半天发现引号对不上等等
### --os-shell
#### --os-shell
一个新手以为很牛逼但是其实很鸡肋的功能 可以获取 shell 一般是通过数据库注入获取到写文件的权限,写入 webshell 文件 的原理拿到对方机器的 shell
@@ -886,13 +882,13 @@ Sqlmap 会自动探寻目标的注入返回结果 减少手动编写 payload 的
因为 默认数据库配置不具有这种问题需要另外配置 此外环境需要支持类似动态执行的功能 例如 go 起的 web
### --random-agent
#### --random-agent
一般不用 但是 sqlmap 在进行 web 的注入时会使用 sqlmap 的 User-Agent 痕迹非常明显
可以用这个消磨一下自己的痕迹
### --second-url
#### --second-url
对于一些非常复杂的数据库二次注入 sqlmap 其实是没有办法的 例如需要鉴权(?)
@@ -900,7 +896,7 @@ Sqlmap 会自动探寻目标的注入返回结果 减少手动编写 payload 的
但是对于简单的一些二次注入,可以通过这个参数获取到存在数据库注入界面的结果界面。让 sqlmap 获取到 数据库注入的结果。
### --technique
#### --technique
技巧 指定 sqlmap 使用的注入技术
@@ -925,13 +921,13 @@ Sqlmap 很可能在接下来的 数据库注入后利用中使用耗时更为巨
那么通过这个参数去指定对应的注入技巧 可以大大减少数据库注入获取结果的时间 优化你的进攻效率
### --dbms
#### --dbms
指定对应的数据库类型
Mysql mssql 之类的 sqlmap 就不会去搜索爆破其他类型的数据库
### --hex
#### --hex
以十六进制来进行注入的技巧

View File

@@ -1,87 +1,88 @@
# Web入门指北
# Web 入门指北
> 本文来自HGAME Mini 2022 Web 入门材料目的是为了帮助新生更好的入门Web安全。
> 本文来自 HGAME Mini 2022 Web 入门材料,目的是为了帮助新生更好的入门 Web 安全。
## 0x00 前言
本文希望为对Web感兴趣的同学提供在入门方向上的指导以便与更加平滑的入门Web方向的学习。
本文希望为对 Web 感兴趣的同学提供在入门方向上的指导,以便与更加平滑的入门 Web 方向的学习。
## 0x01 Web安全基础
## 0x01 Web 安全基础
### Web安全是什么
### Web 安全是什么
首先Web安全是CTF比赛一直以来都很重要的一部分CTF比赛目前主体还是Jeopardy解题模式主要分为Web安全,Re逆向工程,Pwn,Crypto密码学,Misc安全杂项五个方向。相比于RePwn两个二进制方向Web安全在初期入门时门槛较低并不需要太多对底层知识的了解对小白也较为友好能够比较快速的上手做题。
首先 Web 安全是 CTF 比赛一直以来都很重要的一部分CTF 比赛目前主体还是 Jeopardy 解题模式,主要分为 Web 安全Re 逆向工程Pwn,Crypto 密码学Misc 安全杂项五个方向。相比于 RePwn 两个二进制方向Web 安全在初期入门时门槛较低,并不需要太多对底层知识的了解,对小白也较为友好,能够比较快速的上手做题。
虽然Web安全入门门槛比较低但是不得不承认需要学习的技术栈很多在说起你经常听闻的Java、Php、Go、Javascript等种种语言之前我们先来看看Web应用的发展史理解一下Web应用是什么。
虽然 Web 安全入门门槛比较低,但是不得不承认需要学习的技术栈很多,在说起你经常听闻的 Java、Php、Go、Javascript 等种种语言之前,我们先来看看 Web 应用的发展史,理解一下 Web 应用是什么。
### Web发展史
### Web 发展史
> 这段发展史可能有很多名字不太好懂但是提到这一段发展史是希望你能够对Web技术的发展过程有个框架性的理解如果有很多困惑的地方可以多多使用搜索引擎这篇[文章](<https://onebyone.icu/archives/2788>)写的很详细也可以阅读一下~
> 这段发展史可能有很多名字不太好懂,但是提到这一段发展史是希望你能够对 Web 技术的发展过程有个框架性的理解,如果有很多困惑的地方可以多多使用搜索引擎,这篇[文章](<https://onebyone.icu/archives/2788>)写的很详细也可以阅读一下~
最初的Web应用是静态页面托管在ISP(Internet Service Provider)上,主要就是比较简单的文字图片当时能做的也就是简单浏览网页。而后有了Flash等多媒体技术网页的功能开始逐渐丰富音视频和网页的动态交互也让网页开始能够完成更多的事给用户更好的体验。再随着CGI(Common Gateway Interface)的产生CGIWeb服务器和外部应用程序的通信接口标准Web服务器就可以通过CGI执行外部程序再通过外部程序根据请求内容生成动态内容。再之后随着PHP/JSP等编程语言的加入MVC思想、REST(Representation State Transformation)架构风格的产生Web应用开发技术也逐步变化直到如今Web应用的开发技术主要分为前端和后端。**简单来说前端就是用户直接可以看见的部分比如说我们访问百度百度页面上面的搜索框、按钮、logo,搜索后展示的网页文字和内容这些都是属于前端的范畴而后端主要是用户看不见的部分比如在百度上搜索Vidar-Team会能根据搜索内容返回相关的文章这就是后端所做的部分**。
最初的 Web 应用是静态页面,托管在 ISP(Internet Service Provider) 上,主要就是比较简单的文字,图片,当时能做的也就是简单浏览网页。而后有了 Flash 等多媒体技术,网页的功能开始逐渐丰富,音视频和网页的动态交互也让网页开始能够完成更多的事,给用户更好的体验。再随着 CGI(Common Gateway Interface) 的产生CGIWeb 服务器和外部应用程序的通信接口标准Web 服务器就可以通过 CGI 执行外部程序,再通过外部程序根据请求内容生成动态内容。再之后随着 PHP/JSP 等编程语言的加入MVC 思想、REST(Representation State Transformation) 架构风格的产生Web 应用开发技术也逐步变化直到如今Web 应用的开发技术主要分为前端和后端。**简单来说前端就是用户直接可以看见的部分比如说我们访问百度百度页面上面的搜索框、按钮、logo搜索后展示的网页文字和内容,这些都是属于前端的范畴;而后端主要是用户看不见的部分,比如在百度上搜索 Vidar-Team会能根据搜索内容返回相关的文章这就是后端所做的部分**。
### Web应用的数据是如何交互的
### Web 应用的数据是如何交互的
> 非常推荐查看MDN文章[万维网是如何工作的](https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/How_the_Web_works)和[浏览器的工作原理](https://developer.mozilla.org/zh-CN/docs/Web/Performance/How_browsers_work)详细了解一下~
> 非常推荐查看 MDN 文章[万维网是如何工作的](https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/How_the_Web_works)和[浏览器的工作原理](https://developer.mozilla.org/zh-CN/docs/Web/Performance/How_browsers_work)详细了解一下~
而Web应用的数据是如何交互的呢为什么用户输入`https://vidar.club`访问协会官网后浏览器上就会呈现页面呢?
Web 应用的数据是如何交互的呢?为什么用户输入`https://vidar.club`访问协会官网后浏览器上就会呈现页面呢?
![What happens when you visit a URL](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/1.png)
当我们在浏览器的地址栏中输入`https://vidar.club`首先会做的事情是DNS查询浏览器会去寻找页面资源的位置也就是寻找这个域名对应的ip地址是多少。因为ip地址的格式为xxx.xxx.xxx.xxx,这对于一个用户并不容易记住,因此我们用形象的域名来让用户记住网址,你看,`vidar.club`就比`1.117.117.147`这个ip好记太多了吧。浏览器根据域名`vidar.club`向DNS服务器查询对应ip地址得到响应对应ip地址为`1.117.117.147`
当我们在浏览器的地址栏中输入`https://vidar.club`后,首先会做的事情是 DNS 查询,浏览器会去寻找页面资源的位置,也就是寻找这个域名对应的 ip 地址是多少。因为 ip 地址的格式为 xxx.xxx.xxx.xxx这对于一个用户并不容易记住,因此我们用形象的域名来让用户记住网址,你看,`vidar.club`就比`1.117.117.147`这个 ip 好记太多了吧。浏览器根据域名`vidar.club` DNS 服务器查询对应 ip 地址,得到响应对应 ip 地址为`1.117.117.147`
而当浏览器知道了服务器的IP地址后就会与服务器进行TCP三次握手三次握手机制是用来让两端尝试进行通信之后为了让链接更加安全就会进行TLS协商。你看我们输入的是`https://`这表明我们使用了https协议进行访问http协议的数据传输是明文的这并不安全而https使用ssl/tls协议进行加密处理这会让访问变得安全。顺带一提如果使用http访问协会官网也会强制使用https哦可以试一试`http://vidar.club`。当三次握手和TLS协商完成后我们就已经和服务器建立了安全连接啦。
而当浏览器知道了服务器的 IP 地址后,就会与服务器进行 TCP 三次握手,三次握手机制是用来让两端尝试进行通信,之后为了让链接更加安全,就会进行 TLS 协商。你看我们输入的是`https://`,这表明我们使用了 https 协议进行访问http 协议的数据传输是明文的,这并不安全,而 https 使用 ssl/tls 协议进行加密处理,这会让访问变得安全。顺带一提如果使用 http 访问协会官网也会强制使用 https 哦,可以试一试`http://vidar.club`。当三次握手和 TLS 协商完成后,我们就已经和服务器建立了安全连接啦。
建立安全连接后浏览器会向服务器发送HTTP Get请求请求服务器返回我们事先放在服务器上面的对应网页的内容这个请求的内容通常是一个HTML文件而当服务器受到请求后就会使用相关的响应头和HTML的内容进行回复。
建立安全连接后,浏览器会向服务器发送 HTTP Get 请求,请求服务器返回我们事先放在服务器上面的对应网页的内容,这个请求的内容通常是一个 HTML 文件,而当服务器受到请求后,就会使用相关的响应头和 HTML 的内容进行回复。
浏览器收到服务端的200 OKHTTP响应收到服务端发过来的HTML文件后会处理HTML标记并且构建DOM树最终就形成了你看到的页面啦。
浏览器收到服务端的 200 OKHTTP 响应,收到服务端发过来的 HTML 文件后,会处理 HTML 标记并且构建 DOM 树,最终就形成了你看到的页面啦。
HTTP请求和响应的具体内容可以使用浏览器推荐使用Chrome、FirefoxEdge的F12开发者工具进行查看打开f12后选择网络并且刷新页面捕获请求点击这个vidar.club就可以看到啦。
HTTP 请求和响应的具体内容可以使用浏览器(推荐使用 Chrome、FirefoxEdge F12 开发者工具进行查看,打开 f12 后选择网络并且刷新页面捕获请求,点击这个 vidar.club 就可以看到啦。
![Chrome的开发者工具图1](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/2.png)
![Chrome的开发者工具图1](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/3.png)
![Chrome 的开发者工具图 1](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/2.png)
![Chrome 的开发者工具图 1](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/3.png)
## 0x02 Web安全入门
## 0x02 Web 安全入门
### 我是零基础小白,从什么开始好呢?
> 万丈高楼平地起
虽然在Web安全的技术栈中会比较少的提及C/C++安全的问题更多的都是一些你经常听说的Java、Php等语言的安全问题不过如果你目前是没有任何编程基础协会也同样推荐打好基础先好好学习C语言。对于没有编程基础的你,从C语言这样一门接近底层的高级语言开始学习可以更好学习计算机内部原理,并且学会C语言后有一定的编程基础,入门其他语言也绝非难事。
虽然在 Web 安全的技术栈中,会比较少的提及 C/C++安全的问题,更多的都是一些你经常听说的 Java、Php 等语言的安全问题,不过如果你目前是没有任何编程基础,协会也同样推荐打好基础,先好好学习 C 语言。对于没有编程基础的你,从 C 语言这样一门接近底层的高级语言开始学习可以更好学习计算机内部原理,并且学会 C 语言后有一定的编程基础,入门其他语言也绝非难事。
### Web技术栈
### Web 技术栈
首先需要明确的是Web安全和Web开发是分不开的并不是说对安全感兴趣就不需要懂开发恰恰相反开发是安全的基础如果没有开发能力在之后学习中面对一些代码审计也会感觉到非常茫然所以学习Web安全之前首要的就是先学习Web开发。而Web开发的学习路线在学长们身上大多不是很固定有的人接触到的Web开发的第一门语言是PHP,PHP虽然在现在看来已经不是一门优秀的语言了后端开发的主流技术栈已经是JavaGo了但是PHP仍然是一门在安全学习上非常推荐的语言有很多历史漏洞可以让大家更好的入门。也有的学长最先开始接触的是Go/Java/Js,那如果你已经有一定Web开发基础可以直接参考下面的学习路线与学习资料如果你还没有Web开发基础并且认为C语言已经学的不错了就可以尝试选择一门自己感兴趣的语言进行学习并且尝试自己写一些感兴趣的Web应用比如搭建一个博客写一个Todolist用来记事等等兴趣是最好的导师一边写自己感兴趣的Web应用一边学习是非常不错的。
首先需要明确的是Web 安全和 Web 开发是分不开的,并不是说对安全感兴趣就不需要懂开发,恰恰相反,开发是安全的基础,如果没有开发能力,在之后学习中面对一些代码审计也会感觉到非常茫然,所以学习 Web 安全之前首要的就是先学习 Web 开发。而 Web 开发的学习路线在学长们身上大多不是很固定,有的人接触到的 Web 开发的第一门语言是 PHP,PHP 虽然在现在看来已经不是一门优秀的语言了,后端开发的主流技术栈已经是 JavaGo 了,但是 PHP 仍然是一门在安全学习上非常推荐的语言,有很多历史漏洞可以让大家更好的入门。也有的学长最先开始接触的是 Go/Java/Js那如果你已经有一定 Web 开发基础,可以直接参考下面的学习路线与学习资料,如果你还没有 Web 开发基础并且认为 C 语言已经学的不错了,就可以尝试选择一门自己感兴趣的语言进行学习,并且尝试自己写一些感兴趣的 Web 应用,比如搭建一个博客,写一个 Todolist 用来记事等等,兴趣是最好的导师,一边写自己感兴趣的 Web 应用一边学习是非常不错的。
## 0x03 学习资料与学习路线推荐
- 兔兔的sql注入小游戏
招新群中的迎新机器人具有一个blog功能这个blog功能存在一个sql注入的漏洞通过漏洞查询出数据库中的flag可以找管理员兑换一杯奶茶哦支线任务x
- 兔兔的 sql 注入小游戏
招新群中的迎新机器人具有一个 blog 功能,这个 blog 功能存在一个 sql 注入的漏洞,通过漏洞查询出数据库中的 flag 可以找管理员兑换一杯奶茶哦~(支线任务 x
- 搭建博客
博客可以记录自己的学习过程与经历也可以当作一个Web应用开发的小练习
博客可以记录自己的学习过程与经历,也可以当作一个 Web 应用开发的小练习
- 刷题
如果你想一边学习Web开发一边做做题目感受一下Web安全可以在协会的招新训练平台上面做做题目要是毫无头绪也可以问问学长学姐们哦训练平台上的题目可以帮助你更好的入门CTF
如果你想一边学习 Web 开发一边做做题目,感受一下 Web 安全,可以在协会的招新训练平台上面做做题目,要是毫无头绪也可以问问学长学姐们哦~训练平台上的题目可以帮助你更好的入门 CTF
- 学习资料
面对网络各式各样的学习资料,这些网站和书籍会对你入门有所帮助
- [MDN 网络文档](https://developer.mozilla.org)
- [Web 安全学习笔记](https://websec.readthedocs.io)
- [CTF wiki](https://github.com/ctf-wiki/ctf-wiki)
- [HTML CSS 基础](https://www.w3cschool.cn/)
- JS《JavaScript DOM编程基础》
- C《C Primer Plus》
- PHP《PHPMySQL Web开发》
- Python: 《Python从入门到实践》的入门部分
- HTTP《图解HTTP》
- 《从0到1CTFer成长之路》
- 《白帽子讲Web安全》
上面提到的书协会都有哦,欢迎有空的时候来协会看书自习!
- [MDN 网络文档](https://developer.mozilla.org)
- [Web 安全学习笔记](https://websec.readthedocs.io)
- [CTF wiki](https://github.com/ctf-wiki/ctf-wiki)
- [HTML CSS 基础](https://www.w3cschool.cn/)
- JS《JavaScript DOM 编程基础》
- C《C Primer Plus》
- PHP《PHPMySQL Web 开发》
- Python: 《Python 从入门到实践》的入门部分
- HTTP《图解 HTTP》
- 《从 0 到 1CTFer 成长之路》
- 《白帽子讲 Web 安全》
上面提到的书协会都有哦,欢迎有空的时候来协会看书自习!
- 学习路线
可以根据上面提到的学习资料和协会的2022提前批招新标准进行个人学习路线的规划这份Github上很火的[Web Roadmap](https://github.com/hideraldus13/roadmap-do-desenvolvedor-web)也可以参考一下。
可以根据上面提到的学习资料和协会的 2022 提前批招新标准进行个人学习路线的规划,这份 Github 上很火的[Web Roadmap](https://github.com/hideraldus13/roadmap-do-desenvolvedor-web)也可以参考一下。
## 0x04 最后
> 勿以浮沙筑高台
欢迎对Web安全感兴趣的你如果在学习过程中遇到困难可以随时在 Vidar-Team 招新群中提问哦祝你在Web安全的学习道路上越走越远
欢迎对 Web 安全感兴趣的你,如果在学习过程中遇到困难可以随时在 Vidar-Team 招新群中提问哦,祝你在 Web 安全的学习道路上越走越远~
`VIDAR{Web_1s_3asy_t0_st4rt!!}`

View File

@@ -1,55 +1,59 @@
# 基础工具的使用
IDA pro (交互式反编译器专业版)是二进制安全研究人员必备的反汇编、反编译工具,功能繁多而强大,反编译结果清晰明了。
IDA pro交互式反编译器专业版是二进制安全研究人员必备的反汇编、反编译工具功能繁多而强大反编译结果清晰明了。
IDA pro 是收费软件,价格极其昂贵,一套完全版人民币 10W 左右因此可以到各大网站下载破解版注意到一些知名网站下载比如吾爱破解等防止下载的软件包含病毒。在编写此文时IDA pro 更新到了 8.3,网上能找到的最新的版本为 7.7。本文由于版权原因,不提供下载链接。
# 简易使用方法
## 简易使用方法
> 本文档仅作快速入门,更加细节的内容还请读者查阅其他资料以及多加实践。
>
> 另外在任何使用上操作的问题,都可以在群里提问!
## 0x00 IDA 简单介绍
### 0x00 IDA 简单介绍
![](https://cdn.xyxsw.site/image-20220809113855166.png)
IDA是一款交互式反汇编和反编译工具其支持文件类型和文件平台丰富。
IDA 是一款交互式反汇编和反编译工具,其支持文件类型和文件平台丰富。
可静态分析也可动态调试,可以说是二进制手的吃饭工具了
## 0x01 启动界面
### 0x01 启动界面
![](https://cdn.xyxsw.site/image-20220809114834244.png)
```
NEW打开IDA同时弹出对话框选择要打开的文件
Go单独打开ida打开界面将文件拖入
```txt
NEW打开 IDA 同时弹出对话框选择要打开的文件
Go单独打开 ida打开界面将文件拖入
Previous或者下面的列表项快速打开之前的的文件
```
这里选择Go键打开以后将文件拖入
这里选择 Go 键,打开以后,将文件拖入
![](https://cdn.xyxsw.site/image-20220809124156697.png)
![](https://cdn.xyxsw.site/image-20220809124408179.png)
这里按我们的默认选项点击OK即可
这里按我们的默认选项点击 OK 即可
## 0x02 关闭界面
### 0x02 关闭界面
![](https://cdn.xyxsw.site/image-20220809125554853.png)
```
:::tip
第一个选项:就是不打包数据包文件,那么这些数据库文件就会分开这放。
第二个选项及图中选项就是把这几个数据库文件打包为1个(如.i64文件),下次打开我们分析的文件的时候,打开这个文件即可。
第二个选项及图中选项:就是把这几个数据库文件打包为 1 个 (如.i64 文件),下次打开我们分析的文件的时候,打开这个文件即可。
第三个选项:不会删掉数据库文件,而是打包压缩到存储的文件里面去了。
下面两个选项
第一个选项:回收垃圾,如果打包文件太大了,可以选用这个选项,清理不必要的内存
最后一个选项:当分析时候写错了,选中最后一个,最后一次打开的操作不保留了。(解决错误操作)
```
## 0x03 主界面- IDA View&Pseudocode
最后一个选项:当分析时候写错了,选中最后一个,最后一次打开的操作不保留了。(解决错误操作)
:::
### 0x03 主界面 - IDA View&Pseudocode
反汇编代码的图表窗口
@@ -59,7 +63,7 @@ Previous或者下面的列表项快速打开之前的的文件
![](https://cdn.xyxsw.site/image-20220809130940294.png)
按**F5**进行反编译跳转至`Pseudocode`(伪代码)界面
按**F5**进行反编译跳转至`Pseudocode`(伪代码) 界面
![](https://cdn.xyxsw.site/image-20220809131038284.png)
@@ -67,25 +71,25 @@ Previous或者下面的列表项快速打开之前的的文件
直接点击函数名可以进入到对应函数内部查看函数逻辑
## 0x04 主界面- Hex View
### 0x04 主界面 - Hex View
十六进制窗口(不太常用)
十六进制窗口 (不太常用)
![](https://cdn.xyxsw.site/image-20220809132027773.png)
## 0x05 主界面-Structures
### 0x05 主界面-Structures
结构体窗口
![](https://cdn.xyxsw.site/image-20220809132130778.png)
## 0x06 主界面-Enums
### 0x06 主界面-Enums
枚举类型界面
![](https://cdn.xyxsw.site/image-20220809132242739.png)
## 0x07 主界面-Imports
### 0x07 主界面-Imports
导入表
@@ -93,13 +97,13 @@ Previous或者下面的列表项快速打开之前的的文件
![](https://cdn.xyxsw.site/image-20220809132327043.png)
## 0x08 主界面-Exports
### 0x08 主界面-Exports
导出表
![](https://cdn.xyxsw.site/image-20220809151050575.png)
## 0x09 主界面-Strings
### 0x09 主界面-Strings
`Shift+F12`转到`String`界面,该操作会搜索程序中的字符串数据并展示
@@ -109,7 +113,7 @@ Previous或者下面的列表项快速打开之前的的文件
![](https://cdn.xyxsw.site/image-20220809153408536.png)
## 0x0a 其他界面-Functions
### 0x0a 其他界面-Functions
罗列了程序中用到的所有函数,包括底层调用的库的函数
@@ -117,25 +121,23 @@ Previous或者下面的列表项快速打开之前的的文件
![](https://cdn.xyxsw.site/image-20220809151328885.png)
## 0x0b 其他界面-Output
### 0x0b 其他界面-Output
程序的输出信息都会展示在这里
其中包括插件的加载信息、插件/脚本运行时的输出等
另外还可以直接在下面输入python语句方便在ida使用过程中简单的数据处理
另外还可以直接在下面输入 python 语句,方便在 ida 使用过程中简单的数据处理
![](https://cdn.xyxsw.site/image-20220809151536894.png)
## 0x0c 其他界面-导航栏
### 0x0c 其他界面 - 导航栏
一个二进制文件包括不同的区块,这里显示程序的不同类型数据,不同的颜色代表二进制文件中不同的块
![](https://cdn.xyxsw.site/image-20220809151815243.png)
## 0x0d 常用快捷键
### 0x0d 常用快捷键
> 边用边记,多打打就会记住了!
>
@@ -146,9 +148,9 @@ Previous或者下面的列表项快速打开之前的的文件
- `g` 跳转到任意地址
- `Esc` 返回到跳转前的位置
- `n` 定义或修改名称,常用来修改函数和变量的名字
- `A` 按照ASCII显示数据
- `A` 按照 ASCII 显示数据
- `D` 分别按字节、字、双字来显示数据
- `F5`反编译汇编代码,得到C伪代码
- `F5`反编译汇编代码,得到 C 伪代码
- `Shift+F12` 搜索程序中的字符串
- `Alt+t` 搜索程序中的指令
@@ -156,19 +158,19 @@ Previous或者下面的列表项快速打开之前的的文件
- `Y` 修改变量/函数类型
- `F2`快速下断点
## 0x0e 常用插件
### 0x0e 常用插件
> 具体安装和使用不在此展开了
- [Find Crypt](https://github.com/polymorf/findcrypt-yara) -- 寻找常用加密算法中的常数(需要安装 [yara-python](https://github.com/VirusTotal/yara-python)
- [Keypatch](https://github.com/keystone-engine/keypatch) -- 基于 Keystone 的 Patch 二进制文件插件
- [LazyIDA: Make your IDA Lazy! ](https://github.com/P4nda0s/LazyIDA) -- 快速Dump内存数据
- [LazyIDA: Make your IDA Lazy!](https://github.com/P4nda0s/LazyIDA) -- 快速 Dump 内存数据
- [Finger](https://github.com/aliyunav/Finger) -- 函数签名识别插件
- [D810](https://gitlab.com/eshard/d810) -- 去混淆插件
## 0x10 IDA Python
IDA 提供可与其交互的IDA Python接口可以使用Python做很多的辅助操作
IDA 提供可与其交互的 IDA Python 接口,可以使用 Python 做很多的辅助操作
![](https://cdn.xyxsw.site/image-20220809154742462.png)
@@ -178,36 +180,36 @@ IDA 提供可与其交互的IDA Python接口可以使用Python做很多的辅
## 0x11 IDA 动态调试
> 暂时只对WindowsLinux下的文件调试做介绍MacAndroid下的文件调试有待读者后续探索
> 暂时只对 WindowsLinux 下的文件调试做介绍MacAndroid 下的文件调试有待读者后续探索
### 调试Windows下的文件
### 调试 Windows 下的文件
可以先在汇编代码或伪代码界面下断点,然后`F9`选择调试器,这里直接选`Local Windows Debugger`
![](https://cdn.xyxsw.site/image-20220809160044665.png)
之后就可以用F7(单步不跳过执行)/F8(单步跳过执行)/F9(继续执行,遇到断点停止)进行调试
之后就可以用 F7(单步不跳过执行)/F8(单步跳过执行)/F9(继续执行遇到断点停止) 进行调试
![](https://cdn.xyxsw.site/image-20220809163138453.png)
### 调试Linux下的文件
### 调试 Linux 下的文件
可以先在汇编代码或伪代码界面下断点
![](https://cdn.xyxsw.site/image-20220809155352920.png)
由于Linux下文件调试比较特殊需要远程起一个服务器运行服务端这里可以使用**Vmware**或者**WSL2(Windows subsystem Linux)**进行调试
由于 Linux 下文件调试比较特殊,需要远程起一个服务器运行服务端,这里可以使用**Vmware**或者**WSL2(Windows subsystem Linux)**进行调试
因篇幅有限,在这里直接贴篇链接供大家学习并选择调试方式
因篇幅有限在这里直接贴篇链接供大家学习并选择调试方式
- Vmware 调试 [IDA动态调试ELF](https://bbs.kanxue.com/thread-247830.htm)
- WSL 调试 安装好WSL直接运行ida dbgsrv目录下linux_server文件即可以
- Vmware 调试 [IDA 动态调试 ELF](https://bbs.kanxue.com/thread-247830.htm)
- WSL 调试(安装好 WSL 直接运行 ida dbgsrv 目录下 linux_server 文件即可以)
后面是一样的调试步骤
## 0x12 一个简单程序的分析
#### 源代码
### 源代码
```c
#include <stdio.h>
@@ -238,13 +240,13 @@ int main() {
#### 分析历程
##### 将程序拖入IDA
##### 将程序拖入 IDA
![](https://cdn.xyxsw.site/image-20220809173439491.png)
![](https://cdn.xyxsw.site/image-20220809173548998.png)
##### F5分析查看伪代码
##### F5 分析查看伪代码
![](https://cdn.xyxsw.site/image-20220809173627488.png)
@@ -260,23 +262,23 @@ int main() {
##### 查看函数逻辑
change函数
change 函数
![](https://cdn.xyxsw.site/image-20220809174035800.png)
check函数
check 函数
![](https://cdn.xyxsw.site/image-20220809174058831.png)
###### 静态分析逻辑
change函数是对输入字符串的每一个字节进行修改
change 函数是对输入字符串的每一个字节进行修改
然后在check函数进行比较
然后在 check 函数进行比较
###### 动态分析逻辑
在change函数进入前下好断点
change 函数进入前下好断点
随意的进行一些输入
@@ -286,17 +288,16 @@ change函数是对输入字符串的每一个字节进行修改
![](https://cdn.xyxsw.site/image-20220809174957987.png)
F7进入函数进行单步不跳过调试
F7 进入函数进行单步不跳过调试
![](https://cdn.xyxsw.site/image-20220809175413448.png)
遇到类似`strlen`等库函数可以F8单步调试跳过
遇到类似`strlen`等库函数可以 F8 单步调试跳过
![](https://cdn.xyxsw.site/image-20220809175459668.png)
可以发现输入字符串的每一个字节的Ascii值都减小了1
可以发现输入字符串的每一个字节的 Ascii 值都减小了 1
##### 脚本编写
试试写一个脚本解出这道题吧!

View File

@@ -26,28 +26,28 @@ upx -d 文件名
### ESP 定律脱壳法(本节来源于 ctf-wiki[https://ctf-wiki.org/reverse/windows/unpack/esp/](https://ctf-wiki.org/reverse/windows/unpack/esp/)
ESP 定律法是脱壳的利器, 是应用频率最高的脱壳方法之一.
ESP 定律法是脱壳的利器是应用频率最高的脱壳方法之一
#### 要点
ESP 定律的原理在于利用程序中堆栈平衡来快速找到 OEP.
由于在程序自解密或者自解压过程中, 不少壳会先将当前寄存器状态压栈, 如使用 `pushad`, 在解压结束后, 会将之前的寄存器值出栈, 如使用 `popad`. 因此在寄存器出栈时, 往往程序代码被恢复, 此时硬件断点触发. 然后在程序当前位置, 只需要少许单步操作, 就很容易到达正确的 OEP 位置.
由于在程序自解密或者自解压过程中不少壳会先将当前寄存器状态压栈如使用 `pushad`, 在解压结束后会将之前的寄存器值出栈如使用 `popad`. 因此在寄存器出栈时往往程序代码被恢复此时硬件断点触发然后在程序当前位置只需要少许单步操作就很容易到达正确的 OEP 位置
1. 程序刚载入开始 pushad/pushfd
2. 将全部寄存器压栈后就设对 ESP 寄存器设硬件断点
3. 运行程序, 触发断点
3. 运行程序触发断点
4. 删除硬件断点开始分析
#### 示例
示例程序可以点击此处下载: [2_esp.zip](https://github.com/ctf-wiki/ctf-challenges/blob/master/reverse/unpack/2_esp.zip)
示例程序可以点击此处下载[2_esp.zip](https://github.com/ctf-wiki/ctf-challenges/blob/master/reverse/unpack/2_esp.zip)
还是上一篇的示例, 入口一句 `pushad`, 我们按下 F8 执行 `pushad` 保存寄存器状态, 我们可以在右边的寄存器窗口里发现 `ESP` 寄存器的值变为了红色, 也即值发生了改变.
还是上一篇的示例入口一句 `pushad`, 我们按下 F8 执行 `pushad` 保存寄存器状态我们可以在右边的寄存器窗口里发现 `ESP` 寄存器的值变为了红色也即值发生了改变
![](https://cdn.xyxsw.site/boxcnJdWqlHmhlvB471dIGT4GEh.png)
我们鼠标右击 `ESP` 寄存器的值, 也就是图中的 `0019FF64`, 选择 `HW break[ESP]`, 按下 `F9` 运行程序, 程序会在触发断点时断下. 如图来到了 `0040D3B0` 的位置. 这里就是上一篇我们单步跟踪时到达的位置, 剩余的就不再赘述.
我们鼠标右击 `ESP` 寄存器的值也就是图中的 `0019FF64`, 选择 `HW break[ESP]`按下 `F9` 运行程序程序会在触发断点时断下如图来到了 `0040D3B0` 的位置这里就是上一篇我们单步跟踪时到达的位置剩余的就不再赘述
## 软件加密常用算法

View File

@@ -1,14 +1,21 @@
# 漏洞挖掘、漏洞利用
## 常见二进制安全漏洞
### 栈溢出
#### 栈介绍
栈是一种典型的后进先出 (Last in First Out) 的数据结构,其操作主要有压栈 (push) 与出栈 (pop) 两种操作,如下图所示(维基百科)。两种操作都操作栈顶,当然,它也有栈底。
![](https://cdn.xyxsw.site/stack.png)
高级语言在运行时都会被转换为汇编程序,在汇编程序运行过程中,充分利用了栈这一数据结构。每个程序在运行时都有虚拟地址空间,其中某一部分就是该程序对应的栈,用于保存函数调用信息和局部变量。此外,常见的操作也是压栈与出栈。需要注意的是,**程序的栈是从进程地址空间的高地址向低地址增长的**。
#### 栈溢出基本原理
以最基本的C语言为例C语言的函数局部变量就保存在栈中。
以最基本的 C 语言为例C 语言的函数局部变量就保存在栈中。
```C
#include<stdio.h>
int main()
@@ -19,7 +26,7 @@ int main()
}
```
对于如上程序,运行后可以发现`ch``a`的地址相差不大(`a``ch`的顺序不一定固定为`a`在前`ch`在后)
对于如上程序,运行后可以发现`ch``a`的地址相差不大 (`a``ch`的顺序不一定固定为`a`在前`ch`在后)
![](https://cdn.xyxsw.site/out1.PNG)
@@ -42,7 +49,9 @@ int main()
这就是栈溢出的基本原理。
#### 栈溢出的基本利用
##### 0x0
对于以上程序,“栈溢出”带来的后果仅仅是修改了局部变量的值,会造成一些程序的逻辑错误:
```C
@@ -64,13 +73,13 @@ int main()
}
```
如上代码所示如果我们想办法通过向input中输入过长的字符串覆盖掉password的内容我们就可以实现任意password“登录”。
如上代码所示,如果我们想办法通过向 input 中输入过长的字符串覆盖掉 password 的内容,我们就可以实现任意 password“登录”。
那么能不能有一些更劲爆的手段呢?
> 以下内容涉及x86汇编语言知识
> 以下内容涉及 x86 汇编语言知识
C语言编译之后通常会产生汇编语言汇编语言的字节码可以直接在物理CPU上运行。而C语言函数调用会被编译为如下形式:
C 语言编译之后,通常会产生汇编语言,汇编语言的字节码可以直接在物理 CPU 上运行。而 C 语言函数调用会被编译为如下形式:
```C
#include<stdio.h>
@@ -86,6 +95,7 @@ int main()
return 0;
}
```
```asm
add:
endbr64
@@ -133,11 +143,11 @@ retn
![](https://cdn.xyxsw.site/stack2.png)
> 注意该图中使用32位的寄存器EBP、ESP、EIP实际原理一样的并且上方为高地址下方为低地址
> 注意该图中,使用 32 位的寄存器EBP、ESP、EIP实际原理一样的并且上方为高地址下方为低地址
在此给出一道题作为例子https://github.com/ctf-wiki/ctf-challenges/raw/master/pwn/stackoverflow/ret2text/bamboofox-ret2text/ret2text
在此给出一道题作为例子:[ret2tetx](https://github.com/ctf-wiki/ctf-challenges/raw/master/pwn/stackoverflow/ret2text/bamboofox-ret2text/ret2text)
32位的程序我们使用IDA来打开该题目查看反编译代码可以发现有非常明显的栈溢出
32 位的程序,我们使用 IDA 来打开该题目,查看反编译代码,可以发现有非常明显的栈溢出:
![](https://cdn.xyxsw.site/main.png)
@@ -148,7 +158,7 @@ retn
![](https://cdn.xyxsw.site/backdoor.png)
接着计算溢出长度这里我们使用gdb来调试程序图中的gdb安装了pwndbg插件该插件在pwn调试时比较好用
接着计算溢出长度,这里我们使用 gdb 来调试程序,图中的 gdb 安装了 pwndbg 插件,该插件在 pwn 调试时比较好用:
![](https://cdn.xyxsw.site/gdb.png)
@@ -160,7 +170,7 @@ retn
from pwn import *
sh=process("./pwn")
exp=b'a'*(0x6c+4)
exp+=p32(0x0804863A) # 4字节的返回地址
exp+=p32(0x0804863A) # 4 字节的返回地址
sh.sendline(exp)
sh.interactive() # 切换为手动交互模式
```
@@ -168,19 +178,21 @@ sh.interactive() # 切换为手动交互模式
![](https://cdn.xyxsw.site/shell.png)
##### 0x1
通过上面的学习我们已经可以知道执行任意函数的办法但很多情况下对于攻击者来说程序中并没有可用的后门函数来达到攻击的目的因此我们需要一种手段来让程序执行任意代码任意汇编代码这样就可以最高效地进行攻击。ROPReturn Oriented Programming面向返回编程就是这样的一种技术在栈溢出的基础上通过在程序中寻找以retn结尾的小片段gadgets来改变某些寄存器、栈变量等的值再结合Linux下的系统调用我们就可以执行需要的任意代码。
ROP网上已有非常系统的资料在这里不做过多的叙述可参考ctf-wiki: https://ctf-wiki.org/pwn/linux/user-mode/stackoverflow/x86/basic-rop/#ret2shellcode
通过上面的学习我们已经可以知道执行任意函数的办法但很多情况下对于攻击者来说程序中并没有可用的后门函数来达到攻击的目的因此我们需要一种手段来让程序执行任意代码任意汇编代码这样就可以最高效地进行攻击。ROPReturn Oriented Programming面向返回编程就是这样的一种技术在栈溢出的基础上通过在程序中寻找以 retn 结尾的小片段gadgets来改变某些寄存器、栈变量等的值再结合 Linux 下的系统调用,我们就可以执行需要的任意代码。
ROP 网上已有非常系统的资料,在这里不做过多的叙述,可参考 ctf-wiki: [ret2shellcode](https://ctf-wiki.org/pwn/linux/user-mode/stackoverflow/x86/basic-rop/#ret2shellcode)
### 格式化字符串
格式化字符串的利用思路来源于`printf`函数中的`%n`format标签该标签的作用和`%s``%d`等不同,是将已打印的字符串的长度返回到该标签对应的变量中。在正常情况下的使用不会出现什么问题:
格式化字符串的利用思路来源于`printf`函数中的`%n`format 标签,该标签的作用和`%s``%d`等不同,是将已打印的字符串的长度返回到该标签对应的变量中。在正常情况下的使用不会出现什么问题:
```C
printf("abcd%n",&num);
//输出abcd,并且num的值为4
```
但如果在编写代码时忘记format字符串
但如果在编写代码时忘记 format 字符串:
```C
printf(something_want_print);
@@ -195,10 +207,13 @@ printf(ch);
```
## 漏洞挖掘技术
### 代码审计
代码审计分人工代码审计和自动化代码审计,人工审计由安全研究人员查看代码来发现漏洞,需要安全研究人员很高的研究经验,投入大量的人力。自动化代码审计目前的发展进度迅速,如由 Vidar-Team 毕业学长 LoRexxar 主导的开源项目Kunlun-Mhttps://github.com/LoRexxar/Kunlun-M
以及字节跳动公司开源的appsharkhttps://github.com/bytedance/appshark
### 代码审计
代码审计分人工代码审计和自动化代码审计,人工审计由安全研究人员查看代码来发现漏洞,需要安全研究人员很高的研究经验,投入大量的人力。自动化代码审计目前的发展进度迅速,如由 Vidar-Team 毕业学长 LoRexxar 主导的开源项目 [Kunlun-M](https://github.com/LoRexxar/Kunlun-M)
以及字节跳动公司开源的 [appshark](https://github.com/bytedance/appshark)
### fuzz
fuzz是一种自动化测试手段通过一定的算法生成一定规律的随机的数据输入到程序中如果程序发生崩溃等异常即可知道此处可能有漏洞。比较著名的有[AFL](https://github.com/google/AFL)、[AFLplusplus](https://github.com/AFLplusplus/AFLplusplus)、[libfuzzer](https://llvm.org/docs/LibFuzzer.html)、[honggfuzz](https://github.com/google/honggfuzz)等。
fuzz 是一种自动化测试手段,通过一定的算法生成一定规律的随机的数据输入到程序中,如果程序发生崩溃等异常,即可知道此处可能有漏洞。比较著名的有[AFL](https://github.com/google/AFL)、[AFLplusplus](https://github.com/AFLplusplus/AFLplusplus)、[libfuzzer](https://llvm.org/docs/LibFuzzer.html)、[honggfuzz](https://github.com/google/honggfuzz)等。

View File

@@ -11,9 +11,12 @@ reverse 主要研究软件破解,软件加固,计算机病毒等。
现实场景下,这两种方向通常界限比较模糊,统称的二进制安全主要研究漏洞挖掘,漏洞利用,软件加固,计算机病毒,游戏安全等。
## 入门材料
> HGAME Mini 2022 Reverse Pwn 入门材料
> Reverse:https://www.notion.so/b92ca2bfaacf4e7c873882dff9dbf649
> Pwn:[PWN入门指](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/HGAME%20Mini%202022%20Pwn%E5%85%A5%E9%97%A8%E6%8C%87%E5%8C%97.pdf)
>
> Reverse:[逆向入门指](https://www.notion.so/b92ca2bfaacf4e7c873882dff9dbf649)
>
> Pwn:[PWN 入门指北](https://ek1ng.oss-cn-hangzhou.aliyuncs.com/HGAME%20Mini%202022%20Pwn%E5%85%A5%E9%97%A8%E6%8C%87%E5%8C%97.pdf)
## 学习二进制安全需要具备哪些基础?

View File

@@ -1,8 +1,8 @@
## 什么是密码学
# 什么是密码学
> 本文来自HGAME Mini 2022 Crypto 入门材料。
> 本文来自 HGAME Mini 2022 Crypto 入门材料。
密码学分为密码编码学和密码分析学,前者寻求**提供信息机密性、完整性和非否认性等的方法**,后者研究**加密信息的破译和伪造等破坏密码技术所能提供安全性**的方法。CTF比赛中的密码学题目偏向于密码分析。
密码学分为密码编码学和密码分析学,前者寻求**提供信息机密性、完整性和非否认性等的方法**,后者研究**加密信息的破译和伪造等破坏密码技术所能提供安全性**的方法。CTF 比赛中的密码学题目偏向于密码分析。
## 如何学习密码学
@@ -16,7 +16,7 @@
### 编程基础
你可能需要了解一些python的基础语法。还有一些简单的算法。
你可能需要了解一些 python 的基础语法。还有一些简单的算法。
### 一些基础的密码系统
@@ -40,15 +40,15 @@
还有近几年多起来的格密码
主要看一些书籍或者在ctf-wiki.org学习。学习的过程中尽可能的多写一些demo既锻炼了编程能力也可以更好的了解一些密码系统。
主要看一些书籍,或者在 ctf-wiki.org 学习。学习的过程中尽可能的多写一些 demo既锻炼了编程能力也可以更好的了解一些密码系统。
有能力的同学可以先看一下这位教授的关于密码学的课程 [https://m.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg](https://m.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg)
## 工具
一些python的库
一些 python 的库:
- pycryptodome(就是Crypto库)
- pycryptodome(就是 Crypto 库)
[https://pycryptodome.readthedocs.io/en/latest/](https://pycryptodome.readthedocs.io/en/latest/)

View File

@@ -1,12 +1,12 @@
# MISC入门指南
# MISC 入门指南
> 本文来自HGAME Mini 2022 Misc 入门材料
> 本文来自 HGAME Mini 2022 Misc 入门材料
## MISC简单介绍
## MISC 简单介绍
Misc 是 Miscellaneous 的缩写杂项、混合体、大杂烩的意思它是一个庞大而又有趣的分支几乎会涉及所有分类的基础包括内容安全、安全运维、网络编程、AI安全等不属于传统分类的知识作为发散思维、拓展自己的一个知识面而言也是挺不错的方向。
Misc 是 Miscellaneous 的缩写杂项、混合体、大杂烩的意思它是一个庞大而又有趣的分支几乎会涉及所有分类的基础包括内容安全、安全运维、网络编程、AI 安全等不属于传统分类的知识,作为发散思维、拓展自己的一个知识面而言也是挺不错的方向。
**MISC大概有这些方面内容**
**MISC 大概有这些方面内容**
- 信息收集
- 编码转换
@@ -25,7 +25,7 @@ Misc 是 Miscellaneous 的缩写,杂项、混合体、大杂烩的意思,它
简单一句话:多问搜索引擎,搜就完事了!
- 目标 Web 网页、地理位置、相关组织
- Google 基本搜索与挖掘技巧 Google hacking
- Google 基本搜索与挖掘技巧Google hacking
- 网站、域名、IPwhois 等
- 通过搜索引擎查找特定安全漏洞或私密信息
- 组织结构和人员、个人资料、电话、电子邮件
@@ -44,15 +44,15 @@ Misc 是 Miscellaneous 的缩写,杂项、混合体、大杂烩的意思,它
- 计算机常用编码
- Ascii
- Unicode
- HTML实体编码
- HTML 实体编码
- 其他编码
- 二维码
- 条形码
- Js加密/Jother/JSFuck
- URL编码
- Hex编码
- Base大家族
- MD5、SHA1等类似加密型
- URL 编码
- Hex 编码
- Base 大家族
- MD5、SHA1 等类似加密型
- 与佛论禅
- 兽音译者
- ...
@@ -60,18 +60,18 @@ Misc 是 Miscellaneous 的缩写,杂项、混合体、大杂烩的意思,它
### 隐写
- 图片隐写
- jpg隐写
- jpg 隐写
- Steghide
- Stegdetect
- Slienteye
- Jhps
- png隐写
- png 隐写
- Stepsolve
- Stepic
- gif隐写
- gif 隐写
- 时间
- 空间
- bmp隐写
- bmp 隐写
- LSB
- 音频隐写
- 频谱
@@ -102,7 +102,6 @@ Misc 是 Miscellaneous 的缩写,杂项、混合体、大杂烩的意思,它
- Vmdk
- dsfok-tools
### 取证
- 图片取证
@@ -139,8 +138,4 @@ Misc 是 Miscellaneous 的缩写,杂项、混合体、大杂烩的意思,它
- binwalk
- sleuthkit
`VIDAR{Misc_1s_e4sy_t0_st4rt!!}`

View File

@@ -1,7 +1,8 @@
# 学习资料推荐
> 计算机基础是非常重要的,协会一直推荐打好基础,勿在浮沙筑高台。
>
> 以下是一些CTF领域写的不错的入门文章和平台也可以根据文章内容进行学习
> 以下是一些 CTF 领域写的不错的入门文章和平台,也可以根据文章内容进行学习~
## 学习网站:
@@ -14,7 +15,7 @@
## 靶场推荐:
- [主页 | NSSCTF](https://www.nssctf.cn/index)
- [BUUCTF在线评测 (buuoj.cn)](https://buuoj.cn/)
- [BUUCTF 在线评测 (buuoj.cn)](https://buuoj.cn/)
- [攻防世界 (xctf.org.cn)](https://adworld.xctf.org.cn)
- [Hack The Box: Hacking Training For The Best | Individuals & Companies](https://www.hackthebox.com/)
- [CryptoHack A fun, free platform for learning cryptography](https://cryptohack.org/)
@@ -27,20 +28,20 @@
> 主题比较宽泛,大多是计算机技术相关
- https://www.leavesongs.com/
- https://github.red/
- https://lorexxar.cn/
- https://su18.org/
- <https://www.leavesongs.com/>
- <https://github.red/>
- <https://lorexxar.cn/>
- <https://su18.org/>
安全类博客:
> 主要是一些安全研究成果或者CTF竞赛题解主要都是安全相关内容
> 主要是一些安全研究成果或者 CTF 竞赛题解,主要都是安全相关内容
- https://4ra1n.github.io/
- https://y4tacker.github.io/
- https://y4er.com/
- https://cjovi.icu/
- https://crazymanarmy.github.io/
- https://www.gem-love.com
- https://blog.huli.tw/
- https://blog.orange.tw/
- <https://4ra1n.github.io/>
- <https://y4tacker.github.io/>
- <https://y4er.com/>
- <https://cjovi.icu/>
- <https://crazymanarmy.github.io/>
- <https://www.gem-love.com/>
- <https://blog.huli.tw/>
- <https://blog.orange.tw/>

View File

@@ -2,11 +2,11 @@
> 本模块由 [Vidar-Team](https://vidar.club) 信息安全协会成员倾情奉献。
>
> Vidar-Team 成立于2008年9月,其名 Vidar 来源于北欧神话"诸神黄昏"中幸存于难、带领人类重建了家园的神 Víðarr是由杭州电子科技大学一群热爱信息安全的小伙伴自发成立的技术型团体 作为高校战队活跃于各大ctf赛事。
> Vidar-Team 成立于 2008 年 9 月,其名 Vidar 来源于北欧神话"诸神黄昏"中幸存于难、带领人类重建了家园的神 Víðarr是由杭州电子科技大学一群热爱信息安全的小伙伴自发成立的技术型团体作为高校战队活跃于各大 ctf 赛事。
>
> 2023 招新 QQ 群: 861507440仅向校内开放欢迎对技术感兴趣的小伙伴加入我们
> 2023 招新 QQ 群861507440仅向校内开放欢迎对技术感兴趣的小伙伴加入我们
**招新方向汇总:**
**招新方向汇总**
- Web网络安全
- 渗透(模拟黑客攻击,找寻漏洞,修补、加固系统)
@@ -19,7 +19,7 @@
- Misc 杂项(流量分析,电子取证,大数据统计等,覆盖面比较广)
- Crypto 密码学(与加密系统相关,从已加密的信息中破译明文)
- 无线安全RFID无线遥控ADS-BBLEZigBee移动通信卫星通信
- Iot安全 (从软件和硬件出发,多方向探索物联网设备)
- Iot 安全 (从软件和硬件出发,多方向探索物联网设备)
- 人工智能安全 (使用人工智能技术赋能安全,模型本身安全问题)
- 美工(负责协会相关的设计,如比赛海报与 LOGO会服、钥匙扣等等各类周边的制作
- 计算机图形学(游戏开发,游戏引擎开发)
@@ -28,9 +28,9 @@
## 什么是安全
计算机安全通俗的讲就是黑客主要研究计算机领域的攻防技术主要包括网络安全Web和二进制安全Bin包含PwnReverse两大类。现有的 CTF 信息安全竞赛里面还会看到密码学Crypto和安全杂项Misc以及最近几年新兴的 IoT 安全人工智能安全等方向。本系列文章会按照CTF的5个方向Web、Pwn、Reverse、Crypto、Misc来进行介绍。目前引入了HGAME Mini2022我们编写给新生的入门材料在今年的10月份和寒假我们也会分别举办HGAME MiniHGAME这两场CTF来帮助新生更好的入门安全。
计算机安全通俗的讲就是黑客主要研究计算机领域的攻防技术主要包括网络安全Web和二进制安全Bin包含 PwnReverse两大类。现有的 CTF 信息安全竞赛里面还会看到密码学Crypto和安全杂项Misc以及最近几年新兴的 IoT 安全,人工智能安全等方向。本系列文章会按照 CTF 的 5 个方向Web、Pwn、Reverse、Crypto、Misc 来进行介绍。目前引入了 HGAME Mini2022 我们编写给新生的入门材料,在今年的 10 月份和寒假,我们也会分别举办 HGAME MiniHGAME 这两场 CTF来帮助新生更好的入门安全。
## CTF竞赛形式
## CTF 竞赛形式
### 解题赛