GXY-CTF

2024-01-21 11:30
文章标签 ctf gxy

本文主要是介绍GXY-CTF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


title: GXY_CTF
date: 2019-12-25 21:55:30
tags: [“CTF”]
categories: [“技术”]

这次是北京工业大学的比赛,题目很基础,自己也比较菜😂

佛系青年

说下感悟,这道题的txt文本是损坏的,所以正常的解法是用16进制软件打开,然后吧txt里的内容另存为。
但是以前一次偶然的机会,我在电脑里安装了一种解压软件–解压专家,用其打开,可以恢复破损的文件,所以直接就能打开,hhhhhhh~
txt文本
然后看到一段佛文,一开始不知道是啥,百度得知,这是个加密的方式,在线解密就好
解密

checkln

首先打开文件,得到一堆base64(dikqTCpfRjA8fUBIMD5GNDkwMjNARkUwI0BFTg==)
打开文件
解密后得到一大串乱码(v)L_F0}@H0F49023@FE0#@EN)
base64
再转ROT47即可得到flag:GXY{Y0u_kNow_much_about_Rot}
rot47

BabySqli v1.0

这题进去之后会给你个提示是用hash加密的,最近在学密码学,所以最先考虑的是md5,而且这题考查的是sql注入,所以想到了以前的一道题

<?php
if($_POST["user"] && $_POST["pass"]) {$mysqli = new mysqli("localhost", "root", "2wsx3edctf", "challenges");  $user = $_POST["user"];$pass = md5($_POST["pass"]);$sql = "select pwd from interest where uname='$user'";$result = $mysqli->query($sql);  $row = $result->fetch_assoc();//echo $row["pwd"];if (($row["pwd"]) && (!strcasecmp($pass, $row["pwd"]))) {echo "<p>Logged in! Key:flag{xiaohdaldahdkajsdhja} </p>";}else {echo("<p>Log in failure!</p>");}$result->free(); $mysqli->close();  
}
else{echo "nonono";
}
?>

大致的意思就是我们我们传入的会通过md5加密,和数据库的md5比较,如果成功就得到flag.但我们并不知道数据库中的md5所以只能我们自己构造值传到php
构造如下语句
name=ad'union select '1','admin','3f898d258f71099c3164a570cc27bd8d'&pw=disshu
首先找到个注入点,这个不多说。但是我们怎么知道回显的列数是三个呢,这里是用sqlmap实现的,得到3列
babysqli 1

ping ping ping

