一.Burp Suite的安装及配置
1.安装Java
2.打开注册机并修改ID
3.复制粘贴
4.完成安装
二.百度抓包
1.通过SwitchyOmega拓展设置代理服务器及端口分别为127.0.0.1,8080
2.打开Burp Suite在Proxy的Options设置中新增代理服务器及端口同上
3.打开SwitchyOmega代理
4.在Proxy的Intercept选项下设置为"Intercept is off"
5.在Proxy的HTTP history栏下选中百度查看抓包结果
三.PHP学习笔记
PHP语法
1.PHP 脚本以 <?php 开始,以 ?> 结束
<?php // PHP 代码 ?>
2.PHP 中的注释
//是单行注释
/*
是多行注释/*
2.PHP变量
1.变量以 $ 符号开始,后面跟着变量的名称 变量名必须以字母或者下划线字符开始 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ ) 变量名不能包含空格 变量名对大小写敏感($y 和 $Y 是两个不同的变量)
2.PHP 没有声明变量的命令,PHP会根据变量的值自动把变量转换为正确的数据类型
3.PHP 变量作用域
PHP 有四种不同的变量作用域:
-
local
-
global
-
static
-
parameter
局部和全局作用域
全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问
global 关键字用于函数内访问全局变量。
global 关键字:
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,在第一次声明变量时使用 static 关键字
4.PHP echo 和 print 语句
echo 和 print 区别:
-
echo - 可以输出一个或多个字符串
-
print - 只允许输出一个字符串,返回值总为 1
-
输出的速度比 print 快, echo 没有返回值,print有返回值1。
5.PHP EOF(heredoc) 使用说明
-
\1. 必须后接分号,否则编译通不过。
-
\2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
-
3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
-
\4. 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
-
\5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
实例
<?php echo *<<<EOF
<h1>我的第一个标题</h1> <p>我的第一个段落。</p>
EOF*; // 结束需要独立一行且前后不能空格 ?>
1.以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接,如下:
实例
<?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 结束需要独立一行且前后不能空格 echo $a; ?>
6.PHP 数据类型
PHP 变量存储不同的类型的数据,不同的数据类型可以做不一样的事情。
PHP 支持以下几种数据类型:
-
String(字符串)
-
Integer(整型)
-
Float(浮点型)
-
Boolean(布尔型)
-
Array(数组)
-
Object(对象)
-
NULL(空值)
-
Resource(资源类型)
PHP 字符串
一个字符串是一串字符的序列,就像 "Hello world!"。
PHP 整型
整数是一个没有小数的数字。
整数规则:
-
整数必须至少有一个数字 (0-9)
-
整数不能包含逗号或空格
-
整数是没有小数点的
-
整数可以是正数或负数
-
整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
PHP 浮点型
浮点数是带小数部分的数字,或是指数形式。
PHP 布尔型
布尔型可以是 TRUE 或 FALSE
$x=true; $y=false;
布尔型通常用于条件判断
PHP 数组
数组可以在一个变量中存 储多个值。
在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值:
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
PHP NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
实例
<?php $x="Hello world!"; $x=null; var_dump($x); ?>
PHP 资源类型
PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。
常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
使用 get_resource_type() 函数可以返回资源(resource)类型:
get_resource_type(resource $handle): string
此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。
7.PHP 类型比较
虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
-
松散比较:使用两个等号 == 比较,只比较值,不比较类型。
-
严格比较:用三个等号 === 比较,除了比较值,也比较类型。
例如,"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "FALSE" 是一个字符串。
实例
<?php if(42 == "42") { echo '1、值相等'; } echo PHP_EOL; // 换行符 if(42 === "42") { echo '2、类型相等'; } else { echo '3、类型不相等'; } ?>
以上实例输出结果为:
1、值相等 3、类型不相等
8.PHP 常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
-
name:必选参数,常量名称,即标志符。
-
value:必选参数,常量的值。
-
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
9.PHP 字符串变量
字符串变量用于包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。
在下面的实例中,我们创建一个名为 txt 的字符串变量,并赋值为 "Hello world!" 。然后我们输出 txt 变量的值:
实例
<?php $txt="Hello world!"; echo $txt; ?>
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。
实例
<?php $txt1="Hello world!"; $txt2="What a nice day!"; echo $txt1 . " " . $txt2; ?>
上面的代码将输出:Hello world! What a nice day!
PHP strlen() 函数
有时知道字符串值的长度是很有用的。
strlen() 函数返回字符串的长度(字节数)。
下面的实例返回字符串 "Hello world!" 的长度:
实例
<?php echo strlen("Hello world!"); ?>
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
下面的实例在字符串 "Hello world!" 中查找文本 "world":
实例
<?php echo strpos("Hello world!","world"); ?>
上面的代码将输出:6
10.PHP 算术运算符
11.If...Else 语句
PHP 条件语句
-
if 语句 - 在条件成立时执行代码
-
if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
-
if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
-
switch 语句 - 在若干条件之一成立时执行一个代码块
PHP - if 语句
if 语句用于仅当指定条件成立时执行代码。
语法
if (条件) { 条件成立时要执行的代码; }
PHP - if...else 语句
在条件成立时执行一块代码,条件不成立时执行另一块代码,请使用 if....else 语句。
语法
if (条件) { 条件成立时执行的代码; } else { *条件不成立时执行的代码; *}
PHP - if...elseif....else 语句
在若干条件之一成立时执行一个代码块,请使用 if....elseif...else 语句。.
语法
if (条件) { if 条件成立时执行的代码; } elseif (条件) { elseif 条件成立时执行的代码; } else { 条件不成立时执行的代码; }
12.Switch 语句
如果您希望有选择地执行若干代码块之一,使用 switch 语句。
语法
<?php switch (n) { case label1: 如果 n=label1,此处代码将执行; break; case label2: 如果 n=label2,此处代码将执行; break; default: 如果 n 既不等于 label1 也不等于 label2,此处代码将执行; } ?>
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
12.PHP 数组
数组能够在单个变量中存储多个值:
实例
<?php $cars=array("Volvo","BMW","Toyota"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?>
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
-
数值数组 - 带有数字 ID 键的数组
-
关联数组 - 带有指定的键的数组,每个键关联一个值
-
多维数组 - 包含一个或多个数组的数组
PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:
$cars[0]="Volvo"; $cars[1]="BMW"; $cars[2]="Toyota";
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量)
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43";
遍历关联数组
遍历并打印关联数组中的所有值,可以使用 foreach 循环,如下所示:
实例
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
13.PHP - 数组排序函数
在本章中,我们将一一介绍下列 PHP 数组排序函数:
-
sort() - 对数组进行升序排列
-
rsort() - 对数组进行降序排列
-
asort() - 根据关联数组的值,对数组进行升序排列
-
ksort() - 根据关联数组的键,对数组进行升序排列
-
arsort() - 根据关联数组的值,对数组进行降序排列
-
krsort() - 根据关联数组的键,对数组进行降序排列
14.PHP 循环 - While 循环
循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。
PHP 循环
在编写代码时,经常需要让相同的代码块一次又一次地重复运行。可以在代码中使用循环语句来完成这个任务。
在 PHP 中,提供了下列循环语句:
-
while - 只要指定的条件成立,则循环执行代码块
-
do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
-
for - 循环执行代码块指定的次数
-
foreach - 根据数组中每个元素来循环代码块
15.PHP 循环 - For 循环
循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。
for 循环
for 循环用于您预先知道脚本需要运行的次数的情况。
语法
for (初始值; 条件; 增量) { 要执行的代码; }
参数:
-
初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
-
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
-
增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
16.PHP 函数
创建 PHP 函数
函数是通过调用函数来执行的。
语法
<?php function functionName() { // 要执行的代码 } ?>
PHP 函数准则:
-
函数的名称应该提示出它的功能
-
函数名称以字母或下划线开头(不能以数字开头)
实例
一个简单的函数,在其被调用时能输出我的名称:
实例
<?php function writeName() { echo "Kai Jim Refsnes"; } echo "My name is "; writeName(); ?>
输出:
My name is Kai Jim Refsnes
PHP 函数 - 添加参数
为了给函数添加更多的功能,我们可以添加参数,参数类似变量。
参数就在函数名称后面的一个括号内指定。
实例 1
下面的实例将输出不同的名字,但姓是相同的:
实例
<?php function writeName($fname) { echo $fname . " Refsnes.<br>"; } echo "My name is "; writeName("Kai Jim"); echo "My sister's name is "; writeName("Hege"); echo "My brother's name is "; writeName("Stale"); ?>
输出:
My name is Kai Jim Refsnes. My sister's name is Hege Refsnes. My brother's name is Stale Refsnes.
实例 2
下面的函数有两个参数:
实例
<?php function writeName($fname,$punctuation) { echo $fname . " Refsnes" . $punctuation . "<br>"; } echo "My name is "; writeName("Kai Jim","."); echo "My sister's name is "; writeName("Hege","!"); echo "My brother's name is "; writeName("Ståle","?"); ?>
输出:
My name is Kai Jim Refsnes. My sister's name is Hege Refsnes! My brother's name is Ståle Refsnes?
PHP 函数 - 返回值
如需让函数返回一个值,请使用 return 语句。
实例
<?php function add($x,$y) { $total=$x+$y; return $total; } echo "1 + 16 = " . add(1,16); ?>
输出:
1 + 16 = 17