欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

深入学习2———url bypass的基本原理与过滤实验

程序员文章站 2024-03-20 22:36:46
...

一,实验效果
题目:bypass实验
本地地址:http://bypass/302.php
提示:这里有一个302.php,flag在flag.txt中,可以试试file.php。
过程:
访问http://bypass/302.php,跳转到百度首页。深入学习2———url bypass的基本原理与过滤实验利用url bypass直接访问http://bypass/aaa@qq.com/flag.txt,显示跳转失败。
深入学习2———url bypass的基本原理与过滤实验访问http://bypass/aaa@qq.com/file.php,得到flag。
深入学习2———url bypass的基本原理与过滤实验成功从bypass地址跳转到localhost,并通过file.php得到爆出flag.txt中的内容。
深入学习2———url bypass的基本原理与过滤实验本次实验效果中并未设置提示,请在实验原理中详细了解操作原因。

二,实验原理
首先,将302.php的代码贴出。

<?php
$url=$_GET['url'];/*获取url访问地址*/
$url="http://www.baidu.com".$url;/*设置url bypass阻拦*/
if(stripos($url,'txt') == false)/*设置.txt后缀过滤,阻止访问flag.txt文件*/
{ 
header("Location: $url");/*跳转目的连接网址*/
}
else
{
 echo "跳转失败"; 
}
?>

代码分析在注释中。
其中,bypass的原理实验是以@绕过展开的。
过滤文件是以黑名单的方式,过滤.txt展开的。
注:302.php是放在bypass文件夹里的。
而file.php和flag.txt是放在localhost中的。

深入学习2———url bypass的基本原理与过滤实验

接下来将file.php代码贴出。

<?php
$handle=fopen("flag.txt","r");
$str=fread($handle,100);
fclose($handle);
echo $str;/*一个简单的文件打开与访问代码*/
?>

至于flag.txt自然是存放flag的(其中的flag是自己编的)。
三,学习心得
本次实验主要是详细理解bypass的一类SSRF的原理关键所在,至于其中的过程可能存在的差异,在此不做赘述。像上一次博客的最后两道题目,我认为原因在于缺少字符过滤,仅仅只设置了SSRF访问差异,故导致可以轻易访问。