自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 攻防世界-favorite_number

老样子进入环境,一段代码刷刷下来,闯进脑子里这里就需要具备php语言的基础了,还有正则的基础,还不会的小伙伴,赶紧补一补(注意php5.5.9这个版本)分析一下代码:if($stuff === $array && $stuff[0] != 'admin') //数组判断,强等于,首元素需要不等于 'admin'if (preg_match("/^\d+$/im",$num)) //只允纯数字, 看到谋面的/m了吧,这是开启了多行匹配,所以呢^和$不只是字...

2021-09-29 14:46:40 1560

原创 攻防世界-Cat

进入环境出现的页面是一个输入框,然后让我们输入域名我们顺着思路输入一个域名试一试并没有任何的回显内容想一想,如果输入127.0.0.1会怎么样?它执行了一个ping命令,那么就会联想到会不会有命令拼接在框中输入 127.0.0.1 & ls 127.0.0.1 | ls显示无效的url,应该是被过滤掉了,burp抓一抓,跑一跑看看哪个字符没有被过滤发现@符号没有被过滤,这有什么用呢,开始思考.没有特别好的思路,这个时候就要脑洞大一点,各种尝试了...

2021-09-29 10:01:39 3588 2

原创 攻防世界fakebook

打开靶场点击join,输入相应内容失败弹出想想别的思路用dirsearch 和御剑各自扫了一遍,发现了robots.txt,还有flag.php,好家伙...访问看一下没有啥东西有个user.php的备份文件,下载下来看看打开看看审计代码发现,在最后有个正则匹配,需要满足才会被get传入正则匹配随便构造一个http://123.com,再次进行join成功进入随便点一点看看能发现什么,在这个页面发现可能存...

2021-09-27 18:28:29 1273

原创 攻防世界Web2

进入之后就是一段php代码注释也写的也很清楚了逆向解密就可以得到flag了先审计一下代码<?php$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){ $_o=strrev($str); //这是反转字符串 // echo $_o; for($_0=0;$_0<strlen($_o);$_0++.

2021-09-26 15:00:28 236

原创 攻防世界---ics-05

点进场景看到是很炫酷的页面,题目秒速的是:系统设备维护中心的后门入侵系统,那直奔那里进来发现什么也没有,到处点一点在点击时, url发送了变化出现?page=index 那么联想到可能存在利用文件包含读取网页源码的漏洞用php内置filter伪协议读取文件的代码:?page=php://filter/read=convert.base64-encode/resource=index.php访问之后页面出现一大段base64编码之后去解码得到(给出关键部分).

2021-09-26 11:02:57 1449 2

原创 攻防世界-upload

进入场景映入眼帘需要注册账号注册好之后,登录跳转页面突破点应该就在这里了我们先上传一个php文件显示不正确的文件扩展名,被拦了用burp抓包改信息成功上传 但是没有上传路径 只能上传不能利用思考(题目给的是upload,给的引导思路 就是上传文件拿flag)我试着上传jpg,png格式的图片文件有文件名回显,这说明文件已经被传到了数据库中,游览器又从数据库中读取了上传的文件,那么这个过程久有可能触发sql注入...

2021-09-24 11:04:47 1129 1

原创 攻防世界-easytornado

从题目表述:Tornado框架可以知道应该是Tornado框架漏洞tormado是python中的一个web应用容器点进去场景 呈现在眼前的是三个链接 我们一个一个点进去看看flag.txt点进去flag就在 这里面试一试url访问 /file?filename=/fllllllllllllag跳转页面报了error,在游览器上有回显,那判断这里可能存在模板注入(SSTI){{ ... }}:装载一个变量,模板渲染的时候,会使用传进来的同名参数这...

2021-09-24 10:19:17 188

原创 攻防世界comment

刚进入看见画面然后发现页面需要登录 输入框似乎给了提示burp抓取 弱口令爆破从爆破情况来看 密码应该是zhangwei666登录后也没发现什么可以注入 也没有什么变化习惯性的用dirsearch 扫一下可以看到.git出现了 那应该是git源码泄露了, 用githack抓下来我们查看我们抓下来的文件可以判断 他的源码不完整 缺失了用脚本给它补上参考 -> CTF中的git泄露题目 - Tkitn - 博客园...

2021-09-16 14:59:00 455

原创 String类

java.lang.String类的使用1.概述String: 字符串,使用一对""引起来表示.1.String 声明为final的,不可被继承2.String 实现了 Serializable 接口: 表示字符串是支持序列化的. 实现了 Comparable 接口: 表示String可以比较大小3.String内部定义了final char[] value 用于存储字符串数据4.通...

2020-01-28 00:25:24 129

原创 JDK5.0新增线程创建的方式

方式一: 实现Callable接口.说明:如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大?1.call()可以返回值的.2.call()可以抛出异常,被外面的操作捕获,获取异常的信息3.Callable是支持泛型的方式二: 使用线程池好处: 1.提高相应速度(减少了创建新线程的时间)2.降低资源消耗(重复利用线程池中线程,不需要每次都创...

2020-01-27 20:52:49 93

原创 线程通信

1.线程通信涉及到的三个方法wait(): 一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器.notify(): 一旦执行此方法,就会唤醒被wait的一个线程.如果有多个线程被wait,就唤醒优先级高的那个.notifyAll(): 一旦执行此方法,就会唤醒所有被wait的线程2.说明:1.wait(),notify(),notifyAll() 三个方法必须使用在同步代码块或同步...

2020-01-27 16:04:07 98

原创 死锁问题

1.死锁的理解不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁.2.说明:1.出现死锁后,不会出现异常,不会出现提示,只是所的线程都处于阻塞状态,无法继续2.我们使用同步时,要避免出现死锁....

2020-01-27 15:20:30 120

原创 线程的同步机制

1.背景例子: 创建一个窗口卖票,总票为100张,使用实现Runnable接口的方式1.问题: 卖票过程中,出现了重票,错票 --> 出现了线程的安全问题2.问题出现的原因: 当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票3.如何解决: 当一个线程a在操作ticket的时候,其他线程不能参与进来,直到线程a操作完ticket时,其他线程才可以开始操作tick...

2020-01-25 13:33:53 81

原创 Thread类中的常用的方法

1.start(): 启动当前线程: 调用当前线程的run()2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中3.currentThread(): 静态方法,返回执行当前代码的线程4.getName(): 获取当前线程的名字5.setName(): 设置当前线程的名字6.yield(): 释放当前cpu的执行权7.join(): 在线程a中调...

2020-01-25 12:29:27 442

原创 创建多线程的两种方式

方式一: 继承Thread类的方式:1.创建一个继承于Thread类的子类2.重写Thread类的run() --> 将此线程执行的操作声明在run()中3.创建Thread类的子类的对象4.通过此对象调用start():①启动当前线程 ② 调用当前线程的run()说明两个问题:问题一: 我们启动一个线程,必须调用start(),不能调用run()的方式启动线程.问题二: 如...

2020-01-25 12:10:18 120

原创 程序,进程,线程的理解

1.程序概念: 是为完成特定任务,用某种语言编写的一组指令的集合.即指一段静态的代码.2.进程概念: 程序的一次执行过程,或是正在运行的一个程序.说明: 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域3.线程概念: 进程可进一步细化为线程,是一个程序内部的一条执行路径.说明: 线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计算器,线程切换的开销小....

2020-01-24 16:44:26 203

原创 关键字: interface

1.使用说明:1.接口使用interface来定义2.Java中,接口和类是并列的两个结构3.如何定义接口: 定义接口中的成员3.1 JDK7及以前: 只能定义全局变量和抽象方法>全局变量: public static final的,但是书写时,可以省略不写>抽象方法: public abstract的 3.2 JDK8: 除了定义全局常量和抽象方法之外,还可以定义静态方...

2020-01-23 14:12:23 93

原创 关键字:abstract

1.可以用来修饰: 类,方法2.具体:abstract修饰类: 抽象类>此类不能实例化>抽象类中一定有构造器,便于子类实例化时调用(涉及: 子类对象实例化的全过程)>在开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 —> 抽象的使用前提: 继承性abstract修饰方法: 抽象方法> 抽象方法指方法的声明,没有方法体> 包含抽象...

2020-01-23 00:28:08 78

原创 关键字: final

1.可以用来修饰: 类,方法,变量2.具体的:2.1 final 用来修饰一个类: 此类不能被其他类所继承.比如: String类,System类,StringBuffer类2.2 final 用来修饰方法: 表明此方法不可以被重写比如: Object类中getClass();2.3 final 用来修饰变量: 此时的"变量"就称为是一个常量1.final修饰属性: 可以考虑赋值的位...

2020-01-23 00:19:39 83

原创 类的结构: 代码块

类的成员之四: 代码块(初始化块)(重要性较属性,方法,构造器差一些)1.代码块的作用: 用来初始化类,对象的信息2.分类: 代码块要是使用修饰符,只能使用static分类: 静态代码块 vs 非静态代码块静态代码块:内部可以输出语句随着类的加载而执行,而且只执行一次作用: 初始化类的信息如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行静态代码块的执行要优先于非...

2020-01-22 23:57:05 197

原创 main()的使用说明

1.mian()方法作为程序的入口2.main()方法也是一个普通的静态方法3.main()方法可以作为我们与控制台交互的方式,(例如,使用Scanner)小结:public static void main(String[] args){//方法体}权限修饰符: private 缺省 protected public ----> 封装性修饰符: static \ final \...

2020-01-22 16:06:15 317

原创 封装和隐藏

1.为什么要由封装性?① 我们程序设计追求"高内聚,低耦合".高内聚: 类的内部数据操作细节自己完成,不允许外部干涉;低耦合: 仅堆外暴露少量的方法用于使用②隐藏对象内部的复杂性,只对外公开简单的接口.便于外界调用,从而提高系统的可扩展性,可维护性.通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来.这就是封装性的设计思想.2.问题的引入当我们创建一个类的对象以后,我们可以通过"对象.属...

2020-01-05 11:59:18 222 1

原创 构造器

1.构造器的作用构造器的作用:1.创建对象2.初始化对象的信息2.使用说明:1.如果没有显示的定义类的构造器的话,则系统默认提供一个空参构造器2.定义构造器的格式: 权限修饰符 类名(形参列表){}3.一个类种定义的多个构造器,彼此构成重载4.一旦我们显示的定义了类的构造器之后,系统就不再提供默认的空参构造器5.一个类种,至少会有一个构造器....

2020-01-05 11:59:12 59

原创 属性赋值的先后顺序

属性赋值的先后顺序:①默认初始化②显示初始化③构造器种初始化④通过"对象.方法"或"对象.属性"的方式赋值以上操作的先后顺序: ① - ② - ③ - ④...

2020-01-05 11:59:05 387 2

原创 关键字: this

1.可以调用的结构: 属性,方法;构造器2.this 调用属性,方法:this理解为: 当前对象 或 当前正在创建的对象在类的方法种,我们可以使用"this.属性"或"this.方法’的方式,调用当前对象属性或方法,但是,通常情况下,我们都选择省略"this.".特殊情况下,如果方法的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表名此变量是属性,而非形参.在类的构造器...

2020-01-05 11:58:58 63

原创 关键字: package/ import

1.package的使用说明:①为了更好的实现项目中类的管理,提高包的概念②使用package声明类或接口所属的包,声明在源文件的首行③包,属于标识符,遵循标识符的命名规则,规范,“看见就知道意思”④没’.'一次,就代表一层文件目录2.jdk中的主要包介绍:① java.lang ---- 包含伊西俄java用语言的核心类,比如String Math Integer System 和...

2020-01-05 11:58:11 60

原创 继承性

继承性的好处① 减少了代码的冗余,提高了代码的复用性②便于功能的扩展③为之后多态性的使用,提供了前提2.继承性的格式:class A extends B{}A: 子类,派生类,subclassB: 父类,超类,基类,superclass3.子类继承父类以后有哪些不同?① 一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有属性和方法.② 特别的,父类中声明为privat...

2020-01-05 11:58:04 74

原创 方法的重写

1.什么是方法的重写子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作2.应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法.3.重写规则方法的声明 : 权限修饰符 返回值类型 方法名(形参列表) throws 异常的类型{//方法体}① 约定俗成: 子类中的叫重写的方法,父类中的叫被重写的方法② 子类重写的...

2020-01-05 11:57:57 145

原创 关键字: Super

1.super 关键字可以理解为: 父类的2.可以用来调用的结构:属性,方法,构造器3.super用属性,方法① 我们可以在子类的方法或构造器中.通过使用"super.属性"或"super.方法"的方式,显示的调用父类中声明的属性或方法.但是,通常情况下,我们习惯省略"super."② 特殊情况: 当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显示的使用"...

2020-01-05 11:57:46 56

原创 单元测试方法

Java中的JUnit单元测试步骤:1.中当前工程 - 右键择:build path - add libraries - JUnit 4 - 下一步2.创建Java类,进行单元测试。此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构造器3.此类中声明单元测试方法。此时的单元测试方法:方法的权限是public,没返回值,没形参4.此单元测试方法上需要声明注解:@...

2020-01-05 11:57:38 793

原创 Object类的使用

1.java.lang.Object类的说明:1.Object类是所有java类的根父类2.如果在类的声明中未使用extends关键字指明其父类,则默认父亲为java.lang.Object类3.Object类中的功能(属性,方法)就具通用性.属性无: 无方法: equals() / toString() / getClass() / hashCode() / clone() / fi...

2020-01-05 11:57:31 96

原创 子类对象实例化全过程

1.从结果上看: 继承性子类继承父类以后,就获取了父类中声明的属性或方法.创建子类的对象,在堆空间中,就会加载所父类中声明的属性.2.从过程上看:当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,…直到调用了java.lang.Object类中空参的构造器为止.正因为加载过所的父类的结构.所有才可以看到内存中父类中的结构,子类对象...

2020-01-05 11:56:55 299

原创 面向对象的特征三:多态性

1.多态性的理解:可以理解为一个事物的多种形态。2.何为多态性:对象的多态性: 父类的引用指向子类对象(或子类的对象赋给父类的引用)举例:Person p = new Man()Object obj = new Date()3.多态性的使用: 虚拟方法调用 1.有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法.2.总结:...

2020-01-05 11:56:45 112

原创 包装类的使用

1.为什么要有包装类(或封装类)为了使基本数据类型的变量具有类的特征,引入包装类.2.基本数据类型与对应的包装类:基本数据类型 : 包装类:byte Byteshort Shortint Integerlong Longfloat Floatdouble Doubleboolea...

2020-01-05 11:55:06 69

原创 关键字:static

1.可以用来修饰的结构: 主要用来修饰类的内部结构属性,方法,代码块,内部类2.static修饰属性: 静态变量(或类变量)2.1 属性,是否使用static修饰,又分为: 静态属性 vs 非静态属性(实例变量)实例变量: 我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性.当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改.静态变量: 我们创建了类...

2020-01-05 11:54:29 61

原创 JavaBean的概念

所谓JavaBean,是指符合如下标准的Java类:1.类是公共的2.一个无参的公共的构造器3.属性,且对应的get,set方法

2019-12-02 14:31:06 88

原创 基础查询

一,语法select 查询列表from 表名:二,特点1.查询列表可以是字段,常量,表达式,函数,也可以是多个2.查询结果是一个虚拟表三,格式1.查询单个字段select 字段名 from 表名;2.查询多个字段select 字段名,字段名 from 表名;3.查询所有字段select * from 表名4.查询常量select 常量值;日期型和字符型的常量必须用单引...

2019-11-27 23:19:51 83

原创 方法

所谓的方法就是描述类应该具有的功能1.方法的声明:权限修饰符 返回值类型 方法名(形参列表){方法体}2.注意:Java规定的4种权限修饰符:private,public,缺省,protected返回值 类型:分为有返回值和没有返回值有返回值则必须在方法声明时,指定返回值的类型,则就在方法种要使用.return关键字来返回指定类型的变量或常量: ‘return 数据’.没有返回...

2019-11-27 22:49:37 60

原创 属性

属性和局部变量相同点:1.定义变量格式: 数据类型 变量名 = 变量值2.先声明,后使用3.变量都其对应的作用域不同点:1.在类中声明的位置不同:属性: 直接定义在类的一对{}内局部变量: 声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量2.关于权限修饰符的不同属性: 可以在声明属性时,指明其权限,使用权限修饰符.常用的权限修饰符:private,public,...

2019-11-25 23:23:35 94

原创 类和对象

1.面向对象学习:1.Java类及类的成员:属性、方法、构造器;代码块、内部类2.面向对象的大特征:封装性、继承性、多态性、(抽象性)3.其它关键字:this、super、static、final、abstract、interface、package、import等2.面向对象与面向过程的理解1.面向过程:强调的是功能行为,以函数为最小单位,需要考虑怎么做2.面向对象:强调具备了功能的...

2019-11-24 22:45:50 72

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除