[HarekazeCTF2019]Avatar Uploader

打开页面,提示是上传,我们先登录看看,我们用admin账号登录

image-20240808210652775

提示我们上传png图片,并且要求少于256kb且尺寸小于256px*256px

我们尝试上传图片

题解php特性

[FireshellCTF2020]Caas(任意文件读取)

打开网站,我们随便输点啥,出现了一个报错

image-20240804232626637

我们把报错放到浏览器里搜索,发现是c语言的编译错误

题解

[SCTF2019]Flag Shop(jwt,Ruby)

我们通过页面可以发现,需要我们获得1000000000000000000000000000才能得到flag,我们考虑抓包

image-20240803182745459

获得了一串jwt

jwt

武功山杯·第一届湘赣边大学生网络安全竞赛

石能为鼓

我们打开页面源码,发现一个文件

题解复现

[ISITDTU 2019]EasyPHP(无字母字符rce进阶)

我们进行代码审计

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
highlight_file(__FILE__);

$_ = @$_GET['_'];
if ( preg_match('/[\x00- 0-9\'"`$&.,|[{_defgops\x7F]+/i', $_) )
die('rosé will not do it');

if ( strlen(count_chars(strtolower($_), 0x3)) > 0xd )
die('you are so close, omg');

eval($_);
?>

第一个if的正则匹配我们可以放到https://regex101.com/这个网站去分析

具体来说就是

题解rce

[BSidesCF 2019]SVGMagic(xxe)

SVG是一种用XML定义的语言,SVG图形是可交互的和动态的,可以在SVG文件中嵌入动画元素或通过脚本来定义动画。

也就是说SVG是个XML,我们就能想到xxe

详解:https://www.freebuf.com/vuls/175451.html

我们知道,XML被设计用于传输和存储数据,然后这个漏洞就是利用了,应用程序在解析XML输入时,没有禁止外部实体的加载。
就拿下面的这个来说

xxe

[极客大挑战 2020]Greatphp(php内置类)

我们审计代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
error_reporting(0);
class SYCLOVER {
public $syc;
public $lover;

public function __wakeup(){
if( ($this->syc != $this->lover) && (md5($this->syc) === md5($this->lover)) && (sha1($this->syc)=== sha1($this->lover)) ){
if(!preg_match("/\<\?php|\(|\)|\"|\'/", $this->syc, $match)){
eval($this->syc);
} else {
die("Try Hard !!");
}

}
}
}

if (isset($_GET['great'])){
unserialize($_GET['great']);
} else {
highlight_file(__FILE__);
}

?>

一般来说,我们要绕过if语句的md5和sh1是用数组绕过的,但由于还要eval传递的值,所以我们就不能用数组绕过

所以,我们考虑php中的内置类,也就是原生类

php特性

[CSAWQual 2019]Web_Unagi(xxe)

打开页面,我们在upload模块里发现一个here链接

我们点击,提示了xml格式,我们可以猜测,这道题是xxe漏洞

image-20240724200440973

我们构造xml

xxe