bugfor 社区 公开课 笔记 第1天 PHP 基础知识

释放双眼,带上耳机,听听看~!
bugfor 社区 公开课 笔记 第1天 PHP 基础知识

【一】常用网站

http://ceye.io

http://www.dnslog.cn

(1)PHP语言概述

PHP 是1门编程语言

吸收了 C语言 JAVA 和 perl语言的特点 可以方便大家的学习

PHP可以用于收集表单数据 生成动态网页  专门用于开发网站后台

它属于解析型脚本语言 不需要编译 直接运行

(2)PHP入门基础知识

开始标记

结束标记 ?>

指令分隔符 [;]

PHP循环语句必须要使用 分号[;]结束

PHP 注释

单行注释  //

多行注释 /* */

(3) 常用的PHP调试语句

var_dump  可以输出数组类型 给出的信息比较详细 包括数据类型

print

echo

(4) PHP常用数据类型

整数型

字符串

布尔型

浮点型

数组型

(5) PHP经常使用函数

$_POST 接收POST参数

$_GET 接受get参数

$_requests接受一切请求参数

$_COOKIE 接收cookie参数

$_FILE 文件上传

(6) PHP 运算符

加减乘除 +-*/

= 将右边的值  赋值给左边的变量

== 等于

=== 全等于

!= 不等于

> 大于

demo示例 如下代码

$x=5;

$y=6;

$z=$x+$y;

echo $z;

?>

输出结果

11

(7) 在渗透测试中 遇见 布尔盲注 的  常用函数

length()  计算字符长度

select USER();

select LENGTH(USER());

substr() 截取字符

select (substr(USER(),1,4);

ord 将字符ascii编码

select ord(‘d’);

mysql语句 mysql数据库查看操作系统版本

select sys_eval(‘os’)

Length () 计算字符长度

Substr() 截取字符

Ord() 将字符ascii编码

基于延时的布尔注入  准确率更高 兼容性更好

Length () 计算字符长度

select length(user());

Substr() 截取字符

一般比较好用的是

select substr(USER(),1,4);

截取第1位

select substr(USER(),1,1);

第1位结果 r

截取第2位

select substr(USER(),2,1);

第2位结果 0

截取第3位

select substr(USER(),3,1);

第3位结果 0

截取第4位

select substr(USER(),4,1);

第4位结果 t

substr(database(),1,1)=’p’

ord(substr(database(),1,1))>=100

Ord() 将字符ascii编码

ord 就是转换为 ascii码的数值

select ord(‘d’)

输出结果是 100

substr(database(),1,1)=’p’

ord(substr(database(),1,1))>=100

if(length(database()>=10,sleep(3),sleep(6))

sleep()

(8) 字符的输出

如果在输出字符串的时候 需要输出 ‘ 的时候  使用进行转义

echo “hello boy let’s go”

?>

运行输出结果

hello boy let’s go

(9) 常量的定义  使用 define

define(“NAME”,”AJEST”);

var_dump(NAME);

?>

运行输出结果

AJEST

(10) 预定义常量

常量名       常量值

__FILE__     当前的文件名

__LINE__     当前行数

__FUNCTION__ 当前的函数名

__CLASS__    当前的类名

__METHOD__   当前对象的方法名

__PHP_OS__   当前的操作系统

__PHP_VERSION__ 当前的PHP版本

echo __PHP_OS__;

echo __FILE__ ;

echo __PHP_VERSION__;

echo __DIRECTORY_SEPARATOR__;

echo ‘whoami’

echo ‘ping www.baidu.com’

echo 将字符串当做命令执行 比如如下代码

使用方法

echo __PHP_VERSION__;

>

运行结果

会输出 PHP 的 版本

操作系统的分隔符  __DIRECTORY_SEPARATOR__

根据操作系统决定目录的分隔符

linux系统 左斜线  /

windows系统 右斜线

(12)流程控制  循序执行

<1>循环执行 依次执行

<2>  分支执行

单向分支

 

if(条件表达式语句){执行语句}

$a = 70;

if($grade >= 60){

echo “you are good and the exam is pass”

}else{

echo “sorry you must hard study”

}

?>

单向分支的使用 场景

在一些教材的书籍中 为了方便学生的理解 常常以学生管理系统 中 的学生等级分类 作为典型案例 如上代码所示

下面只是扩展思路 作为大家的课后练习吧!

在渗透测试过程中

如果Mysql的版本 大于5.7 返回输出信息 当前数据库的版本大于mysql5.7

如果mysql的版本 小于5.5 返回输出信息 当前数据库的版本 小于 mysql5.6

多向分支

if(条件表达式语句){执行语句1}else{执行语句2}

多向分支的使用场景

比如在学生成绩管理系统中 管理学生成绩 进行学生成绩等级的分类

$grade = rand(0,100);

echo “you grade is “.$grade. “|”;

if($grade >=90 ){

echo “A”;

}elseif($grade >=80){

echo “B”;

}elseif($grade >=70){

echo “C”;

}elseif($grade >=60){

echo “D”;

}elseif($grade <60){

echo “you must hard study”;

}

?>

WEB安全

浅析XXE漏洞

2020-5-28 16:14:39

WEB安全安全独秀圈渗透教程

Web安全 Sql-labs SQL注入

2020-6-5 22:16:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索