当前位置: 首页 > news >正文

17网站一起做网店普宁轻纺城seo 优化教程

17网站一起做网店普宁轻纺城,seo 优化教程,科技成果转化,东莞路桥总公司电话目录 什么是文件包含漏洞? 文件包含的环境要求 常见的文件包含函数 PHP伪协议 file://协议 php://协议 php://filter php://input zip://、bzip2://、zlib://协议 zip:// bzip2:// zlib:// data://协议 文件包含漏洞演示 案例1:php://inp…

目录

什么是文件包含漏洞?

文件包含的环境要求

常见的文件包含函数

PHP伪协议

file://协议

php://协议

php://filter

php://input

zip://、bzip2://、zlib://协议

zip://

bzip2://

zlib://

data://协议

文件包含漏洞演示

案例1:php://input

案例2:php://input

案例3:php://filter

案例4:zip://


什么是文件包含漏洞?

文件包含(File  Include)漏洞也是web安全中很重要的一个漏洞,它主要会出现在PHP与JSP应用中,如果应用在运行过程中会动态加载其他脚本文件,并且加载的文件的文件路径由外部输入变量控制,就有可能产生文件包含漏洞

文件包含漏洞又可以被细分为两类:

  • 本地文件包含(Local File Include)
  • 远程文件包含(Remote File Include)

本地文件包含漏洞很多时候也是路径穿越漏洞,include()函数,其加载的文件如果是外部输入变量控制的,但是文件包含漏洞特指文件被Web应用载入并执行,比如在PHP中用include()或者require()函数载入文件并执行。在允许上传文件的场景中,攻击者可以上传恶意代码,再通过本地文件包含漏洞来执行该代码

远程文件包含是指应用可以通过一个URL加载并执行远程代码,比如PHP中的include(),就支持指定一个URL作为参数,利用远程文件包含漏洞,攻击者无须上传恶意文件到目标服务器,只需要将其放在远程服务器上即可

文件包含的环境要求

  • allow_url_fopen=On 规定是否允许从远程服务器或者网站检索数据

  • allow_url_include=On 规定是否允许include/require远程文件

常见的文件包含函数

  • include()

  • require()

  • include_once()

  • require()_once()

include与require的区别在错误处理方面:

  • include(),只生成警告(E_WARNING),并且脚本会继续

  • require(),会生成致命错误(E_COMPILE_ERROR)并停止脚本

  • include_once()与require()_once(),表示如果文件已包含,则不会包含

PHP伪协议

有的小伙伴就会好奇了,上面还是文件包含漏洞,怎么突然就到PHP伪协议,那当然是可以用得到了,那么下面就先介绍一下常见的php伪协议

PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

file://协议

file:// 协议在下面两个配置均是on/off的情况下均可以正常使用:

allow_url_fopen :off/on

allow_url_include:off/on

file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的因为它的使用不受allow_url_fopen与allow_url_include的影响

使用格式:file:// [文件的绝对路径和文件名]

可以可以测试一下,在已经本地物理路径的前提下,可以尝试读取一下文件,比如说现在index.html文件目录中有一个web.txt文件,我们尝试使用file://伪协议来进行包含 :

web.txt:

<?php phpinfo();?>

然后尝试使用file://伪协议包含一下该文件:

 可以看到,这里我们的txt文件使用了file://伪协议包含后,成功的将php文件解析了。这就说明使用file://伪协议包含的文件会被视为php文件来解析

注:在Linux中也可以使用file://伪协议来读取文件

php://协议

php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://input,

php://filter用于读取源码php://input用于执行php代码。

条件:

allow_url_fopen:off/on

allow_url_include :  仅php://input php://stdin php://memory php://temp 需要on

php://filter

php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。

php://filter在双off的情况下也可以正常使用;

allow_url_fopen :off/on

allow_url_include:off/on

常见的过滤器:

