\(2023WinterHoliday\)刷题总结第一弹
\(CTF\)
\(Web\)
1.\(json格式:\)$json['x']=="wllm"
\(JSON\)(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。
JSON的值:
- JSON的构成: $ws $值
- 值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。
- 对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的值由逗号分割的键值对组成,如:
{"name": "John Doe", "age": 18, "address": {"country" : "china", "zip-code": "10000"}}
引用\(JSON\)中的对象可以包含多个键值对,并且有数组结构,该语言正是一次实现过程内容的描述。
3.1 数组是由方括号括起来的一组值构成,如:
[3, 1, 4, 1, 5, 9, 2, 6]
3.2 字符串与C或者Java的字符串非常相似。字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
3.3 数字也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
2.\(php伪协议\)---多见于文件包含题中
常见伪协议 | 使用 |
---|---|
file:// | 访问本地文件系统 |
php:// | 访问php各个输入输出的数据流(I/O streams) |
phar:// | php归档(也不知道是个啥 |
zip:// | 压缩流,,类似的有bzip2:// &zlib:// 协议 |
http:// | 常规URL形式,允许通过HTTP1.0的GET方法,以只读访问文件或资源。 |
data:// | 数据流封装器,以传递相应格式的数据,也是base64传输 |
1)\(php://filter\)是对内存or源代码进行读写的固定样式。
\(php://input\)用于php的代码执行
?a=php://filter/read=convert.base64-encode/resource=whoami
resource=<要过滤的数据流>
这个参数是必须的。它指定了你要筛选过滤的数据流
read=<读链的筛选列表>
该参数可选。可以设定一个或多个过滤器名称,以管道符(|)
分隔。
2)\(data://text/plain\)(暂时只遇到了这个,会补充
?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b
or
?file=data://text/plain;<?php phpinfo()?>//此处写传入内容
3.\(php\)文件上传的可用后缀
\(php3,php5,pht,phtml,phps\)都是\(php\)文件可运行的文件扩展名
4.\(.htaccess\)文件
\(.htaccess\)是个配置文件,里面写了一些可以被服务器软件检测执行的玩意,只要你往里面塞配置(规则),就可以在服务器里面蹦迪)利用这个可以绕过php文件上传限制
5.在\(php\)中能够造成文件包含的函数有include
、require
、include_once
、require_once
、highlight_file
、show_source
、file_get_contents
、fopen
、file
、readfile