20210108攻防世界WEB高手区题目一题多解全教程通关(7-12)

news/2024/7/7 7:30:51

 

 欢迎大家一起来Hacking水友攻防实验室学习,渗透测试,代码审计,免杀逆向,实战分享,靶场靶机,求关注

目录

007ics-06

008warmup

warmup第一种解法

warmup第二种解法

009NewsCenter

010NaNNaNNaNNaN-Batman

011web2

012PHP2


007ics-06

题目描述:云平台报表中心收集了设备管理基础服务的数据,但是数据被删除了,只有一处留下了入侵者的痕迹。

只有一处可以点击那就是“报表中心",发现id是注入点,用BP爆破之,发现最可能是id=2333,得到flag:cyberpeace{3521d1fba8ef203195b0dd118e5eac25}

008warmup

点进去发现这个表情!66666!

查看页面源码发现有一个source.php文件:

进入后发现代码如下:

<?php
    highlight_file(__FILE__);//强调文件体,没什么用
    class emmm
    {
        public static function checkFile(&$page)//定义一个检查文件的函数
        {//定义一个白名单数组
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {//如果输入的变量page为空或者不是字符
                echo "you can't see it";             //返回“你不能看到!”
                return false;
            }

            if (in_array($page, $whitelist)) {
                return true;    //如果输入的page变量在白名单里面,返回真
            }

            $_page = mb_substr(//截取开头到第一个?的位置之间的字符,如果第三个参数为NULL就从开头截取到尾
                $page,
                0,
                mb_strpos($page . '?', '?')//返回我们输入的page中问号所在的位置,如果没?就返回NULL
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }

    if (! empty($_REQUEST['file'])//如果file有值且为字符串
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];//包含这个file文件
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  

发现包含四个if语句:

  1. 第一个 if 语句对变量进行检验,要求$page为字符串,否则返回 false
  2. 第二个 if 语句判断$page是否存在于$whitelist数组中,存在则返回 true
  3. 第三个 if 语句,截取传进参数中首次出现?之前的部分,判断该部分是否存在于$whitelist数组中,,存在则返回 true
  4. 第四个 if 语句,先对构造的 payload 进行 url 解码,再截取传进参数中首次出现?之前的部分,并判断该部分是否存在于$whitelist中,存在则返回 true

第一个条件必须满足,2.3.4满足一个即可返回 true,若均未满足,则返回 false

这个ffffllllaaaagggg暗示flag藏在4层目录里面,这一点我是真的想不到。。其中第二个条件无法满足,因为不输入?的话,会把整个file之后的语句视为page,更加满足白名单,所以能满足的只有3,4.先说说满足3怎么做

warmup第一种解法

warmup第二种解法

009NewsCenter

如题目环境报错,稍等片刻刷新即可……………………………………这题直接SQL注入……由于大家思路几乎完全一致可以推荐参考大佬博客:攻防世界 WEB NewsCenter - An_Emotional_Killer - 博客园

010NaNNaNNaNNaN-Batman

下载文件打开之后发现这是一个HTML乱码,处理乱码的思路——改后缀,改内容。是一个输入框,看来我们要先弄清楚这个文件的代码才行,审计代码可以看到最开始的下划线“_”是一个变量,其内容是一个函数的代码,而最后又是一个eval(_),也就是执行这个函数了,我们把eval改为alert,让程序弹框,得到了源码的非乱码形式:

不用根据这些个变量和document.write去算flag,拿到flag有两种方法:

1)满足正则,,,满足length==16,正则的话^为开始符号,$为结尾符号,拼接一下:be0f233ac7be98aa,输入就拿到flag了。

2)将下面这段拿到控制台执行一下即可:

var t=["fl","s_a","i","e}"];
var n=["a","_h0l","n"];
var r=["g{","e","_0"];
var i=["it'","_","n"];
var s=[t,n,r,i];
for(var o=0;o<13;++o){
	document.write(s[o%4][0]);s[o%4].splice(0,1)
	}
}