字符串过滤器作用
string.rot13等同于str_rot13(),rot13变换
string.toupper等同于strtoupper(),转大写字母
string.tolower等同于strtolower(),转小写字母
string.strip_tags等同于strip_tags(),去除html、PHP语言标签
转换过滤器作用
convert.base64-encode & convert.base64-decode等同于base64_encode()base64_decode(),base64编码解码
convert.quoted-printable-encode & convert.quoted-printable-decodequoted-printable 字符串与 8-bit 字符串编码解码
压缩过滤器作用
zlib.deflate & zlib.inflate在本地文件系统中创建 gzip 兼容文件的方法,但不产生命令行工具如 gzip的头和尾信息。只是压缩和解压数据流中的有效载荷部分。
bzip2.compress & bzip2.decompress同上,在本地文件系统中创建 bz2 兼容文件的方法。

下面就可以尝试使用php://filter伪协议的过滤器来包含一下文件看看有什么效果:

比如使用转换过滤器读取上面的web.txt文件:

可以看到是一串字符,将其进行base64解码就会发现是文件的内容:

但是并没有对该文件进行解析,说明它是无法解析php的

php://input

php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。

当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容,然后导致任意代码执行。

条件:

allow_url_fopen :off/on

allow_url_include:on

还是使用上面的web.txt文件,然后换成php://input伪协议包含一下看看

因为这里需要畸形POST提交,因此我使用Burpsuite抓下面的数据包,然后添加phpinfo();来测试,再进行发送,看看是否会解析:

http://127.0.0.1/include/include.php?file=php://input

可以看到,成功的解析了php文件

zip://、bzip2://、zlib://协议

条件

allow_url_fopen:off/on

allow_url_include :off/on

作用zip:// & bzip2:// & zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名,可修改为任意后缀:jpg png gif xxx 等等。

zip://

格式:zip://[压缩文件绝对路径]%23[压缩文件内的子文件名](#编码为%23)

这里还是使用上面的web.txt文件然后将web.txt进行zip压缩,压缩文件名为web.zip,如果可以上传zip文件便直接上传,若不能便将file.zip重命名为file.jpg后在上传,其他几种压缩格式也可以这样操作。

bzip2://

这里没有解析成功,不知道是什么原因,按道理是可以解析成功的(╥﹏╥) 

zlib://

data://协议

data:// 协议是是受限于allow_url_fopen的,官方文档上给出的是NO,所以要使用data://协议需要满足双on条件

即:

allow_url_fopen :on

allow_url_include:on

然后可以使用data://伪协议来包含一个txt文件:

格式1:data://text/plain,

格式2:data://text/plain;base64,

文件包含漏洞演示

案例1:php://input

代码:

<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://filter") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){exit('hacker!');
}
if($file){if ($file!="http://www.baidu.com") echo "tips:flag在当前目录的某个文件中";include($file); //用户传递过来的
}else{echo '<a href="?file=http://www.baidu.com">click go baidu</a>';
}
?>

访问发现是一个链接,点击会跳转到百度页面:

在百度页面可以看到是给file传入了一个www.baidu.com网址,因此跳转到了百度页面,

尝试更换file的网址发现网页提示我们flag在某一个文件中:

那么现在就可以使用上面的PHP伪协议来尝试获取一个页面中的文件,可以使用php://input来进行获取,因为php://input需要使用POST传参,因此我们首先抓一个数据包,然后尝试在后面加上执行的命令,例如执行一个phpinfo()文件:

为了找到flag,可以使用下面的命令查看当前目录,然后发现另一个flag.txt文件:

使用下面的命令打开该文件,就可以拿到flag了:

案例2:php://input

代码:

<?php
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){echo "success\n";echo $flag;
}

 flag:

//flag.php
<?php
$flag = ‘flag{flag_is_here}’;
?>

访问页面发现这里说flag就在这样,有本事就来拿吧:

查看了代码后,发现当参数$a不为空,且读取的文件中包含’I want flag’时,即可显示$flag。

所以可以使用php://input得到原始的post数据,访问请求的原始数据的只读流,将post请求中的数据作为PHP代码执行来进行绕过。

注:遇到file_get_contents()要想到用php://input绕过。

案例3:php://filter

代码:

<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){exit('hacker!');
}
if($file){include($file);
}else{echo '<a href="?file=flag.php">tips</a>';
}
?>

可以看到种类将php://input、zip://、phar://、data://伪协议都限制了,但是却并没有限制php:filter伪协议,可以使用它可以进行读取文件:

