某比赛Web部分wp
Upload 文件类型绕过攻击 打开代理,和burpsuit走一个端口 随意发一个文件,抓包 将Content-Type修改为 image/gif Content-Type决定了服务器以什么方式解读文件,且Content-Type是客户端可以修改的 以image/gif的方式上传一句话木马 链接蚁剑,在根目录找到flag 打开即可获得flag midserialize<?php error_reporting(0); include('flag.php'); highlight_file(__FILE__); class Sxsec{ public $token; public $password; public function __construct($t,$p){ $this->token=$t; $this->password = $p; } public...
Spring学习笔记
Spring学习笔记一定要区分mapper,service,和controller mapper是用来控制数据库 service主要实现业务逻辑 controller与前端交互 MVC模式 controller,view,model分别对应一个文件夹 前端后端,分离不分离的区别 每一个用户操作的就是客户端 后端是用spring搭建 前端有两个可以搭建的方式:web和app 用户打开网页,本质是向服务器发送了一个链接(请求),服务器接收到了请求之后,会返回一个页面,这个页面是以字符串表单的形式返回的,浏览器接收之后会自动转化 前后端不分离:客户端发送一个请求,服务端直接返回了一个表单 前后端分离:客户端发送一个请求,不会直接调用服务端的数据,而是会从web端返回一个html,css的表单,等到调用的时候才会去调用服务端的数据,图解如下 MVC模式 每一个链接对应一个函数 C:controller,负责向用户返回一个数据的控制器 V:视图,html ...
Java面向对象OOP
Java面向对象 OOPObject Oriented Programming要解决的问题 单独的变量解决,不利于数据的管理,把某个对象的信息拆解了,例如:存储一只猫的名字,年龄var等信息 如果用数组,数据类型体现不出来,而且变量名和内容的对应关系体现不出来,例如:int只能用string来存,只能通过下标来获取信息 不能体现猫的行为,比如,数组的结构无法加入方法(函数)的处理方式 总之,不利于数据的管理,效率低 类与对象的概述 一个程序就是一个世界,有很多事物:对象[属性,行为] 数据类型分为Java提供的数据类型和自定义的数据类型 类就是一个数据类型 对象:可以通过一个类来创建一个对象 实例化:就是具体化,具体到一只猫 类是抽象的,概念的,代表一类事务:人类,猫类 对象是具体的,实际的,代表一个具体事物,即,是实例 类是对象的模板,对象是类的一个个体,对应一个实例 从类到对象的不同说法 创建一个对象 实例化一个对象 把类实例化 总之:类实例化 -> 对象 ...
Java
Java基本语法特点 面向对象 oop 健壮,强类型机制 跨平台,即可以跨系统运行class文件,windows和Linux都可以 Java语言是解释性的,JavaScript,PHP,java是解释性,编译性语言是c,c++ 解释性语言,编译后的代码不能直接被机器执行,需要解释器来执行 编译性语言,编译后的代码可以直接被机器执行,编译后的是二进制文件,所以可以直接执行 Java的运行机制 先编写.java文件 编译为.class文件 JVM,java虚拟机,因为有了JVM,同一个Java程序在三个不同的操作系统中都可以执行 JDK java development kit Java开发工具包 JDK=JRE + Java的开发工具[java,javac,javadoc,javap等] ...
魔术方法
PHP魔术方法概念 魔术方法,PHP将所有以两个下划线开头的类方法保留为魔术方法(魔术方法即为一个特殊的类方法) 魔术常量,PHP向他运行的任何脚本提供了大量的预定义变量 __wakeup() __wakeup(),执行unserialize()时,会先调用这个函数 当在类的外部调用unserialize()时,会先检查在类的内部是否存在一个__wakeup()方法,如果存在,则会先调用__wakeup方法,预先准备对象需要的资源 __wakeup()常用于反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作 public funcion __wakeup(){ $this -> connect(); } __sleep() 当对一个对象序列化时,php就会调用__sleep()方法 (如果存在的话) ...
正则表达式
正则表达式概念 正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,将匹配的子串替换或者从某个串中提取符合某个条件的子串。 runoo+b 可以匹配runoob runooob runoooob等,+号代表前面的字符必须至少出现一次 runoo*b 可以匹配runob runoob runoooob等,*号代表前面的字符可以不出现,也可以出现一次或多次 colou?r 可以匹配color或者colour,?问号代表前面的字符最多只可以出现一次 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为”元字符”)组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 普通字符 ...
PHP反序列化
PHP反序列化原理原理 序列化就是将对象转换成字符串。反序列化相反,数据的格式的转换对象的序列化利于对象的保存和传输,也可以让多个文件共享对象。 最根本的是数据类型和格式的一种相互转换 serialize() 将一个对象转换成一个字符串 unserialize() 将字符串还原成一个对象 总:在PHP中,一般通过构造一个包含魔术方法的类,然后在魔术方法中调用命令执行函数,客户端传入数据(可更改变量的属性)时未检验,传入的序列化数据被实例化、反序列化后触发魔术方法从而执行命令或代码 触发 unserialize() 函数的变量可控,文件中存在可以利用的类 上面”name”也可以理解为是一个值 上图 s表示string类型 6表示6位 “xiaodi”表示值为”xiaodi” ...
PHP中的类
PHP中的类PHP中private、public、protected的区别详解 public表示全局,类内部和外部的子类都可以访问 private表示私有的,只有本类内部可以使用 protected表示受保护的,只有本类或子类或父类中可以访问 所以限制最高,安全最好的是priva public公有类型 在子类中可以通过 self::属性名 调用public方法或书信,parent::属性名 调用父类方法 在实例中可以通过 $obj->属性名来调用public类型的方法或属性 protected受保护类型 在子类中可以通过 self::属性名 调用protected方法或属性,parent::属性名调用父类方法 和public的区别在于:不能在类的外部调用,只能在本类,子类和父类中访问 private私有属性 该类的属性和方法只能在该类中使用 该类的实例,子类中和子类的实例中都不能调用私有类型的属性和方法 PHP new:实例化对象 使用类中的属性和方法不像使用变量和函数那样简单,首先要对类进行实例化 实例化对象 ...
PHP中的=>->和::的用法
PHP中=>和->以及::符号的用法->的用法 插入式解引用操作符 用于类里,访问类里的函数或对象,就是在类里面定义了一个函数,使用->可以调用这个类里面的函数<?php class test{ function do_test(){ echo "doing foo."; } } $bar = new test; $bar = do_test(); ?> ->用来引用对象的成员(属性和方法),即可以调用类里面定义的函数和变量$arr=['a' => 123,'b' => 456]; echo $arr['a']; print_r($arr); class A{ public $a=123; public $b=456; } $obj = new A(); echo $obj -> a; print_r($obj); =>的用法 创建关联数组时,经常使用=>来操作数组 $new_array=array(in =>...