CTFd平台搭建记录

最近搭建了一个CTFd平台,花了差不多一个星期叭(虽然最后发现在一个小问题上卡了好久),用CTFd-Whale实现了独立题目容器,记录一下安装过程,避免以后再踩坑。

部署用的是最简单的Docker+Docker Compose部署,系统环境Ubuntu 18.04。

官方项目地址:https://github.com/CTFd/CTFd

阅读全文

Ha1cyonCTF WriteUp

最近搞的西工大CTF,整体题目感觉挺难的,看了WP之后发现Web还有一些很新的CVE,Misc还有音频隐写,都是没接触过的东西。除了服务器不定时的尿崩之外(运维挨打),做出来了几个题,也是第一次接触CTF的Crypto吧,记录一下收获。

阅读全文

分组密码总结-DES,AES,SM4

简介

分组密码属于对称密码的一种,其特点是加解密都是对明文/密文进行分组后逐组进行加解密。通俗讲就是将明文分块,然后分块加密,解密同理。

分组密码的基本原理:

  1. 代换:明文分组到密文分组的可逆变换
  2. 扩散:将明文的统计特性散布到密文中去,使得明文的每一位影响密文中多位的值
  3. 混淆:使密文和密钥之间的统计关系变得尽可能复杂,使攻击者无法得到密钥,通常使用复杂的代换算法实现
阅读全文

汇编语言学习笔记

在读《汇编语言》这本书学习汇编语言的时候,在此对每一章的要点进行总结和记录,以便日后复习与查看。

练习环境:Windows 2000 Professional,与书中程序运行环境一致。

第一章 基础知识

汇编语言是一门直接在硬件之上工作的编程语言。由于早期人们使用机器语言(一串二进制数字)进行编程存在不易纠错、晦涩难懂的缺点,所以发明了汇编语言来帮助程序员更高效的编程。汇编语言经编译连接之后可以直接形成由机器指令构成的程序,可以直接被CPU执行。而不同型号的CPU拥有不同的指令集,所以汇编语句对应的机器码可能不尽相同。这本书的汇编语言是基于8086CPU的指令集来进行描述的。

汇编语言包括三个部分:

  1. 汇编指令(核心部分):机器码的助记符,有对应的机器码
  2. 伪指令:由编译器执行,没有对应的机器码,计算机本身并不执行
  3. 其他符号:如+-*/等,由编译器识别,没有对应机器码

汇编语言的指令和数据信息存放在存储器(内存)中。在内存中指令和数据并没有任何区别,本质上都是二进制信息。而决定一段二进制信息是指令还是数据,则由CPU工作时决定。存储器由若干个存储单元构成,单个存储单元的最小单位是字节(Byte,1Byte=8Bit)。

阅读全文

Git初探

昨天花了两个小时,把廖雪峰老师的Git教程看了一遍,然后再根据网上的一些资料,对Git的一些概念和常用命令做一个归纳。

Git是什么?

Git是一个开源的分布式版本管理系统,由Linux之父Linus开发。相比于其他集中式版本管理系统(如SVN、CVS)将整个项目的抓取和提交过程集中在一台中心服务器中,Git中对项目提交修改的每一个开发者都具有一套完整的项目版本库,中心服务器也不再是项目开发的必须项(为了方便提交,很多时候依然会为Git设置中心服务器),开发者在本地对项目进行修改和开发,并将修改提交给其他开发者,其他开发者也各自将自己做的修改提交给其他人,这样就实现了实时的版本管理和修改提交。

常见的应用了Git的网站有GithubGiteeGitlab等,它们为开源项目提供免费的Git存储,开发团队可以使用它们来实现版本管理和团队协作。

阅读全文

DVWA练习记录(三)

相关文章:DVWA练习记录(一)DVWA练习记录(二)

SQL Injection(Blind)(SQL盲注)

SQL盲注与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上现存的SQL注入漏洞大多是SQL盲注。

这篇文章总结了常见的SQL盲注场景:

  1. 提交一个导致SQL查询无效时,会返回一个通用错误页面,提交正确则会返回一个内容可被适度控制的页面。
  2. 提交一个导致SQL查询无效时,会返回一个通用错误页面,提交正确则会返回一个内容不可控的页面。
  3. 提交受损或不正确的SQL既不会产生错误页面,也不会以任何方式影响页面输出。
阅读全文

DVWA练习记录(二)

相关文章:DVWA练习记录(一)DVWA练习记录(三)

Brute Force(暴力破解)

暴力破解指的是黑客使用穷举法猜解出用户口令,是最为广泛使用的手法之一。在很多情况下,用户会使用不安全的、很容易被猜解的密码,使得这种攻击变得可能。为了提高猜解的成功率,黑客往往还会与社会工程学结合,从不同渠道获取用户的相关信息,如生日、姓名等可能用来作为密码的信息,再基于这些信息构建字典,将其任意组合对密码进行猜解。

理论上说,若网站对口令输入的尝试次数为无限的话,使用穷举法猜解密码总能够成功。所以需要网站进行一定的限制,如多次输入错误限制输入等。

阅读全文

DVWA练习记录(一)

相关文章:DVWA练习记录(二)DVWA练习记录(三)

简介

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.The aim of DVWA is to practice some of the most common web vulnerabilities, with various levels of difficultly, with a simple straightforward interface.
DVWA是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用程序。其主要目标是帮助安全专业人员在合法的环境中测试他们的技能和工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助学生和教师学习Web应用程序安全性。DVWA的目的是通过一个简单易用的界面从不同的难易程度来体现一些最常见的Web漏洞。

阅读全文