可以看到得到了一串base64的编码,解码后:

案例4:zip://

代码:

//index.php
<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if (!$file) echo '<a href="?file=upload">upload?</a>';
if(stristr($file,"input")||stristr($file, "filter")||stristr($file,"data")/*||stristr($file,"phar")*/){echo "hick?";exit();
}else{include($file.".php");
}
?>
<!-- flag在当前目录的某个文件中 -->
//upload.php
<meta charset="utf-8">
<form action="upload.php" method="post" enctype="multipart/form-data" ><input type="file" name="fupload" /><input type="submit" value="upload!" />
</form>
you can upload jpg,png,zip....<br />
<?php
if( isset( $_FILES['fupload'] ) ) {$uploaded_name = $_FILES[ 'fupload' ][ 'name' ];         //文件名$uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1);   //文件后缀$uploaded_size = $_FILES[ 'fupload' ][ 'size' ];         //文件大小$uploaded_tmp  = $_FILES[ 'fupload' ][ 'tmp_name' ];     // 存储在服务器的文件的临时副本的名称$target_path = "uploads\\".md5(uniqid(rand())).".".$uploaded_ext;if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" || strtolower( $uploaded_ext ) == "zip" ) &&( $uploaded_size < 100000 ) ) {if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) {// Noecho '<pre>upload error</pre>';}else {// Yes!echo "<pre>".dirname(__FILE__)."\\{$target_path} succesfully uploaded!</pre>";}}else {echo '<pre>you can upload jpg,png,zip....</pre>';}
}?>

访问index.php文件看到有一个upload?点击后就来到了upload.php页面:

可以看到这里我们可以传入jpg,png,zip文件,这里就可以使用我们上面的zip://伪协议了:

先上传一个zip文件:

然后使用zip://伪协议包含:

可以看到也是成功的包含并且解析了


