vulnhub打靶记录
此文诞生于本人实习期间,属于是摸鱼成果,虽然但是也没打几个靶场,毕竟哪有这么爽的鱼可以摸
只能说vulnhub这边的靶场比较偏向教育性质,适合新手,可能进阶的那些我还没接触()
在某次训练营中,被主办方设计的比较贴近实际的仿真靶场给虐到了,后续应该会投向与HTB等靶场平台继续学习了……
nmap命令参数介绍
待补充
SickOS1.1
网络适配器设置成NAT模式
这里靶机需要登陆
主机发现和端口扫描
ip a获取kali本机的ip,然后扫描该网段的主机存活信息
nmap -sn 192.168.32.0/24
靶机上线前后各扫一次就可以找到靶机ip了
最小速率10000扫描,-p-扫描全部端口
nmap --min-rate 10000 -p- 192.168.32.129
发现22端口的ssh服务开放,3128端口的squid-http服务开放,8080端口的http服务关闭
tcp再扫一下这三个端口,-sT用TCP扫描,-sV查看服务版本,-O查看操作系统版本,-p后面添加端口号
UDP再扫一次,确保不会漏掉攻击面
nmap -sU -p22,3128,8080 192 ...
零散Web题记录
D3CTF2025 - d3model
import kerasfrom flask import Flask, request, jsonifyimport osdef is_valid_model(modelname): try: keras.models.load_model(modelname) except: return False return Trueapp = Flask(__name__)@app.route('/', methods=['GET'])def index(): return open('index.html').read()@app.route('/upload', methods=['POST'])def upload_file(): if 'file' not in request.files: return jsonify({'err ...
ACTF2025
Misc
signin
签到:https://github.com/team-s2/ACTF-2025
ACTF{w3lc0ME2aCtf2O25h@veAn1ceDAY}
Web
not so web 1
Web不够,其他来凑
这题也算是web吧,AES-CBC字节翻转攻击
先随便注册个账号登进去,拿到server code (encoded),解base64即可得到题目源码
import base64import jsonimport timeimport osimport sysimport binasciifrom dataclasses import dataclass, asdictfrom typing import Dict, Tuplefrom secret import KEY, ADMIN_PASSWORDfrom Crypto.Cipher import AESfrom Crypto.Util.Padding import pad, unpadfrom flask import ( Flask, render_template, ...
XYCTF2025-WriteUp
*代表未解决,可能是卡了,也可能是没思路了,简单做个记录,然后跑了,再或者是后续没来得及复现,在此处留个坑,等以后回来填上……
复现网址
Crypto
Division
LamentXU学不明白除法了,能教教我吗?(adwa这个骗人的大坏蛋>_<,这个才是签到啊)
# -*- encoding: utf-8 -*-'''@File : server.py@Time : 2025/03/20 12:25:03@Author : LamentXU '''import random print('----Welcome to my division calc----')print('''menu: [1] Division calc [2] Get flag''')while True: choose = input(': >>> ') ...
Cryptography趣题记录
这里也记录一下,各种比赛零零散散的题目(觉得比较有意思的)
KalmarCTF2025 - basic sums
with open("flag.txt", "rb") as f: flag = f.read()# I found this super cool function on stack overflow \o/ https://stackoverflow.com/questions/2267362/how-to-convert-an-integer-to-a-string-in-any-basedef numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]assert len(flag) <= 45flag = int.from_bytes(flag, 'big' ...
DiceCTF2025-WriteUp
Web
cookie-recipes-v3
Mmmmmmm…
const express = require('express')const app = express()const cookies = new Map()app.use((req, res, next) => { const cookies = req.headers.cookie const user = cookies?.split('=')?.[1] if (user) { req.user = user } else { const id = Math.random().toString(36).slice(2) res.setHeader('set-cookie', `user=${id}`) req.user = id } next()})app.get('/' ...
NCTF2024-WriteUp
放在最前面,laogong的wp
Web
ez_dash && ez_dash revenge复现
'''Hints: Flag在环境变量中'''from typing import Optionalimport pydashimport bottle__forbidden_path__=['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ...
NSSCTF Round#28 && 2025红明谷杯初赛 WriteUps
NSSCTF Round#28
Web
ez_ssrf
<?phphighlight_file(__FILE__);//flag在/flag路由中if (isset($_GET['url'])) { $url = $_GET['url']; if (strpos($url, 'http://') !== 0) { echo json_encode(["error" => "Only http:// URLs are allowed"]); exit; } $host = parse_url($url, PHP_URL_HOST); $ip = gethostbyname($host); $forbidden_ips = ['127.0.0.1', '::1']; if (in_array($ip, $forbidden_ips)) ...
GHCTF2025-WriteUp
诶,这里有老登偷偷炸鱼(bushi
Crypto
无意中发现了一个在线Sagemath运行平台,10.4版本的,有需要可以使用(
https://cocalc.com/features/sage
下面是我自己比赛的时候自己做的(密码是river没做,web做了前几题,赛后继续做),然后再加上一点赛后学习别的师傅的wp整合起来的
baby_factor
基础的RSA,过于简单,不写了
baby_signin
from Crypto.Util.number import getPrime, bytes_to_longp=getPrime(128)q=getPrime(128)n=p*qphi=(p-1)*(q-1)flag="NSSCTF{xxxxxx}"print("p=",p)print("q=",q)m=bytes_to_long(flag.encode())e=4c=pow(m,e,n)print("c=",c)print("n=",n)' ...
国城杯&&HECTF2024
国城杯
这次比赛的web比较有难度(题解居然比pwn少,而且是少很多很多),交给学弟,然后学弟下午出去玩,那就没人打web了,因为我被圆锥曲线卡住了QWQ
Crypto
babyRSA
from secret import flagfrom Crypto.Util.number import*from gmpy2 import*flag = b'D0g3xGC{****************}'def gen_key(p, q): public_key = p*p*q e = public_key n = p*q phi_n = (p-1)*(q-1) private_key = inverse(e,phi_n) return public_key,private_key,ep = getPrime(512)q = getPrime(512)N,d,e = gen_key(p,q)c = gmpy2.powmod(bytes_to_long(flag),e,N)print(N)print(d)print ...