BUUOJ WEB(1)

[ACTF2020 新生赛]Include

开启环境之后点击tips

 可以在url中看到格式为:

?file=flag.php

  加上题目是include,可以猜测是文件包含漏洞

http://a291bdf1-28ba-406c-8e0a-ca2092423c97.node3.buuoj.cn/?file=../../../../../etc/passwd

访问之

 确实是文件包含,但是我不知道flag文件叫啥名字

尝试了一下在根目录下读取flag和flag.txt,无果,使用php伪协议尝试读取flag.php文件

http://a291bdf1-28ba-406c-8e0a-ca2092423c97.node3.buuoj.cn/?file=php://filter/read=convert.base64-encode/resource=flag.php

 base64解码后获取flag

[ACTF2020 新生赛]Exec

看题目应该是命令执行类型的

 ping 一下127.0.0.1,然后尝试使用 | 来执行命令

 使用 127.0.0.1 | ls

发现当前文件夹下是index.php文件,一般来说这种题目的flag都在根目录下,127.0.0.1 | ls / 查看根目录文件

 使用 127.0.0.1 | cat /flag 查看flag

[极客大挑战 2019]BuyFlag

 

 不知道为啥,这道题因为我自己本机环境的问题,总是没有正确的返回结果

简单说一下

<!--
	~~~post money and password~~~
if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {
		echo "password can't be number</br>";
	}elseif ($password == 404) {
		echo "Password Right!</br>";
	}
}
-->

  可以看到源代码里面有提示,抓包的时候cookie里面有user=0,猜测需要是CQIT的学生,cookie验证强度太低,修改user=1

对于源代码里面的比较,使用了is_numeric,有漏洞的判断函数,我们可以在404前面或者后面添加%00进行绕过,另外就是money的值,这里我就没有返回正确的值了,看其他师傅的博客,可以知道这里不能输入超过8位的数字,猜测服务器端使用的是strcmp函数进行比较,使用money[]=a进行绕过即可,就能拿到flag了。

[极客大挑战 2019]Upload

 界面很漂亮

 文件上传漏洞

 上传chopper.php抓包,返回包里面有Not image!的错误提示

将Content-Type修改为:image/gif,返回的错误信息变成了NOT!php!

 应该是因为我们上传的文件名是php结尾的,使用%00截断

 截断之后提示我们上传的文件中包含了&#x3C;&#x3F;

实体编码解码之后可以看到是:

 说明不能包含<?

使用javascript上传木马进行绕过

 

 又出现新的错误信息了:(

添加GIF89a文件头

 这次总算是上传成功了,但是好像访问不到?

重新修改上传的文件名

 phtml后缀上传成功,此处的黑名单过滤不够完全,然后我们去访问upload文件夹下的chopper.phtml

 链接木马

原文地址:https://www.cnblogs.com/Cl0ud/p/12578148.html