flag{it's_a_h0le_in_0ne}

011web2

题目描述只有“解密”2字。打开网页,从没见过这么直接的提示,我惊呆了:

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function encode($str){
    $_o=strrev($str);//从题目我们不难看出,我们输入flag,然后把反转之后的flag赋值给$_o
    // echo $_o;
        
    for($_0=0;$_0<strlen($_o);$_0++){//然后开始加密,对flag每一个字符加密(逐字符加密)
       
        $_c=substr($_o,$_0,1);//截取反转后的flag中的字符
        $__=ord($_c)+1;//返回首个字符的ascii值
        $_c=chr($__);//转化为字符
        $_=$_.$_c;  //不断加新字符到旧字符后 
    } 
    return str_rot13(strrev(base64_encode($_)));
}

highlight_file(__FILE__);
/*
   逆向加密算法,解密$miwen就是flag
*/
?> 
这就是一个普通的加密解密题目,但是第一次接触的我花了很长的时间……
一步一步来,先把密文rot13解码,密文ROT13解密之后的结果:n1myotdfprfrvdeyjhdnlzjyld2y5ijokdtn3ednlhzm0gzziftz2mjo4gjf  ;
然后 反转:fjg4ojm2ztfizzg0mzhlnde3ntdkoji5y2dlyjzlndhjyedvrfrpfdtoym1n  
然后base64解码得到:$last ="~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg";然后用上我写的decode:
for($i=0;$i<strlen($last);$i++)
{
$_c=substr($last,$i,1);
echo $_c."<br>";
$_b = ord($_c)-1;
$_b = chr($_b);
echo $_b."<br>";
$xuu =$xuu.$_b;
}
echo $xuu;

返回}77925d0af7327d30646c918bfda5d37b_FTCSN{:galf               我们再次把这个字符串反转得到:flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

012PHP2

用御剑扫描发现后台有两个文件,一个是index.php,另一个是index.phps(小知识:phps后缀是专门提供开发者看的一个后缀名,学到了,赶紧加到自己的御剑字典里面,打开php.txt加入一行),,

逐个打开查看,发现只有index.phps里面有源码:

?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

Can you anthenticate to this website?

然后对admin2次url编码就可以:(也可以只对第一个字符a 进行2次url编码)

?id=%2561%2564%256d%2569%256e


http://www.niftyadmin.cn/n/3075177.html

相关文章

修复CefSharp浏览器组件中文输入Bug

概述 最近在win10上开发wpf应用&#xff0c;需要将CefSharp中wpf版本的浏览器组件&#xff08;版本号v51.0.0&#xff09;嵌入到应用中&#xff0c;但是发现不支持中文输入&#xff0c;GitHub上有这个问题的描述&#xff0c;参照其提到的方法可以解决&#xff0c;但是候选词窗口…

20200109攻防世界WEB高手区题目一题多解全教程通关(13-18)

欢迎大家一起来Hacking水友攻防实验室学习&#xff0c;渗透测试&#xff0c;代码审计&#xff0c;免杀逆向&#xff0c;实战分享&#xff0c;靶场靶机&#xff0c;求关注 目录 013unserialize3 014upload1 015Web_python_template_injection 016 easytornado 017shrine 0…

为什么要用java重写logstash

为什么要用java重写logstash 写之前这里先打个广告&#xff0c;java 版本的logstash已经开源&#xff0c;git地址 https://github.com/dtstack &#xff1b;再放个招聘信息 https://m.zhipin.com/weijd/v2/job/de2292afc38d32fe1XV73t25EFU~?date820180609&sidself_jd&…

VMware workstation安装linux镜像步骤

** 新手安装linux镜像步骤记录 ** 前言 软件&#xff1a;VMware12 pro版本 镜像&#xff1a;centos1905、ubuntu1804 一、创建虚拟机 1.1、文件—>创建虚拟机&#xff0c;选择自定义&#xff0c;可以自己对虚拟机的资源进行个性化配置 1.2、在选择硬件兼容性方面我们…

个人建站碰到的坑—忘记数据库密码

问题图片 解决思路 前提&#xff1a;自己购买的阿里云服务器&#xff0c;自己忘记wordpress密码。 想法1&#xff1a;通过邮箱进行密码重置 虽然填了邮箱&#xff0c;想用邮件发送修改密码的方式&#xff0c;但是发现我的主机不能发送重置密码的邮件&#xff0c;所以想法1失败…

20201224DVWA-SQL注入(SQL inject)模块全难度详解

目录 欢迎大家一起来Hacking水友攻防实验室学习&#xff0c;渗透测试&#xff0c;代码审计&#xff0c;免杀逆向&#xff0c;实战分享&#xff0c;靶场靶机&#xff0c;求关注 SQL注入的思路 low medium high SQL注入的思路 1.判断是否存在注入&#xff0c;注入是字符型还是…

20201223DVWA-文件包含(file-include)模块全难度详解

欢迎大家一起来Hacking水友攻防实验室学习&#xff0c;渗透测试&#xff0c;代码审计&#xff0c;免杀逆向&#xff0c;实战分享&#xff0c;靶场靶机&#xff0c;求关注 目录 文件包含漏洞简介 low medium high impossible 文件包含漏洞简介 先说一下文件包含漏洞吧&…

20210113bwapp html inject 全难度通关详解

欢迎大家一起来Hacking水友攻防实验室学习&#xff0c;渗透测试&#xff0c;代码审计&#xff0c;免杀逆向&#xff0c;实战分享&#xff0c;靶场靶机&#xff0c;求关注 HTML注入类似于xss注入但又不是&#xff0c;因为他的威胁程度大于后者&#xff0c;它可以在HTML页面中嵌…