ics-07

和ics-05一样在index.php
然后有个view 打开

<?php
	session_start();
	if (!isset($_GET[page])) {
	      show_source(__FILE__);
	      die();
	    }
	if (isset($_GET[page]) && $_GET[page] != 'index.php') {
	      include('flag.php');
	    }else {
	      header('Location: ?page=flag.php');
	    }
?>

这个自动绕过了不用管

<?php
  if ($_SESSION['admin']) {
     $con = $_POST['con'];
     $file = $_POST['file'];
     $filename = "backup/".$file;
     }
?>

发现只有以admin身份才能写文件
先继续往下看

<?php
	if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9') {
	        include 'config.php';
	        $id = mysql_real_escape_string($_GET[id]);
	        $sql="select * from cetc007.user where id='$id'";
	        $result = mysql_query($sql);
	        $result = mysql_fetch_object($result);
	      } 
	else {
	        $result = False;
	        die();
		}
	if(!$result){
			die("<br>something wae wrong ! <br>");
			}
			
	if($result){
	      	echo "id: ".$result->id."</br>";
	      	echo "name:".$result->user."</br>";
	      	$_SESSION['admin'] = True;
	      }
 ?>

这里要传id
id不能等于1 最后一个字符是9
但是id太大又啥都没有
所以要用1-9绕过
这样你就是admin了

<?php
  if ($_SESSION['admin']) {
     $con = $_POST['con'];
     $file = $_POST['file'];
     $filename = "backup/".$file;

     if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){
        die("Bad file extension");
     }
     else{
        chdir('uploaded');
        $f = fopen($filename, 'w');
        write($f, $con);
        fclose($f);
       }
     }
?>

再回来看文件写入
首先文件名有过滤
但是发现只检查了最后一行个.后面的
于是file=shell.php/.
这样就等于建了个空白二级目录没影响
可以绕过
con就是文件内容传🐎然后蚁剑连

在这里插入图片描述
在这里插入图片描述

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值