ctf.show靶场ssrf攻略

前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

web351

解析:post传入url参数他就会访问。

解法:

hackbar传入url参数写入https://127.0.0.1/flag.php

web352

解析:post传入url参数,不能是127.0.0.1和localhost

解法:缩写127.1传入

web353

解析:不能传localhost和127.0

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|127\.0\.|\。/i', $url)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> 

解题:

缩写法https://127.1/flag.php

绕过

web354

解析:传url访问网址,不可以有localhost和1和0

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|1|0|。/i', $url)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

解题:

自创域名绑定127.0.0.1,然后post我们的域名。

也可以服务器3xx重定向

web355

解析:限制url长度

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=5)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> hacker

解题:

缩写法绕过,0或者127.0等

web356

解析:长度限制更小,小于3

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=3)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> hacker

解题:

0代替127.0.0.1

web357

解析:他会把域名进行解析为ip,不能是自身的ip

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$ip = gethostbyname($x['host']);
echo '</br>'.$ip.'</br>';
if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
    die('ip!');
}


echo file_get_contents($_POST['url']);
}
else{
    die('scheme');
}
?>

解题:

3xx重定向,自己服务器上搭建一个网站,网站内容如下

<?php header("Location:http://127.0.0.1/flag.php"); ?>

然后写自己网站ip让他访问就行了

web358

解析:此题为白名单,判断变量$url所代表的字符串是否以 “http://” 开头,中间包含 “ctf.”,然后可以有任意字符,最后以 “show” 结尾

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if(preg_match('/^http:\/\/ctf\..*show$/i',$url)){
    echo file_get_contents($url);
} 

解题:
利用@,把他需要出现的文字写到@之前,然后最后以show结尾,我们可以利用参数传递?传参无用参数show来解题

payload:

url=http://ctf.@127.0.0.1/flag.php?show

web359

解题过程:

开局一个登录框

瞎写一通观察数据包发现有一个url

在自己服务器上开启python服务后让他访问我的服务器发现

他会对url进行访问

无过滤,题目要求我们打数据库,我们利用gopher协议攻击

启动Gopherus工具

生成的payload我们还需要对后面的内容URL编码一下

因为它是url编码的形态,但是我们传过去他们会url解码一次,后面这个url编码形式的就会被误解码所以我们需要编码一次让他解码后又是这个样子。

发送后访问URL判断是否成功

访问很成功可以直接连接webshell了

没看见flag,直接上linux查找文件指令

直接查看

解题完成

web360

题目解题:让我们打redis

我们看源码

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
?> 

可以传参url,

利用上面相同的方法生成payload

post传参进去(记得url编码一次)

然后生成shell.php

之后我们直接哥斯拉连接就行了

flag在

/flaaag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北岭敲键盘的荒漠猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值