CTF web入门学习记录

原来OI党,大学进了信息安全这个专业,结果准备去打CTF,但是发现CTF的水比ACM深多了,没有很多写的对新手友好的入门博客,然后学习的时候学长还让自己百度,其实挺不友好的。
最近想入web这个坑,顺带的自己看书做题的经验写写博客,之前的东西不想落下。
写之前入门题也做了二十多道,水挺深的。但是之前无非都是学按部就班的操作,具体原理根本不会。现在看看书谢谢学习记录,以后也能看看。

2019年10月16日 深夜

HTTP请求头内容
复制一段话,也许有用:在 Web 安全中,HTTP 包非常重要,其中的大量参数均会对安全产生至关重要的影响。利用抓包技术进行分析,常见的抓包工具有Wireshark (抓取网卡通信的数据包),Burpsuite (利用 HTTP 代理抓取数据包),Fiddler ( HTTP 代理,效果类似 Burpsuite)。我们利用Burpsuite9抓取 HTTP包。
根据教程我用的是burpsuite抓包,直接对我校CTF网站抓包。
抓到的内容如下图所示:

抓包内容
1请求行
 基本格式:Method Request-URI HTTP- Version CRLF
 图中的 GET/challenges HTTP/1.1就是所谓的请求行
 其中Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version 表示请求的 HTTP 协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
这样对应下来发现我截到的:
 请求方法为 GET
 请求路径为challenges
 HTTP版本为HTTP/1.1
请求方法用来告知WEB服务器本次请求的目的
粘贴一下请求方法(现在还看不懂)
 GET:请求获取 Request-URI 所标识的资源。
 POST:在 Request-URI 所标识的资源后附加新的数据。
 HEAD:请求获取由 Request-URI 所标识的资源的响应消息报头。
 PUT:请求服务器存储一个资源,并用 Request-URI 作为其标识。
 DELETE: 请求服务器删除 Request-URI 所标识的资源。
 TRACE:请求服务器回送收到的请求信息, 主要用于测试或诊断。
 CONNECT:保留,将来使用。
 OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。

2.请求消息报头
 请求消息报头用来向服务器端传递客户端自身的信息以及用户的附加信息。 这些信息可帮助服务器端更好地识别用户的请求,以提供对应的响应内容。
请求报头涉及安全的内容:
 Host (*必须存在):Host 主要用于指定被请求资源的Internet主机和端口号,即标识请求目标。其来源为当前访问的 URL。缺省端口号为80,若指定了端口号(以 8000 为例)进行防卫,则变成Host: www.a.com:8000。
 Content-Length:标识当前请求包中的内容长度。
 Origin:用来标识本次请求的发起源,只适用于POST方式。
 Referer:用来标识当前请求的发起页面。
 Accept: Accept 用于指定客户端接收哪些类型的信息。上例中表明允许后续类型在客户端实现。
 Accept-Encoding:告知服务器端当前客户端可接受的内容编码。
 Accept-Language:告知服务器端支持的语言类型。
 User-Agent: User-Agent 通常简称为UA,其中包含当前用户的操作系统、浏览器的基本信息,用于告知 Web 服务器当前访问者的情况。此报头域不是必需存在的。但如果客户端不使用 User-Agent 请求报头域,那么服务器端就无法得知客户端的基本信息。目前 UA 也经常被 Web 服务器用于统计当前用户状态及行为。
 刚入门也不太懂这些东西,觉得会比较重要,先摘抄下来,以后再修改。

3.请求正文内容
 请求正文中包含 HTTP 传输的信息。
 当请求方法为 GET 时,请求正文为空,所有内容通过在 URL 后面添加参数进行传输。
 只有请求方法为 POST 时,HTTP 请求正文中才有信息,通常为 Web 系统自定义的参数,用于实现与服务端的交互。其中的参数是由 Web 系统自行定义的。在 Web 系统开发时一般会根据参数用途指定特定的名称,如 username、 code 等。 但这样也会让攻击者清楚地知道参数的具体用法。
 所以参数命名应模糊,使得参数名称无法通过表面意思被理解,从而增加攻击者的分析难度。

2019年10月8日

HTTP协议响应头的内容
1.响应行
 响应行基本格式:HTTP-Version Status-Code Reason-Phrase CRLF
 HTTP-Version 表示服务器 HTTP 协议的版本;
 Status-Code表示服务器发回的响应状态代码;
 Reason-Phrase 表示状态代码的文本描述。
2.服务器状态码
 五种可能取值:
 1XX 表示提示信息,说明请求已被成功接收,继续处理。
 2XX 表示成功,说明请求已被成功接收、理解、接受。
 3XX 表示重定向, 要完成请求必须进行更进一步处理。
 4XX 表示客户端错误,请求有语法错误或请求无法实现。 5XX 表示服务器端错误,服务器处理请求时出错。

SQL注入

 做题需要用到SQL注入,先把后面的提前一下,往后学一下。

发布了41 篇原创文章 · 获赞 58 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/a1351937368/article/details/102596903
今日推荐