2019-10-8:渗透测试,基础学习,php基础,会话,文件包含,笔记
php面向对象基础
->调用符号
构造函数construct,主要用来创建对象时初始化对象,为成员变量赋初始值,总与new运算符一起使用在创建对象的语句中
析构函数destructor,与构造函数相反,当对象结束其生命周期时,系统自动执行析构函数,__destruct
继承,php使用关键字extends来继承一个类,php不支持多继承,class child extends parent{代码}
属性的访问控制,php对属性或方法的访问控制,是通过在前面添加关键字public公有,protected受保护,或private私有来实现
public公有,公有的类成员可以在任何地方被访问
protected受保护,受保护的类成员可以被其自身以及其子类和父类访问
private私有,私有的类成员只能被其定义所在的类访问
接口:可以指定某个类必需实现哪些方法,但不需要定义这些方法的具体内容,interface定义接口,要使用接口用implements,类必需实现接口中定义的所有方法,否则会报错,类可以实现多个接口,用逗号来隔开
php表单
html form 表单action表示提交到哪个页面,method表示使用什么提交方式
服务器接收用户发来的表单数据的方式:$_GET get,$_POST post,$_COOKIE cookie,$_REQUEST 用户发来的数据,可以是get和post
htmlspecialchars实体化编码
php文件包含
在php中,通过一些文件包含的函数将本地或远程服务器中文件包含解析到当前php中,达到读取文件,代码利用,函数调用的目的
include “文件名”==include("文件名")
include_once
去包含文件的时候,include_once包含一次即可,当找不到包含文件时候,会警告,后续代码依然会执行
require
require_once
包含文件时候,require_once,需要包含一次即可,当找不到包含的文件时候,会直接报错,后续代码不执行
包含过来的文件的文件中,只要文件中代码是标准格式的php代码就会被解析
copy good.png/b+shell.php/a bad.png,
good.png是正常图片,
/b表示bit流,
shell.php是木马文件或含有php代码的文件,
/a表示acscii文件,
bad.png表示生成的图片木马,后缀名不做要求,主要是ascii文件就行
会话管理
会话,服务器和用户之间传输数据的方式或途径,在通道传输数据之前需要建立通道,这个通道可以理解为会话,在客户端通过cookie来管理会话,在服务器通过session来管理会话
cookie的管理,首先需要服务器给用户分发cookie数据,setcookie(name,value,表达式,路径,域范围)后三者可以不写,其中表达式主要用来设置cookie的时效性,setcookie需要写在html代码之前
服务器获取cookie:$_COOKIE["cookie_name"],需要使用当前打开的浏览器去访问,不能换其他浏览器
服务器删除 setcookie("cookie_name","",time()-3600)// 设置 cookie 过期时间为过去 1 小时
session管理,session变量用于存储关于会话的信息,或者更改用户会话的设置,session变量存储单一用户的信息,并对于应用程序中所有页面都可用
session,工作机制,为用户创建唯一的uid,在该uid的基础上存储变量,uid放在cookie或他通过url去传输,放在url中不安全
在html代码之前,通过session_start()函数来开启session,开启之后可以通过session数组存储某些变量
销毁session,可以使用unset()或session_destroy()函数来删除,需要session_start()结合使用,session_destroy()会清楚所有的session,谨慎使用
2019-10-8:渗透测试,基础学习,php基础,会话,文件包含,笔记的更多相关文章
- 零基础到精通Web渗透测试的学习路线
小编相信很多新手都会遇到以下几个问题 1.零基础想学渗透怎么入手? 2.学习web渗透需要从哪里开始? 这让很多同学都处于迷茫状态而迟迟不下手,小编就在此贴给大家说一下web渗透的学习路线,希望对大家 ...
- 渗透测试(PenTest)基础指南
什么是渗透测试? 渗透测试(Penetration Test,简称为 PenTest),是指通过尝试利用漏洞攻击来评估IT基础设施的安全性.这些漏洞可能存在于操作系统.服务和应用程序的缺陷.不当配置或 ...
- 2019-9-19:渗透测试,基础学习,html常用标签,笔记
HTML常用标签<br>:换行<meta charset="utf-8">:编码标签<script type="路径">:插 ...
- 2019-10-11:渗透测试,基础学习,php+mysql连接,笔记
mysql导出数据1,通过工具如phpmyadmin,navicat等2,mysqldump -u -p 库名 > /数据库文件, mysqldump -u -p 库名 表名 > /表数据 ...
- 2019-9-24:渗透测试,JavaScript数据类型基础学习
JavaScript 数据类型 值类型(基本类型):字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symbol. 引用数据类型: ...
- 2. 移动安全渗透测试-(Android安全基础)
2.1 Android系统架构 1.应用程序层 平时所见的一些java为主编写的App 2.应用程序框架层 应用框架层为应用开发者提供了用以访问核心功能的API框架 android.app:提供高层的 ...
- 4. 移动安全渗透测试-(Android逆向基础)
4.1 smali 基础 1.注释 smali中使用#来代表注释一行例如:# const-string v0, "aaa" #这句不会被执行 2.数据类型 V void,只能用于返 ...
- java基础学习总结——基础语法2
一.语句
- JAVA基础学习day23--GUI基础
一.GUI概述 1.1.GUI概述 Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面, CLI: Command line User Interf ...
随机推荐
- 让SpringBoot的jackson支持JavaBean嵌套的protobuf
问题背景 REST 项目使用protobuf 来加速项目开发,定义了很多model,vo,最终返回的仍然是JSON. 项目中一般使用 一个Response类, public class Respons ...
- 关于./xhost: unable to open display问题的解决
看了很多大同小异的帖子,都没能解决这个问题,以下是我的实测经验,注意第三步,很关键. 注:以下操作在确保vncserver.xdpyinfo服务正常的情况下进行 第一步:root登录,启动vncser ...
- spring cloud 2.x版本 Zuul路由网关教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...
- vw vh 的概念
视口单位(Viewport units) 什么是视口? 在桌面端,视口指的是在桌面端,指的是浏览器的可视区域:而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Vi ...
- python3openpyxl库的简单使用
python3操作表格有很多库,现在主要给大家介绍一下我比较喜欢用的openpyxl库,安装直接pip安装,对pip安装有疑问可以参考我有关于pip使用的文章. wb=Workbook()#新建表格 ...
- vi文本编辑器命令
基本上 vi 共分为三种模式,分别是『一般模式』.『编辑模式』与『指令列命令模式』. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式).在这个模式中, ...
- 干货 Elasticsearch 知识点整理二
目录 root object mate-field 元数据字段 mapping-parameters 动态mapping(dynamic mapping) 核心的数据类型 精确匹配与全文检索 精确匹配 ...
- 网页文件打包成.exe可执行文件
网页文件不止可以通过浏览器打开,也可以通过打包程序打包成.exe桌面可执行程序,这样写的网页文件就可以像桌面应用一样打开了.方法如下: 工具:NW.js.Enigma Virtual Box.资源编辑 ...
- lenovo ubuntu18.04 找不到网络适配器
链接: https://pan.baidu.com/s/1YJl-MfG0tVy9sLx4_otmnA 提取码: smfp https://blog.csdn.net/John_chaos/artic ...
- python语言线程标准库threading.local源码解读
本段源码可以学习的地方: 1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建: 2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls ...