JavaWeb基础(一)-IO操作
# Java I/O 工作机制:
注:简要笔记,示例代码可能较少,甚至没有。
# 1、Java 的 I/O 类库的基本架构。
Java 的 I/O 操作类在包 java.io 下,大概有将近80个类,这些类大概可以分为如下四组。
基于字节操作的 I/O 接口:InputStream 和 OutputStream 。
基于字符操作的 I/O 接口:Writer 和 Reader 。
基于磁盘操作的 I/O 接口:File。
基于网络操作的 I/O 接口:Socket。
# 1.1、基于字节的 I/O 操作接口
基于字节的 I/O 操作接口输入和输出分别是:InputStream 和 OutputStream 。InputStream 的类层次如下:
输入流根据数据类型和操作方式又被划分为若干个子类,每个子类分别处理不同操作类型。OutputStream 的类层次结构也类似,如下图:
# 1.2、基于字符的 I/O 操作接口
下图是写字符的 I/O 操作接口涉及的类,Writer 类提供了一个抽象方法 write(char cbuf[],int off,int le ...
三、Servlet基础
注:因为我并不完全是为了从 0 开始 Java 开发,因此,我这里先暂时跳过第二章服务器环境相关的内容,直接开始第三章的内容。
# 3.1、Servlet 的基本结构:
下面的代码给出了一个基本的 Servlet ,它处理 GET 请求。GET 请求是浏览器请求的常见类型,用来请求 Web 页面。用户在地址栏中输入 URL 、点击 Web 页面内的连接、或提交没有指定 METHOD 或 METHOD=“GET” 的 HTML 表单时,浏览器都会生成这个请求。 Servlet 还可以容易地处理 POST 请求(提交 METHOD=“POST” 的 HTML 表单时,会生成 POST 请求)。HTML 表单的使用细节以及 GET 和 POST 之间的区别。
123456789101112131415161718192021222324package com.firstweb.study01;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServlet;import jakarta.serv ...
一、Servlet和JSP技术概述
注:该系列笔记是用于我在 《Servlet 与 JSP 核心编程》这本书中的学习笔记,无其他意思,侵权请联系 2082045221@qq.com 删除。
第一章内容较少,所以暂时有用的笔记也不多。
# 1.1、Servlet 的功用:
Servlet 是运行在 Web 服务器或应用服务器上的 Java 程序,它是一个,负责连接来自 Web 浏览器或其他 HTTP 客户程序的请求和 HTTP 服务器上的数据库或应用程序。Servlet 的工作是执行下面的任务,如图 1.1 所示:
读取客户发送的显式数据。
最终用户一般在网页的 HTML 表单中输入的这些数据。然而,数据还有可能来自于 Applet 或定制的 HTTP 客户程序。
读取由浏览器发送的隐式请求数据。
图 1.1 中显示了一条从客户端到 Web 服务器(Servlet 和 JSP 所在的层)的单箭头,但实际上从客户端传送到 Web 服务器的数据有两种,它们分别为用户在表单中输入的显式数据,以及后台的 HTTP 信息。两种数据都很重要。HTTP 信息包括 Cookie、浏览器所能识别的媒体类型和压缩模式等。
...
BUUCTF-Misc-第一页(1-16)
# Misc-BUU 刷题 - 第一页
# 1. 签到:
flag在题目描述里,直接交了。
# 2. 金胖:
没有题目描述。
题目是一个gif文件,放到pr等软件里逐帧看就可以了,flag{he11ohongke}
# 3. 你竟然赶我走:
附件是一个jpg文件,但是,打开啥都没有。
直接用记事本打开,翻到最底下,flag{stego_is_s0_bor1ing}
# 4. 二维码:
图片是个二维码,这里不放出来了,扫了之后没啥内容,那么记事本看看,存在一个4number.txt的一个文件,那么,通过010editor打开图片分析,发现图片里面含有一个txt文件,还是在压缩包中。
补充知识:
一个完整的 JPG 文件由 FF D8 开头,FF D9 结尾
在使用图片浏览器时,图片浏览器会忽略 FF D9 以后的内容,因此可以在 JPG 文件中加入其他文件。其他文件隐藏如 png.gif 文件隐藏也是这个道理。
直接在linux中使用foremost分离压缩包,之后成功拿到一个压缩包,打开有个4number.txt ...
小小的总结(日常发癫)
# 总地看看这个学期:
眨眼之间,我等的一个游戏快要公测了,原来是到了五月了。时间过得真快,这个学期感觉啥都没学就快要结束了。
想了想这个学期刚开校那会儿,一个月下来才只学了个无列名注入,总感觉没啥动力,很颓废,直到现在也是一样,除了摸鱼就是摸鱼,感觉不仅迷茫,还没啥动力。最后想了想,可能是因为我不知道学些啥了吧。并不是因为我掌握了,而是因为学不懂,才不知道咋学,陷入了一种死循环,接触了 Pwn 以后更是如此,但是,我又没有啥办法,Web 到了现在感觉有点抽象了,做题基本上都没啥思路,大部分都是靠 wp 才能成功复现出来,甚至一些很基础的考点我都想不到,感觉到了一个怎么学都上不去的境地。
越感觉学不懂,就越没动力,学得越少,然后越学不懂,死循环下去了。好在,我最近突然意识到,去打打比赛,与队友交流交流对我好像有不小的帮助,在各种方面都给了我不小的乐趣,自从队里同年级的人多起来之后,感觉越来越有学的动力了,相互之间调侃,相互之间交流,使原本枯燥乏味的学习过程变得稍微有了点乐趣,感觉累了的时候稍微休息休息,跟群里的某个男童鞋来一句 “兄弟,你好香。” 虽说没有很明显的轻松 ...
Ciscn2024
# Web
# Simple_php
这个 Simple_php 一点儿也不 Simple (⋟﹏⋞)
源码放这儿了:
123456789101112131415<?php ini_set('open_basedir', '/var/www/html/');error_reporting(0);if(isset($_POST['cmd'])){ $cmd = escapeshellcmd($_POST['cmd']); if (!preg_match('/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|ping|\*|sort|ch|zip|mod|sl|find|sed|cp|mv|ty|grep|fd|df|sudo|more|cc|tac|less|head|\.|{|}|tar|zip|gcc|uniq|vi|vim|file|xxd|base64|date|bas ...
【2024】H&NCTF
# Web
# Please_RCE_Me
GET传参输入?moran=flag,之后获取源码:
123456789101112131415<?phpif($_GET['moran'] === 'flag'){ highlight_file(__FILE__); if(isset($_POST['task'])&&isset($_POST['flag'])){ $str1 = $_POST['task']; $str2 = $_POST['flag']; if(preg_match('/system|eval|assert|call|create|preg|sort|{|}|filter|exec|passthru|proc|open|echo|`| |\.|include|require|flag/i',$str1) || s ...
【2024】高校网络安全管理运维赛
比赛时间:2024-05-06
# Re-easyre
基本的 base64 换表,用 CyberChef 解密
#
# Re-babyre
进入主函数,发现输入四次 看一下就知道是大数求解
(当初写的时候差不多 不知道为什么第四个总是算错…)
1234567891011121314151617181920212223242526272829303132333435363738394041from z3 import *s = Solver() # 设置一个解方程的类Solver(必须要设置)v5=BitVec('v5',32)v6=BitVec('v6',32)v7=BitVec('v7',32)v8=BitVec('v8',32)s.add(v5 + 1380855784 == 907301700)s.add((v6 | 0x8E03BEC3) - 3 * (v6 & 0x71FC413C) + v6 == -1876131848)s.add(v7<=0x10000000)s.add ...
无参数RCE的一些奇技淫巧
# 简述:
首先说一下什么是无参数 RCE,对于很多时候,我们通常遇到 PHP 中存在 eval 函数的时候,一般是通过构造:
1system("cat /flag");
的 payload 来实行攻击的,大不了就出现了一些 waf 需要绕过。但是,有的时候,他们相关的 waf 特别奇葩,像是过滤了所有的字母以及数字什么的,另外,就是这篇博客最主要说明的题目,就是无参数 RCE:
像是下面的这一个正则:
123if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['star'])) { eval($_GET['star']);}
经过了它的过滤之后,最后只有 a (b (c ())); 这样的 payload 才不会被过滤了。
正则表达式 [^\W]+((?R)?) 匹配了一个或多个非标点符号字符(表示函数名),后跟一个括号(表示函数调用)。其中 (?R) 是递 ...
pwn学习笔记(7)--堆相关源码
# 相关源码:
# 1. chunk 相关源码:
对于用户来说,只需要确保 malloc () 函数返回的内存不会发生溢出,并且在不用的时候使用 free () 函数将其释放,以后也不再做任何操作即可。而对于 glibc 来说’它要在用户第一次调用 malloc () 函数之前对堆进行初始化;在用户频繁申请和释放时维护堆的结构’保证时间和空间上的效率;同时还要检测过程中可能产生的错误,并及时终止程序。
首先,先稍微说下几个相关的宏定义。
# request2size():
1234567#define request2size(req) \(((req) + SIZE_SZ + MALLOC_ALIGN_MASK < MTNSIZE) ? \MINSIZE : \((req) + SIZE_SZ + MALLOC_ALIGN_MASK) & ~MALLOC_ALIGN_MASK )#define MALLOC_ALIGN_MASK (MALLOC_ALIGNMENT - 1)#define MALLOC_ALIGNMENT ...














