BugKu CTF总结(2)

接着上一篇文章,接着进行介绍。
五.这里对一些函数进行介绍

1.eval()函数:
(1).eval函数的参数的字符串末尾一定要有分号,在最后还要另加一个分号(这个分号是php限制)。
(2).注意单引号,双引号和反斜杠的运用。如果参数中带有变量时,并且变量有赋值操作的话,变量前的$符号钱一定要有\来转义。如果没有赋值操作可以不需要。
(3).注意在命令式字符串(包括分号)两边必须要有双引号或者根据需要用单引号。否则报错。
命令式字符串是指:字符串中包括echo、print之类的命令的时候。如果参数只有一个变量则可以不用。(简而言之,就是括号内的字符串会被当成命令执行。一定要加双引号和分号。)

2.var_dump()函数:
var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.

3.include()函数
语法:include(/path/to/filename)
include()语句将在其被调用的位置处包含一个文件。包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果。使用include()时可以忽略括号。

4.show_source()函数:
show_source() 函数对文件进行 PHP 语法高亮显示。语法通过使用 HTML 标签进行高亮。
用于高亮的颜色可通过 php.ini 文件进行设置或者通过调用 ini_set() 函数进行设置。
show_source() 是 highlight_file() 的别名。

5.file函数:
基本格式:file(path,include_path,context)

参数描述:
(1).path 必需。规定要读取的文件。
(2).include_path 可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 ‘1’。
(3).context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。

六.这里对函数进行一些介绍
1.error_reporting() 函数:
该函数规定报告哪个错误。该函数设置当前脚本的错误报告级别。该函数返回旧的错误报告级别。
基本格式:error_reporting(report_level)
报告级别:
0 就是隐藏错误报告
1 E_ERROR 运行时致命的错误。不能修复的错误。停止执行脚本。
2 E_WARNING 运行时非致命的错误。没有停止执行脚本。
4 E_PARSE 编译时的解析错误。解析错误应该只由解析器生成。
8 E_NOTICE 运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。
(这里只介绍前几个)

2.isset() 函数:
isset() 函数用于检测变量是否已设置并且非 NULL。如果已经使用 unset() 释放了一个变量之后,再通过 isset() 判断将返回 FALSE。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。
PHP 版本要求: PHP 4, PHP 5, PHP 7

基本语法:bool isset ( mixed $var [, mixed $… ] )

参数说明:
$var:要检测的变量。
如果一次传入多个参数,那么 isset() 只有在全部参数都被设置时返回 TRUE,计算过程从左至右,中途遇到没有设置的变量时就会立即停止。
返回值:如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE。

3.preg_match() 函数:
preg_match 函数用于执行一个正则表达式匹配。

基本语法格式:
int preg_match ( string $pattern , string KaTeX parse error: Expected 'EOF', got '&' at position 18: …bject [, array &̲matches [, int $flags = 0 [, int $offset = 0 ]]] )

参数说明:
$pattern: 要搜索的模式,字符串形式。
$subject: 输入字符串。
$matches: 如果提供了参数matches,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
$flags:flags 可以被设置为以下标记值:
PREG_OFFSET_CAPTURE: 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的)。 注意:这会改变填充到matches参数的数组,使其每个元素成为一个由 第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。
offset: 通常,搜索从目标字符串的开始位置开始。可选参数 offset 用于 指定从目标字符串的某个未知开始搜索(单位是字节)。

返回值
返回 pattern 的匹配次数。 它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后 将会停止搜索。preg_match_all() 不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误preg_match()返回 FALSE。
preg_match("/^\w+ / " , /", /",args)) 这个正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成

4.die() 函数:
die() 函数输出一条消息,并退出当前脚本。该函数是 exit() 函数的别名。

5.这里要对全局变量有一个了解:
变 量 名 = 变量名= =GLOBALS 该操作可以使$变量代表所有的变量,非常好用。

七.这里介绍一下抓包过程中,发送请求和响应的的组成。

请求方面:
组成结构:请求行、请求头、空行、请求体
1.请求行:请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。比如 GET /data/info.html HTTP/1.1。(按我理解,就是请求信息的第一行)
2.请求头:HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者 POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说 Content-Length必须出现。(按我理解,就是请求的各种信息)
3. 空行不怎么看的出来:它的作用是通过一个空行,告诉服务器请求头部到此为止。(按我理解,可以忽略不计)
4.请求体:浏览器真正发送给服务器的数据。(按我理解是需要提交的参数)
若方法字段是GET,则此项为空,没有数据
若方法字段是POST,则通常来说此处放置的就是要提交的数据
在这里插入图片描述

响应方面:
响应组成:响应行、响应头、响应体
1.响应行:响应行一般由协议版本、状态码及其描述组成 比如 HTTP/1.1 200 OK。(按我理解,响应信息里面的第一行)
2.响应头:响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。(按我理解,就是响应的各种信息)
3.响应体:响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码。(按我理解,就是请求发送后,系统的响应,真正返回给client的东西)
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值