长城杯 awd 学习
长城杯 awd 学习
由于学校不报销相关的比赛 很可惜没有去到广州参加这次线下赛
在别的师傅手上拿到了一些附件 只能本地审计下学习
教务系统jsp构建的网站
后门老样子 直接上d盾
forget.jsp存在rce
一个很明显的jsp马
未授权的文件上传接口出现在/teacher/personal.jsp
这个upload_Teacher接口没有任何权限鉴定就可以直接上传文件
直接可以打文件上传
访问//userImg/shell.jsp即可执行命令
DocToolkitjava的项目 idea反编译看看
后门注意到 存在直接的后门
shiro反序列化注意到是低版本的shiro
直接给出了shirokey
直接脚本跑就好了
CMS还是php顺手 拿到手检查下
后门d盾一扫就扫出来了
文件读取在Ajax.php下存在任意文件读取
这里可以直接目录穿越读取文件
最近太忙了 水一篇博客
Hack the box(娱乐)[更新中]
Hack the box
一时兴起 想玩玩htb 顺便学点渗透的基础知识
Meow
我使用的是openvpn
openvpn连接之后 先尝试下ping 看看能不能ping通
能ping通 nmap扫描一下 扫描到发现开启了23端口 开启了telnet服务
开启空密码登录之后 可以使用telnat连接目标机器 获取shell
这里的用户名是root 登录之后直接cat flag.txt即可
Fawn
nmap扫描暴露端口
扫描21端口的ftp服务版本
登录 获取flag
Dancing
先扫描一下端口
发现开了smb服务
使用smbcilent查找存在的资源
尝试登录 使用空密码
在James.P下发现flag
使用get获取flag
读取
Redeemer
扫描 发现开启了6379 redis端口
连接数据库
没设置账号密码
info查看配置信息
注意到keys值为4
使用keys *查看 读取即可
level1 后面的题目就要米了 苦逼没米 就先放着
Appiontment
老样子 ping+nmap测试端口
题目要求用gobuster这个软件扫描泄 ...
加固题学习
学习一下加固题的做法
ezsqlssh连接之后 访问/var/www/html
tar打包下载源码
1tar -czvf /tmp/1.tar.gz ../html
查看源码
输入的参数没有经过任何的过滤 直接就输入到数据库中执行查找 存在sql注入
简单测试一下
写一个正则匹配看一下
123456if(preg_match("/select|and|\"|\'| |or|\+|=|like|databaese|\\|,|.|&|limit|%|group_concat|schema_name|schemata|extractvalue|~|updatexml|from|union|where|columns|--|show|/i",$password)){ die("用户名或密码错误"); } if(preg_match("/select|and|\"|\'| |or|\+|=|like|databaese|\ ...
java java题目复现 1
java题目复现 1
手头屯了不少之前的比赛题目,慢慢全部解决掉,一堆题目
StrangePort
做了一会 发现是N1CTF 2023 StrangePort
上来看看源码 存在问题的地方只有这里
感觉应该是gson反序列化一类的漏洞 之前没接触过
Gson 反序列化gson是谷歌开发的一个java库 提供了类似fastjson的 将字符串转换为对象,对象转换为字符串的功能
12345678910public class gson { public static void main(String[] args) throws ClassNotFoundException { String Json="eyJuYW1lIjoidXNlciIsImFnZSI6IjIwIn0="; String person="org.example.gson.person"; Gson gson = new Gson(); person test = (person)gso ...
NKCTF2024 用过就是熟悉&php_mvc学习
php_mvc学习前言打完nkctf 最后一题代码审计还是学长穿的 赛后复现的时候 实在没审计出来 学长说这个是简单的mvc框架
学了那么久不知道什么是php mvc 今天恶补一下
mvc 第一个想到的就是java web的mvc 两者应该有什么共同之处
所有的例子都是来源于nkctf这最后一道题目
MVCMVC模式(Model-View-Controller)是软件工程中的一种软件架构模式。 MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
路由处理url参数主要由PATHINFO模式控制入口
我们访问这个网站之后 参数会被放到这里来处理
mvc将全局的路由全部储存在根目录下
函数库文件框架自带functions.inc.php方法库,包含了很多数据模型创建的一些工具方法
在这里可以设置包含目录
通过__autoload方法 自动加载相关的类
框架要求相关的类命名规则如下
1首字母大小的类名.clsss.php
Controller自动加载的控制器需要保存在Controller里面 命名为.class.php 会被自 ...
cbctf bypass_java复现
cbctf bypass_java复现
手头屯了不少之前的比赛题目,慢慢全部解决掉,一堆题目
也不知道是什么比赛的题目了,就凑活着学
题目名字全部用jar包作为名字了,实在是懒的去找题目来源
bypass_java主要就是两个文件
/read路由直接将我们的相关内容直接base64解码一下然后直接执行了反序列化操作
存在一个简单的过滤
1234567891011121314151617181920212223242526272829303132333435//// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompiler)//package com.example.bypassjava;import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;import org.springframework.boot.SpringApplication ...
2024NKCTF
2024NKCTF_WP
在大家的一同努力之下获取了第四
欸,好爽
my first cms打开看到是个cms 网上搜了一圈 是CMSMS
一个php+mysql+smarty写的cms
dirsearch扫描一下,看到存在admin/login.php路由,直接简单访问
弱密码 admin/Admin123成功登录
出题人卡字典,良心大大滴坏
网上搜搜这个cms的漏洞
看到两个可能的
https://github.com/capture0x/CMSMadeSimple
和capture0x/CMSMadeSimple2: CMS Made Simple Version: 2.2.19 - SSTI (github.com)
注意到使用ssti注入的时候会遇到一个setting,绕不过去
前面那个可以
没有办法直接读取文件,尝试写马
antsword链接
全世界最简单的CTF访问/secret获取源码
1234567891011121314151617181920212223242526272829303132333435363 ...
2024venomvtf wp+学习
2024venomvtf wp+学习old.js源码如下
12345678910111213141516171819202122232425262728293031323334353637383940414243const express = require('express')const fs = require('fs')var bodyParser = require('body-parser');const app = express()app.use(bodyParser.urlencoded({ extended: true}));app.use(bodyParser.json());app.post('/plz', (req, res) => { venom = req.body.venom if (Object.keys(venom).length < 3 && venom.welcome == 159753) ...
JAVA二次反序列化学习
JAVA二次反序列化学习
学二次反序列化
SignedObject在SignedObject存在一个getobject方法
1234567891011public Object getObject() throws IOException, ClassNotFoundException { // creating a stream pipe-line, from b to a ByteArrayInputStream b = new ByteArrayInputStream(this.content); ObjectInput a = new ObjectInputStream(b); Object obj = a.readObject(); b.close(); a.close(); return obj; }
这里存在一个反序列化的操作,可以将恶意的反序列化内容存放在这个b里面触发二次反序列化
我们看看这个类的构造方法
1234567891011121314151617pub ...
Rome反序列化
Rome反序列化依赖1234567<dependencies> <dependency> <groupId>rome</groupId> <artifactId>rome</artifactId> <version>1.0</version> </dependency> </dependencies>
tostring问题出现在tostringbean#tostring方法这里
123456789101112131415161718192021222324252627282930313233343536373839404142434445public String toString() { Stack stack = (Stack) PREFIX_TL.get(); String[] tsInfo = (String[]) ((stack ...