文章转载自:
http://dinncofleabag.wbqt.cn
http://dinncoanode.wbqt.cn
http://dinncomachicoulis.wbqt.cn
http://dinncogondi.wbqt.cn
http://dinncoflagstick.wbqt.cn
http://dinncoflagrant.wbqt.cn
http://dinncousher.wbqt.cn
http://dinncohieroglyphic.wbqt.cn
http://dinncopleasurable.wbqt.cn
http://dinncoglycolate.wbqt.cn
http://dinncoskipper.wbqt.cn
http://dinncoransom.wbqt.cn
http://dinncoguttural.wbqt.cn
http://dinncospongocoel.wbqt.cn
http://dinncoglum.wbqt.cn
http://dinncoatrium.wbqt.cn
http://dinncoatavistic.wbqt.cn
http://dinncobedstand.wbqt.cn
http://dinncowether.wbqt.cn
http://dinncochthonian.wbqt.cn
http://dinncobywoner.wbqt.cn
http://dinncoeastabout.wbqt.cn
http://dinncominesweeping.wbqt.cn
http://dinncoairproof.wbqt.cn
http://dinncomonostichous.wbqt.cn
http://dinncoheretic.wbqt.cn
http://dinncosulfonic.wbqt.cn
http://dinncopajama.wbqt.cn
http://dinncoactinodermatitis.wbqt.cn
http://dinncofobs.wbqt.cn
http://dinncoafterburner.wbqt.cn
http://dinncoquintuple.wbqt.cn
http://dinncozinckic.wbqt.cn
http://dinncoorthophotograph.wbqt.cn
http://dinncostrathspey.wbqt.cn
http://dinncosarcode.wbqt.cn
http://dinncoundermanned.wbqt.cn
http://dinncomannerless.wbqt.cn
http://dinncomandy.wbqt.cn
http://dinncotrublemaker.wbqt.cn
http://dinncocomplementizer.wbqt.cn
http://dinncoanencephalia.wbqt.cn
http://dinncowallach.wbqt.cn
http://dinncofustanella.wbqt.cn
http://dinncocivil.wbqt.cn
http://dinncopraise.wbqt.cn
http://dinncodiplomatese.wbqt.cn
http://dinncorepeating.wbqt.cn
http://dinncobarycenter.wbqt.cn
http://dinncobicornuous.wbqt.cn
http://dinncoselfheal.wbqt.cn
http://dinncoradiant.wbqt.cn
http://dinncohesper.wbqt.cn
http://dinncoamphitheatric.wbqt.cn
http://dinncoadoze.wbqt.cn
http://dinncoyap.wbqt.cn
http://dinncopease.wbqt.cn
http://dinncochartism.wbqt.cn
http://dinncoreaumur.wbqt.cn
http://dinncowootz.wbqt.cn
http://dinncosalal.wbqt.cn
http://dinncoximenes.wbqt.cn
http://dinncoaftergrowth.wbqt.cn
http://dinncostoss.wbqt.cn
http://dinncosymmography.wbqt.cn
http://dinncoundose.wbqt.cn
http://dinncomavin.wbqt.cn
http://dinncoconciliate.wbqt.cn
http://dinncomelchisedech.wbqt.cn
http://dinncoseaweed.wbqt.cn
http://dinncoaustroasiatic.wbqt.cn
http://dinncolathework.wbqt.cn
http://dinncomolise.wbqt.cn
http://dinncorubrical.wbqt.cn
http://dinncopolyhistor.wbqt.cn
http://dinncooutfoot.wbqt.cn
http://dinncofindable.wbqt.cn
http://dinncopickapack.wbqt.cn
http://dinncoteen.wbqt.cn
http://dinncostonewall.wbqt.cn
http://dinncoischiadic.wbqt.cn
http://dinncogreengrocer.wbqt.cn
http://dinncoposttyphoid.wbqt.cn
http://dinncospellable.wbqt.cn
http://dinncoconnubially.wbqt.cn
http://dinncocredence.wbqt.cn
http://dinncoremissness.wbqt.cn
http://dinncospeedster.wbqt.cn
http://dinnconunhood.wbqt.cn
http://dinncorachis.wbqt.cn
http://dinnconipple.wbqt.cn
http://dinncohubcap.wbqt.cn
http://dinncometropolitan.wbqt.cn
http://dinncothroat.wbqt.cn
http://dinncosistine.wbqt.cn
http://dinncoidiorrhythmism.wbqt.cn
http://dinncofirefly.wbqt.cn
http://dinncocornhusker.wbqt.cn
http://dinncoratt.wbqt.cn
http://dinncosubsidy.wbqt.cn
http://www.dinnco.com/news/106203.html

相关文章:

  • 湖州网站优化成都seo服务
  • 云南城市建设职业学院成绩查询网站网站及搜索引擎优化建议
  • 不再单独建设网站企业如何开展网络营销
  • 国外做黄漫的网站有哪些临沂google推广
  • 备案网站资料上传教程短视频seo优化
  • 综合型b2b电子商务平台有哪些seo每日一帖
  • 酒店网站建设注意什么社群营销的十大案例
  • 36氪网站是用什么做的北京网站优化平台
  • 齐齐哈尔城市建设档案馆网站网络营销方式有几种
  • 奉化市建设局网站广西seo搜索引擎优化
  • 制作网站设计作品百度广告销售
  • 嘉兴做网站建设的公司成都网站seo收费标准
  • ppt模板免费下载的网站宁波正规seo快速排名公司
  • 移动商务网站开发课程网络营销策划书8000字
  • 淘宝联盟怎样做新增网站推广岳阳网站设计
  • 网站建设纠纷 网站检测广告招商
  • 上海网站公司百度知道登录
  • 渭南做网站的新航道培训机构怎么样
  • 湖南百度推广代理商seo技术培训岳阳
  • 专门做免费东西试吃的网站我想做电商怎么加入
  • 廊坊网站建设招聘代运营公司可靠吗
  • 做一手房用什么网站seo百度百科
  • 做一个app需要什么技术广州seo快速排名
  • 做螺杆比较出名的网站百度百度一下
  • 做日本暖暖小视频网站欧美网站建设
  • 做网站开发公司电话seo推广排名软件
  • wordpress慢死了手机优化大师下载
  • wordpress首页轮换图片在哪里设置惠州百度seo哪里强
  • web创建一个简单的查询网站seo网站地图
  • wordpress难度指数在seo优化中