前言: 这场比赛的质量还是不错的,这是肝了一天才做出来的题目,感觉能学到东西,好好记录一下,题目和exp放到附件里面了。 一、分析main函数逻辑 用 ida7.5 定位 main 函数,先分析程序的主要逻辑 特别难看,完全不像一道正常的逆向题,还是先看看运行的 结果,通过字符串定位法看函数 然后 ida 发现压根没有这些字符串??? 盲猜应该是运行时动态解密出来的字符串(以前遇
0x00:前言 由于杀软的规则在不断更新 所以很多之前的过杀软方法基本上都不行了 而且随着php7逐渐扩张 assert马也将被淘汰 所以本文将提出几种免杀思路 效果很好 而且不会被杀软的正则和沙盒规则约束。 0x01:自定义加密Bypass 部分杀软会直接将一些编码函数如Base64、编码后的关键字或组合函数加入了规则 比如某dir+ 比如这个 都能被检测出是shell 所以为了防止这种的规则
RealWorld CTF 2020/21 BoxEscape漏洞复现 前言 今年2月份RealWorld CTF出了两道虚拟机逃逸的题目,之前没有接触过VirtualBox所以当时并没有研究。由于原题涉及的主机和虚拟机都是windows平台,源码编译和驱动编写似乎比较麻烦,所以我决定在linux平台搭建对应的环境并复现了比赛题目所涉及的逃逸漏洞。后面有空的话自己再进一步实现windows平台下的
Background 打国外的ctf的时候认识了个师傅,他给我发了两个python题目,问我有没有什么想法,研究了一下 Challenge 1 Python2 from __future__ import print_function banned = [ "import", "exec", "eval", "pickle", "os", "subp
前言 在打CTF或渗透时,经常会遇到waf,普通的一句话木马便会被检测出来,打CTF还好,如果是渗透测试那么就有可能直接封IP,而且会发出报警信息。所以要掌握一句话木马的免杀。 Webshell检测方式 网上有很多免杀的一句话木马,但是如果不知道主流杀毒或waf的检测方式,也只是类似爆破而已,运气好了能进去,运气不好就换下一个payload。因此在此之前,先来了解一下都有哪些检测方式。 日志检测
WMCTF2020 webweb的深入思考 题目源码可以在XCTF平台上下载到。 准备工作 下载源码,有readme,通过readme可以得知是某个框架。于是通过GitHub下载源版文件进行对比。 unserialize($_GET['a']); 主页只给了一个反序列化。应该考察的是反序列化。 那么就需要寻找入口函数__destruct()或者__wakeup() 删了两处__destru
前言 接近年边了比赛挺多的,就挑了几个自己擅长的类型题目做了一下,结果题目都太难了QAQ。 0x01 Baby CSP 1.题目简介 We just started our bug bounty program. Can you find anything suspicious? The website is running at https://baby-csp.web.jctf.pro/
前言 因为以前一直在学习PHP反序列化字符逃逸的时候总是看到大佬构造的Payload好像轻而易举,但对于小白来说却很难理解。所以我写了这篇文章作为总结,同时作为一名理科生,将构造步骤拆解为一步步的方法,我想这可以对大多数同学起到很好的帮助。 PHP反序列化特点 01 PHP在反序列化时,底层代码是以 ; 作为字段的分隔,以 } 作为结尾(字符串除外),并且是根据长度判断内容的 ,同时反序列化的过程
Background 打了一周左右的0x41414141 ,这个比赛的web还是有一些值得记录的点,所以写篇记录来记录一下 graphed 2.0 国内对graphql的考点还是比较少的,据我所知道的只有unctf2019,这道题目对于题目的设计和解题方案会让你觉得还蛮有趣的 一开始看到这个提交笔记的点,我直接尝试一下发现不行,viewsource一下 他给出了graphql查询的接口 因为我
概述 学弟写了个Python的qq机器人,有代码执行,试着逃逸了一波,顺变想总结一下以前看到的用__code__逃逸的姿势,所以有了这篇文章. 沙箱逃逸,就是在一个受限制的python环境中,绕过现在和过滤达到更高权限,或者geshell的过程 字符串过滤 如果题目是通过正则过滤,eval,import 等危险字符, 任意字符的获取 首先我们要利用拼接等方式,获取任意字符,方便后续的绕过 有引号的
前言: 做题时遇到一个JS原型链污染的题目,由于之前没有学过,就详细的学习和了解一下。 基础知识 0x00:JS创建对象的方法 在了解原型链之前,先了解一下JS创建对象的几种方式 // 第一种方式:字面量 var shy1 = {name: 'shy1'} var shy2 = new Object({name: 'shy2'}) // 第二种方式:构造函数 var M = function (n
ctf中flask_ssti的各种绕过技巧 相信在ctf中大家遇到flask_ssti已经很多次了,这篇文章就研究和探讨一下绕过的方法。 python的字符串表达 flask_ssti的过滤一般是过滤某些字符串,既然是字符串,那么我们去找找字符串有哪些特性不就可以得到很多的trick了吗?我们先找到python的手册,然后找到字符串的一些解释 https://docs.python.org/zh-
HarmonyOS和HMS专场CTF Risc-V Pwn题解 上周末抽空打了一下HarmonyOS和HMS专场CTF,做了两个Risc-V的Pwn题目。 Risc-V分析方法 静态和动态分析 计算机指令集可以分为两种:复杂指令集和精简指令集。 复杂指令集以x86指令集最为常见,多用于传统桌面软件,善于处理复杂的计算逻辑。精简指令集有ARM、MIPS和Risc-V等。ARM广泛应用于移动手持终端以
introduction 有幸参与了祥云杯决赛,由于这次的AWD题目相对比较有意思,特此记录,线下AWD共放出2道Web环境,但由于其中一道不可抗拒的因素,在开始后不久就被主办方下线,所以此文只分析另一道被打了一天的web环境。两道题环境都会提供在文章最下方 第一个洞 首先用自己的AWD框架把源码下到本地,扔到D盾 复现vulhub的小伙伴肯定都知道这个CVE-2017-9841,https:/
2020 N1CTF escape 作为一位菜鸟,发文章希望大佬们批评指正 0 环境搭建 git reset --hard 07b0b1dcde4a99294b8028d83f4ea244885cc091 git apply ../patch/patch.diff gclient sync ninja -C out.gn/x64.release d8 8:43 同时在ubuntu18上安装