自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 DASCTF 2022.4

Webwarmup_php查看主页源码如下<?phpspl_autoload_register(function($class){ require("./class/".$class.".php");});highlight_file(__FILE__);error_reporting(0);$action = $_GET['action'];$properties = $_POST['properties'];class Action{ public funct

2022-04-25 21:21:57 2650

原创 FastJson1.2.24/47 Rce

之前只在本地测试过FastJson的漏洞,实战情况下一般需要利用VPS反弹shell,这里尝试一下环境https://buuoj.cn/challenges#[FastJson]1.2.24-rce构建rmi服务器工具marshalsechttps://github.com/RandomRobbieBF/marshalsec-jar.gitFastJson1.2.24首先编写恶意类import java.lang.Runtime;public class Exploit{ publ

2022-04-22 11:03:27 444 2

原创 DASCTF三月赛

DASCTF2022.3部分题目Webezpop题目源码如下<?phpclass crow{ public $v1; public $v2; function eval() { echo new $this->v1($this->v2); } public function __invoke() { $this->v1->world(); }}class fin{

2022-04-10 20:02:18 3190

原创 从某比赛题目ezgadgets复现看java反序列化

我们平常在使用ysoserial这样的工具时,并不会太在意payload是如何生成的。反正工具一把梭就完事了,但是出题人总是想尽办法不让我们使用工具。所以没办法,只能自己写了。题目复现给出源码结构如下controller作为控制器,并且只有一个class,那么漏洞点肯定在这里面。给出代码如下readObject是典型的java反序列化,这里的输入流可控。我们传入data后,会将数据直接存放到ObjectInputStream对象中。这里直接使用ysoserial,很容易发现存在一个问题,就是这里

2021-11-29 19:08:04 3357 1

原创 绿盟杯(重庆市大学生安全竞赛)glowworm

搜集信息,先F12查看网页源代码。看到提示,访问/source,得到部分源代码。const express = require('express');const bodyParser = require('body-parser')const path = require('path');const crypto = require('crypto');const fs = require('fs');const app = express();const FLAG = require('./

2021-10-25 19:26:53 2957 1

原创 (leetcode)二叉树部分题目

中序遍历的迭代写法二叉树的迭代写法相较于递归写法复杂,需要利用栈反向访问,下面给出每轮处理的详细过程。 5 5 6 5 NULL 4 6 5 NULL 2 4 NULL 1 / \ 4 6 6 5 NULL 2 4 NULL 1 NULL result获得1 result获得4 6 5 NULL 2 NULL / \ 1 2 result获得2 result获得5 6 NULL result获得6下面给

2021-10-18 14:39:18 172

原创 php常见函数缺陷

var_dumpvar_dump( 0 == "a" ); truevar_dump( "0" == "a" ); false因为php把字母开头的转化为整型时,转化为0, 前面数字后面字母的话就只取到第一个字母出现的位置之前(如intval(’'123abd45gf)结果为123)md5比较值相等$_GET['name'] != $_GET['password']MD5($_GET['name']) == MD5($_GET['password'])那么要求name和passw

2021-10-10 21:19:33 414 1

原创 buuoj Reverse

使用ollydbg进行手动脱壳加壳:一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变,以达到保护程序资源的目的。call命令:这个命令是访问子程序的一个汇编基本指令。00401029.E8 DA240A00 call 004A35080040102E.5A pop edx在执行了00401029以后,程序会将0040102E压入堆栈,然后JMP到004A3508地址处对应的另一个命令RETN,该命令将ESP中1指向的地址出栈,JMP到这个地址。两个指令配合完成一个调用子

2021-09-27 16:40:28 260

原创 天翼杯easy_eval复现

最近打了很多比赛,很多题没有做出来。所以决定复现一下某些题目。本地环境的搭建本地环境涉及到php的web服务、redis数据库。Dockerfile的编写FROM ubuntu:16.04COPY src/sources.list /etc/apt/sources.listCOPY src/redis-4.0.9 /home/redis-4.0.9RUN apt-get update && \ apt-get install -y curl \

2021-09-25 19:47:11 1496

原创 从陇剑杯学习流量分析

JWT使用wireshark打开附件,追踪HTTP流。分析这个JWT字段,到jwt.io下面去解出来追踪TCP流,到第10个TCP时,我们可以发现这里实现了命令执行,输出了当前服务器的权限。获得命令执行接口后,上传了一个c文件到tmp目录下。上传该c文件后,使用makefile操作将这个c文件编译成恶意的so文件。CFLAGS += -Werror -Walllooter.so: looter.cgcc $(CFLAGS) -fPIC -shared -Xlinker -x -o

2021-09-18 16:22:48 679

原创 php源代码的编译以及反序列化漏洞的底层实现

现在这么卷,学个java都要精通jvm。所以学习php还是要了解了解底层的,下面简单介绍一下php源码的编译。环境配置和简单调试首先需要Vistual Studio 2019,在网上随便下载一个就可。为什么不推荐别的,因为有可能缺少环境,导致要单独去配置环境,非常不方便。php源码下载:https://windows.php.net/downloads/releases/archives/选择一个对应的版本就可。将源码解压到一个名字好一点的文件夹下面,执行VS给的命令行程序。x64 Nativ

2021-09-15 18:44:30 780

原创 基于snmp的服务接口流量监测程序的设计

好久没学计网的知识了,这里摸一下snmp协议。snmp协议SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。snmp技术特点(1)基于TCP/IP互联网的标准协议,传输层协议一般用UDP(2)自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息

2021-09-10 19:32:29 1404 2

原创 SSRF中phar协议和gopher协议的利用

我们在学习SSRF漏洞的时候,经常会只关注file协议等,因为利用方式简单。实际上随着php版本的提升和编程技术的规范,能够直接利用的漏洞越来越少了,所以学习使用phar和gopher协议是很有必要的。phar协议在php中反序列漏洞,形成的原因首先需要一个unserialize()函数来处理我们传入的可控的序列化payload。但是如果对unserialize()传入的内容进行限制,甚至就不存在可利用的unserialize()函数的时候,就可以借助phar协议触发反序列化操作了phar流包装器不能

2021-09-07 18:32:05 981

原创 域渗透知识归纳

信息搜集nmap命令系列nmap -F ip地址 进行快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口nmap -O IP地址 使用Nmap扫描指定主机的操作系统版本信息nmap –A –v IP地址 完整测试namp --script=vuln ip地址 用来扫描目标主机是否有可检测漏洞nmap -p3306 --script=mysql-empty-password.nse ip地址 扫描mysql root空口令nmap --script=smb-

2021-08-30 22:40:33 253 1

原创 java-sec-code Fastjson漏洞

最近ctf比赛使用java作为web开发语言的题目越来越多,Fastjson的漏洞是一个很重要的rce。学会审计Fastjson漏洞,更有机会挖出高质量的漏洞,所以还是得多学习学习的。Fastjson简介Fastjson是一个Java库,可以用来将Java对象转换成它们的JSON表示。它还可以用于将JSON字符串转换为等效的Java对象。Fastjson可以处理任意Java对象,包括您没有源代码的现有对象。Fastjson相对其他JSON库的特点是快速且简洁,但是却被屡屡爆出漏洞。Fastjson可

2021-08-27 10:49:03 1418

原创 vulnhub渗透测试VulnCMS

靶机地址:http://www.vulnhub.com/entry/vulncms-1,710/扫描虚拟机网卡网段,获得靶机ip地址。看看靶机开放的服务,这里详细说一下命令参数-sS SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高-sV 版本检测,用来扫描目标主机和端口上运行的软件的版本-T5 T0-T2:串行扫描 T3-T5:并行扫描-A 启用操作系统和版本检测,脚本扫描和路由跟踪功能可以看到上面开放了四个web服务,分别是:单独的nginx、wordp

2021-08-25 10:26:54 335

原创 java-sec-code 反序列化漏洞

java的反序列化序列化的步骤为创建一个ObjectOutputStream输出流调用ObjectOutputStream.writeObject反序列化的步骤为创建一个ObjectInputStream输出流调用ObjectInputStream.readObject示例如下:package com;import java.io.Serializable;public class User implements Serializable { protected St

2021-08-24 11:10:15 614

原创 Vulhub渗透测试 OSHAX

下载靶机https://www.vulnhub.com/entry/hacknos-os-hax,389/导入到virtualbox后,将靶机网络改为仅主机模式,将usb2.0改成usb1.0使用nmap扫描靶机ip查看开放了哪些端口查看端口详细信息 nmap -sS -sV -T5 -A 192.168.56.106当前靶机开放了22和80端口,首先以80的web服务,尝试先获取webshell。先查看一下主页,发现啥也没有,进行目录扫描。访问img目录,发现目录下面有flaghos

2021-08-23 11:15:32 252

原创 java-sec-code ssrf

SSRF漏洞SSRF(Server-side Request Forge, 服务端请求伪造)。 由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务。利用伪协议读取文件由于Java没有php的cURL,所以Java SSRF支持的协议,不能像php使用curl -V查看。Java网络请求支持的协议可通过下面几种方法检测:代码中遍历协议官方文档中查看import sun.net.www.protocol查看SSRF是由发起网络请求的方法造成。所以先整理Java能

2021-08-21 09:16:10 799 1

原创 java-sec-code xss和csrf

XSS漏洞XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。一般来说,只要将用户输入的数据不经任何处理就返回到前端,是极易产生XSS漏洞的。反射型xss为了让我们方便理解,作者这里没有使用其他花里胡哨的html页面 @RequestMapping("/reflect"

2021-08-19 16:50:19 343

原创 java-sec-code 目录穿越和模板注入漏洞

目录穿越漏洞虽然漏洞的payload非常简单,但是java的编程方法还是值得一看的。漏洞分析进入controller下的PathTraversal类下,可以看到如下代码。 @GetMapping("/path_traversal/vul") public String getImage(String filepath) throws IOException { return getImgBase64(filepath); }这是漏洞的产生点,传入的参数fil

2021-08-18 10:59:34 973

原创 java-sec-code spel表达式注入以及其他远程代码执行漏洞

今天突然发现,我使用的java sercurity code是老版本的,github上有全新的版本。https://github.com/JoyChou93/java-sec-code重新下载了一下,导入之后没问题,相关的漏洞确实多了一些。继续学习一下远程代码执行漏洞。spel表达式导致Rce@RestControllerpublic class SpEL { @GetMapping("/spel/vuln") public String rce(String expressio

2021-08-17 16:37:50 596

原创 (leetcode)栈和队列简单题目

删除字符串中的所有相邻重复项题目链接:https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string/给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两

2021-08-15 14:31:48 152

原创 java-sec-code sql注入漏洞分析

之前在idea上搭建了项目java security code,并做了点简单的测试。发现虽然有Eureka组件的报错,但是还是能完美地实现简单命令执行漏洞的,今天尝试以下sql注入漏洞。环境搭建启动mysql服务,查看连接是否正常,并建立对应的数据库和数据表如果出现time zone的错误,请提升mysql版本。或将jdbc连接改为String url = "jdbc:mysql://localhost:3306/sectest?serverTimezone=UTC";接下来,开启服务,访问h

2021-08-14 17:07:40 480

原创 java-sec-code环境搭建和简单命令执行分析

简介Java Security Code该项目也可以叫做Java Vulnerability Code(Java漏洞代码)。每个漏洞类型代码默认存在安全漏洞(除非本身不存在漏洞),相关修复代码在注释里。具体可查看每个漏洞代码和注释。该项目由当前最流行的框架springboot编写环境搭建这里为了方便调试,使用windows上的idea来搭建java security code首先使用idea的git功能,clone源码到本地网址:https://github.com/dr0op/java-

2021-08-13 16:01:28 1779 1

原创 (leetcode)HashMap简单题目

有效的字母异位词题目链接: https://leetcode-cn.com/problems/valid-anagram/给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true示例 2: 输入: s = “rat”, t = “car” 输出: false说明: 你可以假设字符串只包含小写字母。思路这道题目中字符串只有小写字符,那么就可以定义一个数组,来记录字符串s里字符出现

2021-08-13 09:56:45 206

原创 thinkphp5.0系列远程代码执行分析

最近实在无事可做,看到大佬在搞框架审计,可以开始跟着学习一下各种框架的rce是如何产生的thinkphp文件结构www WEB部署目录(或者子目录)├─application 应用目录│ ├─common 公共模块目录(可以更改)│ ├─module_name 模块目录│ │ ├─config.php 模块配置文件│ │ ├─common.php 模块函数文件│ │ ├─controller

2021-08-12 09:36:45 488

原创 vue.js组件

组件基础基本实例组件是带有名称的可复用实例,在这个例子中是 <button-counter>。我们可以把这个组件作为一个根实例中的自定义元素来使用在页面上会有点击之后,数字加1的按钮 <div id="components-demo"> <button-counter></button-counter> </div> <script> // 创建一个Vue 应用 const app = Vue.cr

2021-08-08 16:40:44 295

原创 vue.js基础

应用和组件实例每个 Vue 应用都是通过用 createApp 函数创建一个新的应用实例开始的:const app = Vue.createApp({ /* 选项 */})根组件传递给 createApp 的选项用于配置根组件。当我们挂载应用时,该组件被用作渲染的起点。一个应用需要被挂载到一个 DOM 元素中。例如,如果你想把一个 Vue 应用挂载到 <div id="app"></div>,应该传入 #app:const RootComponent = {

2021-08-07 17:09:22 188

原创 vue.js初探

好久没写javascript代码了,决定学一学vue.js,提升一下自己对前端的熟悉程度。1.helloword例子随便创建一个文件夹,创建test.js,test.css,test.html文件javascript代码const HelloVueApp = { data() { return { message: 'test', info: 'version' } } } Vue.createApp(HelloVue

2021-08-06 14:29:54 124

原创 leetcode其他链表类题目

两两交换链表中的节点https://leetcode-cn.com/problems/swap-nodes-in-pairs/给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]代码实现/** * Definition for singly-

2021-08-06 14:28:15 68

原创 设计链表和反转链表

题目链接:https://leetcode-cn.com/problems/design-linked-list/题目描述设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效

2021-08-05 11:03:30 74

原创 vulnhub实验HACKABLEII

1.环境配置在官网上下载镜像:http://www.vulnhub.com/entry/hackable-ii,711/经过测试,发现如果放在vmware上面,是无法获得virtualbox上靶机的ip地址的,也就无法进行渗透测试了于是重新安装kali到virtualbox上kali镜像下载:https://www.kali.org/get-kali/#kali-virtual-machines这里可以直接选择virtualbox的文件进行下载,就省去了安装等的一系列操作导入之后,启动会出现us

2021-08-04 16:14:06 287

原创 删除链表元素

(leetcode)移除链表元素题目链接:https://leetcode-cn.com/problems/remove-linked-list-elements/题意:删除链表中等于给定值 val 的所有节点。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]思路因为单链表的特殊性,只能指

2021-08-04 10:32:03 74

原创 螺旋矩阵II

(leetcode)螺旋矩阵2题目地址:https://leetcode-cn.com/problems/spiral-matrix-ii/给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]思路本题并不涉及到什么特别的算法,就是模拟过程,但却十分考察对代码的掌控能力。之前写这种

2021-08-03 11:34:59 65

原创 DASCTF July X CBCTF 4th web部分WP

DASCTF July X CBCTF 4th web部分WPezrceYapi远程命令执行漏洞YAPI使用mock数据/脚本作为中间交互层,其中mock数据通过设定固定数据返回固定内容,对于需要根据用户请求定制化响应内容的情况mock脚本通过写JS脚本的方式处理用户请求参数返回定制化内容,本次漏洞就是发生在mock脚本服务上。由于mock脚本自定义服务未对JS脚本加以命令过滤,用户可以添加任何请求处理脚本,因此可以在脚本中植入命令,等用户访问接口发起请求时触发命令执行。全局脚本const san

2021-08-02 16:31:47 311

原创 Jsonp

Jsonp同源策略主机 端口 域名 必须都一样Json和jsonp的区别json是一种基于文本的轻量级的数据交换格式jsonp是一种协议 ,准确的说,他是json的一种使用模式,因为浏览器有同源策略的限制,像test1.sec.com和test2.sec.com是无法之间通信的,但是 调用js文件,却不受同源的影响,并且src属性引入的文件都不受同源的限制,这也是同源策略留下的一个后门,为了方便(简而言之,jsonp只是跨域传送json的一种方式,一种更方便的方式)Jsonp使用示例htm

2021-08-01 16:34:04 134

原创 滑动窗口解决最小长度子串问题

(leetcode) 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。暴力求解两个for循环,不断的寻找符合条件的子序列c

2021-08-01 16:24:01 116

原创 docker学习

Docker环境:还算干净的CentosDocker安装直接yum install docker-ce即可,无需其他花里胡哨的操作**注意:**如果是yum install docker会默认安装docker-dopman,这个软件是无法运行docker-compose的,架构不一样ubuntu环境下可直接apt install docker-compose默认拥有docker命令Docker使用查看所有容器的状态docker ps -a获取镜像(例如我们本地没有ubuntu系统的镜像,

2021-07-31 16:27:30 71

原创 有序数组的平方

(leetcode)有序数组的平方题目链接 https://leetcode-cn.com/problems/squnumsres-of-nums-sorted-numsrrnumsy/给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]示例

2021-07-30 16:48:22 72

united3.zip

设计了具有GUI界面的snmp流量转发和数据包抓取的小程序

2021-09-10

空空如也

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

TA关注的人

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