写在最前:为了更好地系统学习CTF(楞头冲很惨 别问我怎么知道的 除非你是天才),决定先看再学,先正向再逆向。

/*

出版排版规范中,标题序号等级为:
第一级,一、二、三、(用顿号);
第二级,(一)、(二)、(三)(不用任何标点);
第三级,1.、2.、3.、(用圆点,不用顿号);
第四级,(1)、(2)、(3)、(不用任何标点);
第五级,用英文字母;
标题中,除了问号、感叹号,不用其他标点符号。

*/

第一周->上基础

一、HTTP

(一)、HTTP发展史

1997年公布的HTTP 1.1是目前主流版本 (不做多余介绍 详解请百度)

(二)、HTTP协议结构

1.HTTP通信过程

客户端主动向服务端发起请求,HTTP协议规定先从客户端开始进行通信

2.HTTP请求报文

用于HTTP协议交互的信息被称为HTTP报文
  1. 报文首部:服务器或客户端需处理的请求或相应的内容和属性
  2. [CR+LF]:空行
  3. 报文主体:应被发送的数据
  4. 请求报文:方法 URL 协议版本 请求首部字段 内容实体
(1)请求报文框架

GET             /news/           HTTP/1.1

⬆       ⬆          ⬆

方法      URL      协议版本

  1. GET /news/ HTTP/1.1                                         ⬅                       请求首部字段
  2. Host: www.cnblogs.com                                      ⬅                       请求首部字段
  3. Connection: close                                             ⬅          请求首部字段
  4. Cache-Control: max-age=0                                 ⬅          请求首部字段

UM_distinctid=16de1e05b67c0b-0fb348fb0;          ⬅                       内容实体

(2)请求报文方法
  1. GET:请求访问已被URL识别的资源
  2. POST:传输实体的主体
  3. PUT:传输文件
  4. HEAD:和GET方法一样,只是不返回报文主体部分,用于确认URL的有效性和资源更新的日期等
  5. DELETE:删除文件
  6. OPTIONS:查询针对请求URL指定的资源支持的方法
  7. TRACE:让WEB服务器端将之前的请求通信环回给客户端
(3)请求首部字段

