0%

Web Protocols

Common Web Protocols

HTTP & HTTPS

HTTP与HTTPS就是在浏览器中访问互联网网页所用到的协议。

HTTP就是应用最广泛的网络协议,数据在传输的过程中都是明文,所以运用HTTP协议来传输一些隐私数据就不安全。

HTTPS可以理解为安全版的HTTP协议,核心是加入了SSL(Secure Sockets Layer),通过SSL协议完成对所传输内容的加密。

HTTP是无状态的,通过抓包修改包头通常能够实现身份的伪造,而HTTPS需要身份验证,相对更加安全。

FILE

FILE协议是用来访问本地文件的,可以访问文件夹。

FTP

FTP协议经常用在局域网中,通过该协议来进行文件的快速传输。

BLOB

目前在一些在线视频音乐播放网页中,在审查html找src的时候经常能够看到以blob::开头的链接,粘贴进浏览器却没法访问。

事实上blob协议的链接是一个本地创建的URL,通过这个只存在于本地的链接去访问视频音乐,并在使用结束后销毁掉该URL,这样能够减少相应文件被直接爬下来的情况出现。

1
2
3
4
5
var url = URL.createObjectURL(new Blob(["hello, world!"], {type: "text/plain"}))
// *url* stores the blob link

window.URL.revokeObjectURL(url)
// now accessing the url causes 404 error code

PHP Pseudo-protocols

PHP的伪协议经常在文件包含的题目中运用到。

php://filter

编码流,可以用来获取php代码。不过如果直接read进来的话会把代码执行掉,想要不执行代码的话一般通过base64加密通过输出拿到手后再解密来看。

Example: php://filter/read=convert.base64.encode/resource=useless.php

php://input

输入流,可以用来执行POST数据中的php代码。不过在enctype="multipart/form-data的时候这种方法会失效。

data://

数据流,可以传入数据,支持MIME格式的解析。

Example:

  • data://text/plain,<?php phpinfo()?>,可以执行php代码,但没有试过。
  • data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=,最终的结果会是这串加密内容解密后的内容,可用来绕过过滤。

Others

  • phar://
  • zlib://
  • glob://
  • rar://
  • ogg://
  • expect://

这些没有见过,以后见到再补充吧。