首先我们输入127.0.0.1;ls会发现里面的有flag.php index.php
index
下面介绍两种方法,首先用$IFS 9 的 方 式 过 滤 空 格 , 这 个 过 滤 方 法 百 试 不 厌 , ; c a t 9的方式过滤空格,这个过滤方法百试不厌,;cat 9;catIFS 9 i n d e x . p h p ! [ i n d e x . p h p ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20191226092305995. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 3 F x X z Q z M j M 1 N D A 2 , s i z e 1 6 , c o l o r F F F F F F , t 7 0 ) 发 现 正 则 匹 配 用 的 ( . ) 所 以 我 们 可 以 对 f l a g 绕 过 ‘ ; b = g ; c a t 9index.php ![index.php](https://img-blog.csdnimg.cn/20191226092305995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjM1NDA2,size_16,color_FFFFFF,t_70) 发现正则匹配用的(.)所以我们可以对flag绕过 `;b=g;cat 9index.php![index.php](https://imgblog.csdnimg.cn/20191226092305995.png?xossprocess=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjM1NDA2,size16,colorFFFFFF,t70)(.)flag;b=g;catIFS 9 f l a 9fla 9flab.php`
flag
第二种是v&n的师傅的思路,直接

cat$IFS$9`ls`

禁止套娃

这道题跟之前有一个比赛很像,好像是字节跳动的题,但是这道题需要有百度域名所以就没做。
首先拿到题目我们扫一遍目录.
在这里插入图片描述
发现有git源码泄露,把它downloads下来

"; if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) { if(';' === preg_replace('/[a-z|\-]+\((?R)?\)/', NULL, $_GET['exp'])) { if (!preg_match('/et|na|nt|info|dec|bin|hex|oct|pi|log/i', $code)) { // echo $_GET['exp']; eval($_GET['exp']); } else{ die("还差一点哦!"); } } else{ die("再好好想想!"); } } else{ die("还想读flag,臭弟弟!"); } } // highlight_file(__FILE__); ?>

首先这道题过掉了所有的协议,这很给力。
重点看这个正则匹配(?R)说明我们只能用小括号匹配
我们重点首先访问当前目录
print_r(scandir('.'));
但是这个.我们被匹配掉了
所以只能构造函数了
?exp=print_r(scandir(current(localeconv())));
在这里插入图片描述
发现得到其中的文件,php有两个函数
array_flip,php官方文档是这么解释的
array_flip() 函数用于反转/交换数组中的键名和对应关联的键值。
重点是下一个函数
array_rand()函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。
所以我们就可以构造如下payloads
highlight_file(array_rand(array_flip(scandir(current(localeconv())))));
这题看运气,随机到flag…
在这里插入图片描述

这篇关于GXY-CTF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629384

相关文章

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

CTF入门之奇怪的密码及图形编码总结篇(持续更新中ing)

CTF入门之奇怪的编码及图形编码(持续更新中ing UTF-8,unicode乱码社会主义核心价值观编码:在线解码: 与佛论禅:在线解密网站: 与熊论道:在线网站解密: 兽音:在线网站解密: 文本加密字母/汉字等等:文本加密为汉字 :文本加密为数字:文本加密为字母:文本加密为音乐符号:文本加密为国际音标:文本加密为盲文:文本加密为韩文:文本加密为日文:文本加密为花朵符号:文本加密为俄

使用 GZCTF 结合 GitHub 仓库搭建独立容器与动态 Flag 的 CTF 靶场以及基于 Docker 的 Web 出题与部署

写在前面 关于 CTF 靶场的搭建(使用 CTFd 或者 H1ve)以及 AWD 攻防平台的搭建,勇师傅在前面博客已经详细写过,可以参考我的《网站搭建》专栏,前段时间玩那个 BaseCTF,发现它的界面看着挺不错的,了解到也是一个开源项目-GZCTF,网上未见有这方面的详细介绍,看了下网上都只是简单说了下怎么搭出 GZCTF 这个靶场的界面,然而对于后续题目的部署并未进行详细的介绍与说明,因此这

【CTF Web】BUUCTF Upload-Labs-Linux Pass-04 Writeup(文件上传+PHP+.htaccess绕过)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

wildfly10 部署缓存目录 wildfly Duplicate resource --gxy

/usr/local/wildfly-10.1.0.Final/standalone/data/content 如果部署有问题:比如说重复啊或者其他乱七八糟的错误的时候,进来这个目录二话不说全删了 如果报: 那么 1.要么把部署包名换一个; 2.要么在配置文件(standalone.xml)里面把配置删了,如下图:

select2的输入可下拉(modal框)--gxy

html: <div class="form-group col-md-6 spanBox"><span>顾客名字</span><input type="text" name="usename" id="cunameValue" val="" style="display: none;"/><select id="cusName" data-placeholder="请输入顾客姓名" styl

下拉框(可输入+自动匹配)--gxy

地址来源: https://www.cnblogs.com/brandonhulala/p/5990482.html 实现可输入+带自动匹配功能的下拉框,我试过以下几种方法: 1.直接使用h5的新标签,对应demo如下: <input list="browsers"><datalist id="browsers"><option value="Internet Explorer"><op

微信小程序后台返回中文乱码问题--gxy

wx.reqiest( ) 请求后台返回的数据为: ???3???????56716,???16???????56701,???26???????56600,???24???????56459,???19???????56448,???28???????56448,???19???????56448,???28???????56448,???9???????20237 这是包含中文造成的。

java 读取maven工程下resource文件夹下的文件--gxy

先贴路径 再贴代码: File file = new File(SystemControlUtil.class.getClassLoader().getResource("conf/config.properties").getFile());if(file.exists()) {prop = FileUtil.getPropertiesByFile(file);} 完成

SSH配置:Hibernate的packagesToScan路径解析分析--gxy

转载: http://saberhaha.iteye.com/blog/772083 <property name="packagesToScan" value="com.xxx.entity" />, 会解析成”classpath*:com/xxx/entity**/*.class”,这个路径可以找出com/xxx/entity根目录下的类文件 <property name="package