定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息、客户端信息以及对响应内容相关的优先级等内容

  1. Accept:通知服务器用户代理可处理的媒体类型及媒体类型的相对优先级 例如:Accept: text/html;q=0.9,*/*;q=0.8 q表示权重,默认值为1.0,当服务器提供多种内容时,将会有优先返回权重值最高的媒体类型
  2. Accept-Lanuage:告知服务器用户代理能够处理的自然语言集,以及其相对有限集,可一次指定多种自然语言集,同样可使用权重值q表示相对优先级 例如:Accept-Lanuage: zh-cn,zh;q=0.7,en=us,en;q=0.3
  3. Authorization:告知服务器用户代理的认证信息(证书值)
  4. Host:告知服务器请求的资源所处的互联网主机名和端口号 Host首部字段是在HTTP/1.1规范内唯一一个必须被包含在请求内的首部字段 例如:Host: www.baidu.com
  5. Referer:告知服务器请求的原始资源的URI 例如:Referer:www.baidu.com
  6. User-Agent:该字段会将创建请求的浏览器和用户代理名称等信息传给服务器 例如:User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64; rv13.0) Gecko/=20100101 Firfox/13.0.1

3.HTTP响应报文

(1)响应首部字段
  1. Server :HTTP服务器的安装信息
  2. Location:令客户端重定向至URI
  3. Retry-After:对再次发起请求是时机要求
  4. ETag:资源的匹配信息,页面ETag不变服务器直接返回304状态码可减轻带宽压力
  5. Content-Type:服务器告诉浏览器响应内容是什么类型,以及采用的是什么字符编码
  6. Content-Length:服务器告诉浏览器,响应实体的大小
  7. Date:表示是服务器是在什么时候响应回浏览器,注意这里的时间是按照美国时间来计算。
  8. Accept-Ranges: bytes - 该响应头表明服务器支持Range请求,以及服务器所支持的单位是字节(这也是唯一可用的单位).我们还能知道:服务器支持断点续传,以及支持同时下载文件的多个部分,也就是说下载工具可以利用范围请求加速下载该文件
(2)实体首部字段
  1. Allow:该首部字段用于告知客户端能够支持Request-URI指定资源的所有HTTP方法,当服务器收到不支持的HTTP方法时,会以状态码405 Method Not Allowed作为响应返回。
  2. Content-Encoding:该首部字段用于告知客户端服务器对实体主体部分选用的内容编码方式。
  3. Content-Language:该首部字段会告知客户端,实体主体使用的自然语言。
  4. Content-MD5:资源的报文摘要
  5. Content-Length:该首部字段表明了实体主体部分的大小,单位是字节。对实体主体进行编码传输时,不能再使用该字段。
  6. Content-Location:使用该字段给出报文主体部分相对应的URI。和首部字段Location不同的是,该字段表示的是报文主体返回资源对应的URI。
  7. Content-Range:针对范围请求,返回响应时使用该首部字段告知客户端作为响应返回的实体的哪个部分符合范围请求。字段值以字节为单位,表示当前发送部分及整个实体大小。
  8. Content-Type:该首部字段说明了实体主体内对象的媒体类型。
  9. Expires:该首部字段会将资源失效的日期告知客户端。
  10. Last-Modified:该首部字段会指明资源最后修改的时间。
     

(三)、CTF中HTTP常考知识点

Method:GET请求被过滤器或者WAF拦截,可转换成POST请求绕过检测

User-Agent:XX题目必须通过HAHA浏览器访问才能答对,构造 User-Agent:HAHA

Location:重定向时到了错误的地址,可通过Location到跳转正确地址

Referer(来源):让从本地访问 构造 Referer:127.0.0.1或者Referer:localhost,问你是否来自湖州师范大学,构造 Referer:HUCTF

X-Forwarded-For:用来表示 HTTP 请求端真实 IP):必须从本地访问  构造X-Forwarded-For:127.0.0.1

Accept-Language:不允许中国人访问 构造Accept-Language: en-us,en;

Cookie:判断情况再进行构造,[ZJCTF2019预赛]请使用admin登陆,构造cookie:21232f297a57a5a743894a0e4a801fc3(admin的32位md5)

自定义首部字段:简单题直接放了flag或者提示在自定义字段中

二、windows系统安全

(一)、windows系统安全基础

1.常用命令

查看系统版本 ver

查看主机名 hostname

查看网络配置 ipconfig /all

查看用户 net user

查看开放端口 netstat -ano

打开注册表 regedit

打开事件查看器 eventvwr.msc

打开系统服务 services.msc

打开组策略编辑器 gpedit.msc

打开本地安全策略 secpol.msc

打开本地用户和组 lusrmgr.msc

2.账户安全

lusrmgr.msc

查看账户abc的详细信息:net user abc

创建(空密码)[删除]账户abc:net user abc/add[del]

创建普通账户abc,密码为123:net user abc 123/add

把abc加入[退出]管理员组:net localgroup adminstrators abc/add[del]

启动[停用]账户abc:net user abc/active:yes[no]

新建[删除]组admin:net localgroup admin/add[del]

查看当前用户:whoami

建立隐藏用户并获取权限:net user abc$  net localgroup administrators abc$ /add

3.本地安全策略

secpol.msc

账号策略、密码策略等等

4.口令安全

利用hydra(九头蛇)暴力破解内网Windows登陆密码

在线:hydar -l whoami -P /root/zidian.txt smb://192.168.1.114

离线:PwDump 提取windows口令的哈希值 利用Opcrack彩虹表暴力破解

(二)、windows安全配置规范

1.系统服务

services.msc

查看已开启的服务:net start

停止服务:net stop servername

2.服务与进程安全

查看端口与进程关系:netstat -ano 任务管理器内根据PID找到对应的进程

3.日志审核

事件查看器:eventvwr.msc

审核策略:secpol.msc

Windows日志默认位置:“%systemroot%\system32\config”

FTP连接日志和HTTPD事务日志:“%systemroot%\System32\LogFiles”

注:%systemroot%是统配符表示系统安装目录。

4.文件权限控制

NTFS:一种为windows内核设计的磁盘格式

FAT32:微软发明,非微软也在使用的磁盘格式

1.在时间上,NTFS相对于FAT32推出的要晚,技术更先进。

2.NTFS拥有更高的安全属性。

3.FAT32格式不能支持4GB以上的文件。FAT32可以转换成NTFS格式。
 
Windows文件权限特性:
每种权限都有允许和拒接两种设置方法,权限的来源有直接设置和继承两种,如果出现矛盾,优先级为:直接设置的拒接>直接设置的允许>继承的拒接>继承的允许。
移动、复制对权限继承性的影响:
1.在同一分区移动文件,文件权限保持,文件在不同分区间移动,文件继承新位置的权限。
2.复制文件,权限会继承。
3.把文件移动或复制到FAT分区(不支持设置权限)中权限丢失

【Four-Week-Task】四周学习CTF之第一周【寒假更新】的更多相关文章

  1. Python学习之旅--第一周--初识Python

    一:Python是一种什么样的语言? 1.语言的分类: a.编译型语言和解释性语言: 通常所说的计算机语言分为编译型和解释型语言.编译型语言典型的如C,C++,通常在程序执行之前必须经由编译器编译成机 ...

  2. 红帽学习笔记[RHCSA] 第一周

    目录 红帽学习笔记[RHCSA] 环境 第一课 关于Shell 命令的基础知识 在终端中敲命令的快捷键 本次课程涉及的命令 第二课 常用的目录结构与用途 本次课程涉及到的命令 第三课 关于Linux的 ...

  3. 学习进度条<第一周>

    所花时间(包括上课):8小时(上课4,编程0.5,写博客1,读书2.5) 代码量:90行 博客量:4篇 了解到的知识点:什么是BUG                 哪怕有几万分之一的概率也要考虑安全 ...

  4. 16级第一周寒假作业F题

    Subsequence TimeLimit:1000MS  MemoryLimit:65536K 64-bit integer IO format:%lld Problem Description A ...

  5. FJUT16级第一周寒假作业题解J题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P9 涨姿势之区间刷新 TimeLimit:2000MS  MemoryLimit:128M ...

  6. FJUT16级第一周寒假作业题解D题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P3 第八集,体能训练 TimeLimit:1000MS  MemoryLimit:128M ...

  7. FJUT16级第一周寒假作业题解I题

    涨姿势题3 TimeLimit:1000ms  MemoryLimit:128000KB 64-bit integer IO format:%lld Problem Description 涨姿势题就 ...

  8. FJUT16级第一周寒假作业题解G题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P6 涨姿势题1 TimeLimit:1000MS  MemoryLimit:128000K ...

  9. 福建工程学院16级第一周寒假作业E题----第七集,奇思妙想

    第七集,奇思妙想                                                                                            ...

随机推荐

  1. ZR并查集专题

    ZR并查集专题 并查集,作为一个基础算法,对于初学者来说,下面的代码是维护连通性的利器 return fa[x] == x ? x : fa[x] = getf(fa[x]); 所以,但是这对并查集的 ...

  2. 2019-3-1-获取-Nuget-版本号

    title author date CreateTime categories 获取 Nuget 版本号 lindexi 2019-3-1 9:27:6 +0800 2019-02-25 15:51: ...

  3. C# 如何写 DEBUG 输出

    本文来告诉大家一个规范,如何去写 DEBUG 的输出. 经常在代码中,需要使用 DEBUG 来输出一些奇怪的东西来进行测试.但是输出的窗口只有一个,如果有一个逗比在不停输出,那么就会让输出窗口看不到自 ...

  4. js三大框架出现的意义

    解决了原始html,css,js的UI与数据状态之间同步的难题,避免了大量的操作DOM代码. 使用了React,Angular和Vue,我们只需要定义一次 UI 界面,不再需要为每个操作编写特定的 U ...

  5. seek方法补充

    seek 默认模式是从文件的开始移动光标,一共有0.1.2三种模式 f=open('seek.txt','r',encoding='utf-8') print(f.tell()) f.seek(10, ...

  6. 「Luogu P4987」回文项链 解题报告

    题面 求环中的长度为k(k为奇数)且回文中心不同的回文串个数 思路: 刚学manacher算法,就送上一道模板题,此题注重对manacher算法的理解 Manacher,但是不用插入其他符号,因为k是 ...

  7. 让你彻底明白TCP三次握手,四次挥手

    今天我们来讲一下TCP的三次握手和四次挥手,先来张思维导图.  一.TCP是什么 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流 ...

  8. 小小知识点(二十九)open access 和 classic access期刊出版形式分别指的是什么?

    open access: 作者付费,读者免费获取方式:相当于你给所有读者买单,就是交钱让你的文章可免费下载,很显然文章的被引用几率机会会提高.对于那些追求他引的单位,个别作者就得出点银子了 class ...

  9. 面试中经常问到的Redis七种数据类型,你都真正了解吗?

    前言 Redis不是一个简单的键值对存储,它实际上是一个支持各种类型数据结构的存储.在传统的键值存储中,是将字符串键关联到字符串值,但是在Redis中,这些值不仅限于简单的字符串,还可以支持更复杂的数 ...

  10. cc协议(知识共享,Creative Commons),程序员的基础守则之一

    知识共享 我在浏览git开源代码的时候,浏览到一句话: 版权声明:本文为CSDN博主「...」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:http ...