- 博客(33)
- 问答 (18)
- 收藏
- 关注
原创 Java 代码审计---反序列化
序列化主要是将一个java对象转换为二进制字节流的过程,在学习反序列化之前,首先来学习一下序列化是什么,怎么进行,知其然,知其所以然。将一个对象进行序列化其实是将该对象的一些属性进行序列化,并不是对该对象的类,以及相关的方法也进行序列化为二进制数据。会被序列化到流中,以确保序列化和反序列化过程中类的版本一致性,如果反序列化时的。,Java会根据类的结构自动生成一个,但是当类的结构发生变化时,自动生成的。方法,那么在反序列化时,将会调用目标类自定义的。在反序列化中,如果反序列化的目标类自定义了。
2024-06-01 11:55:53
1107
原创 Java代码审计---反射
java的反射就是在程序运行中动态的创建对象,并且和new不同的是,反射创建对象不需要考虑访问权限,可以直接查看类的私有属性以及调用私有方法,并且new创建对象时在编译时期将对象的.class加载进内存,而反射创建对象则时在运行时期加载进内存。
2024-05-22 14:58:14
674
原创 Java代码审计---SpEL表达式注入
是 Spring 中的表达式语言,用于在运行时评估和处理表达式。它提供了一种灵活的方式来访问和操作对象的属性、方法和其他表达式。SpEL可以用于配置文件、注解、XML 配置等多种场景,用于实现动态的、可配置的行为。它支持常见的表达式操作,如算术运算、逻辑运算、条件判断、集合操作等,并且可以与 Spring 框架的其他功能整合使用。由于SpEL具有代码调用,我们可以通过SpEL注入来执行系统命令,进而导致RCE漏洞。
2024-05-22 14:56:16
767
原创 Java代码审计---命令执行
Class aClass = Class.forName("java.lang.Runtime"); Method exec = aClass.getDeclaredMethod("exec", String.class); Object getRuntime = aClass.getDeclaredMethod("getRuntime").invoke(aClass); Object invoke = exec.invoke(getRuntime,"calc")
2024-05-22 14:53:47
332
原创 蚁剑流量分析
在对比了多个请求之后,可以分析到以下特征明文的每一个蚁剑请求的请求体中都包含了与对于加密和编码之后的请求包里面就没有了与如果蚁剑的请求中包含了多个参数,那个该参数的值为前两位为混淆字符,需要删除前两位才能进行base64解码User-Agent 为正常浏览器的ua表示,没有关键性字符,每次请求都可能不同,且经过多次分析发现ua标识里面的系统类型甚至还会进行切换,如此的不规律不就成了一种规律了吗?蚁剑的响应内容并不一定是明文,也可以是经过编码之后的内容。
2024-04-24 00:00:49
945
原创 frp内网穿透
简单来讲,你的电脑处于内网的一个状态,你的流量经过层层nat转发,如果你在你自己的电脑上面部署了一个服务,比如一个web网站,通常来讲,你部署在你自己电脑上面的网站,只能你或者和你在同一局域网的用户能够访问到,如果你想让远在另一个区域的朋友也能够访问到你的服务,你可以使用内网穿透这种技术,将你电脑上的服务,映射到公网中去,这样所有人都可以访问了,忽略某种特殊的情况。
2023-11-30 10:16:03
567
原创 Docker数据持久化
通过使用数据卷,可以将容器中的数据持久化保存在主机上,不受容器的生命周期影响。Docker在创建volume的时候会在宿主机/var/lib/docker/volume/中创建一个以volume ID为名的目录,并将volume中的内容存储在名为_data的目录下。但是容器启动之后,再次修改宿主机的文件,容器里面竟然没有变化,这个很离谱,不知道为什么,网上也没找到详细的解释,知道的大佬可以在评论下面留言。,也就意味着,一个容器使用volume进行挂载卷,上次这个容器挂载的卷如果存在,仍然还可以继续使用。
2023-07-19 16:11:18
157
原创 Dockerfile 编写指南
之前的阶段构建的临时文件和依赖将被丢弃,不会包含在最终镜像中,因此可以显著减小镜像的大小。使用场景:在不使用多阶段构建的情况下,要么把代码文件提前编译好,放在容器里面运行即可,要么在容器中编译,对于第一种情况来讲,提前打包成二进制文件过于麻烦,也不利于维护,第二种情况,放在容器中编译,但是容器只是负责运行程序,多了一些可以省略的功能(编译代码),镜像体积也会变大,所以使用多阶段构建,可以减小镜像体积的冗余又便于代码维护。
2023-07-17 08:49:44
513
原创 Docker 容器与镜像
Docker image是一个只读的文件这个文件包含文件系统,源码,库文件,依赖,以及一些运行所需要的文件可以理解为一个模板docker image是一个分层的概念docker image可以从镜像仓库(docker hub等)中拉取。
2023-07-15 11:39:33
256
原创 MSF使用教程
run autoroute -s 192.168.159.0/24 #添加到目标环境网络,当你相连接一个网络发现不通的时候,可以设置一个路由试试,一般网络中没有设置围栏的情况下,是可以通的。-e, --encoder 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload。timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt。
2023-07-12 09:11:49
2064
1
原创 内网渗透-内网信息搜集
net group "domain guests" /domain 查看guests组下的用户。在cmd界面输入ipconfig /all ,如果存在dns后缀则说明可能是域环境。tasklist -v 查看进程的用户身份。type nc 查看是否存在nc。或者输入systeminfo命令查看。这个不一定执行成功,不知道为啥。根据shell版本来定。
2023-06-14 12:53:02
136
原创 [HDCTF2019]Maze
通过上面分析,a,d,s,w几个关键字母可以猜出是走迷宫的题目,并且查看汇编代码可以看到asc_408078,和dword_40807C的值 (7和0),大概就是初始坐标。嗯,这样看样子才对,分析了一下,应该是从+开始走,走到F,然后移动的方向分别表示w,a,s,d这几个字母。这些字符长度是70,初始坐标是(7,0),迷宫图只有两种可能排列,一种是7*10,另一种是10*7。尝试修改call指令,改成nop,右击call指令->patching->change byte。很明显不对,因为根本走不通。
2023-03-22 21:50:23
205
原创 [ACTF新生赛2020]usualCrypt
正向:输入->base64转换->大小写转换=zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9=flag逆向:zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9->大小写转换->base转换=flag其中base64需要换表,并且这个表在sub_401000进行了一些变换,需要拿到sub_401000变换后的编码表,也就是说先逆向sub_401000程序总体解密代码。
2023-03-20 17:28:32
306
原创 2023 第一届“躺平杯”信息技术与网络安全入门赛
打开网页,猜v多少,然后输入一个值,但是题目忽略了cookie的问题,每一次提交之后cookie都会变化,这个是关键点,我猜,如果对该数据包进行重放,第一次看到正确的答案,重放之后,携带上次的cookie,请求的v值改成正确的,就可以看到flag了,后来题目好像修复了。这个题我一直以为是rot13,因为在c++代码中看到了rot13,老实说,我不会c++,没有理解里面的代码逻辑,尝试了很多次发现不对,大年初二的上午学了一会ida动态调试,结果真给调出来了,别的不说,真太美丽了家人们。
2023-01-29 13:09:41
960
1
原创 春秋云镜CVE-2022-32992
根据题目提示,该CMS的admin/operations/tax.php中存在可控的INSERT 语句参数,从而导致了SQL注入攻击。但是正常访问的时候,会跳转到其他页面,更改admin/operations/tax.php的内容,注销掉一些代码,如下就不会发生跳转。出现一个file.php的文件,比较奇怪,访问发现是一个文件上传入口,直接上传shell。打开靶机没发现什么好操作的,扫描一下目录。上sqlmap直接扫。
2023-01-04 18:33:55
576
原创 flutter中使用listview在顶部出现空白区域的解决方法
MediaQuery.removePadding的使用参考:https://www.helloworld.net/p/5659699907。在图片中可以看出阴影的起始线和图片的顶部并不在一起,这就是listview留下的空白区域,所用到的代码如下。listview组件会在listview的区域顶部出现一个空白区域,如下。可以看到当下拉出现阴影时,阴影的起始线与图片顶部相对齐,组件可以解决这一问题,
2022-12-21 13:07:03
1977
原创 flutter StatefulElement有状态组件
在flutter中自定义组件其实就是一个类,这个类继承StatelessElement或者StatefulElement。通俗的来讲,如果需要组件内容进行改变的话,就使用StatefulElement组件。statefulStatelessElements是静态组件。StatefulElement是动态组件。其他组件和无状态的组件一样。
2022-11-19 12:48:34
503
原创 flutter wrap容器
单行的warp几乎是和row组件一致,但列的warp组件几乎是和column组件一致,warp突破了行和列的限制,当主轴上元素突破了限制,会想副轴扩展,比如在一行排不行,会向另一行扩展。
2022-11-19 12:46:41
374
原创 flutter align对齐与相对定位
但如果我们只想简单的调整一个子元素在父元素中的位置的话,使用Align组件会更简单一些。过于复杂暂不研究,句目前了解,align与center容器极其相似,唯一不同的就是alignment: Alignment的值在align可以手动传参。Align是一个widget,用来包含另一个widget,并提供了alignment参数来对齐子widget的位置。值得注意的是alignment参数,该参数除了有各个角落的默认值,如。参数值分别表示x,y,参数在-1与1之间。align的参数如下。
2022-11-19 12:44:51
524
原创 flutter 层叠布局stack postitioned
层叠布局和 Web 中的绝对定位很像,子组件可以根据距父容器四个角的位置来确定自身的位置。层叠布局允许子组件按照代码中声明的顺序堆叠起来。Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。Stack允许子组件堆叠,而Positioned用于根据Stack的四个角来确定子组件的位置。
2022-11-19 12:43:06
474
原创 flutter 弹性布局 flex
flex可以沿着水平或者垂直方向排列子组件,row和coloumn都继承自flex,参数基本相同,唯一有一个关键参数是Expanded,该参数在row和column中也存在,该参数可以按照比例分配空间,届时主轴空间参数将会失效,其中必传参数direction表示主轴方向,如。
2022-11-19 12:40:40
417
原创 flutter 网格布局Gridview
可以创建网格列表视图;主要通过Count、extent、custom、builder构造列表。有内边距、是否反向、滑动控制器等属性。四个属性使用场景,Count、extent、custom适用于子布局较少时使用。可能会用到上拉刷新,数据较多时,则使用builder属性,其中count和builder使用较多。
2022-11-19 12:38:27
1508
空空如也
Android studio flutter构建项目时Gradle报错
2022-12-25
关于#flutter#的问题:flutter如何对文字进行竖直排列
2022-11-19
小米6x变黑砖,变砖的原因是刷机中断
2022-02-15
VScode编译c语言,一直在运行上次编译的结果
2021-09-26
vscode来进行c语言打印,出现中文乱码
2021-09-25
电脑灭屏后自动锁定账户,30分钟内无法登入
2021-09-18
怎么查看网站访问者的IP信息,以及访问时长?
2021-09-14
优学院学习课件用爬虫怎么爬取
2021-09-14
电脑点击桌面图标无反应,任务栏无图标,什么也干不了,怎么办?
2021-09-03
安装Android sdk中出现的问题
2021-08-19
python爬取码市导入excel中导入结果只导入最后一条的问题
2021-08-15
爬取ajax数据出现的问题
2021-08-12
爬虫爬取数据出现编码问题
2021-08-10
python爬虫selenium基础问题,异常报错
2021-08-04
python的jsonpath模块执行出现错误
2021-07-28
用vs code 编写html总是自动换行怎么办呀?
2021-07-20
照片中的exif信息可以恢复吗?
2021-07-17
win11系统是怎么安装安卓软件的?
2021-07-02
python进行pip安装是弹出黄色警告怎么办?
2021-02-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人