1. swoole
题目链接:
Make unserialize great again
https://swoole.rctf2020.rois.io
hint:https://github.com/swoole/library/issues/34
参考资料:
#!/usr/bin/env php
<?php
Swoole\Runtime::enableCoroutine($flags = SWOOLE_HOOK_ALL);
$http = new Swoole\Http\Server("0.0.0.0", 9501);
$http->on("request",
function (Swoole\Http\Request $request, Swoole\Http\Response $response) {
Swoole\Runtime::enableCoroutine();
$response->header('Content-Type', 'text/plain');
// $response->sendfile('/flag');
if (isset($request->get['phpinfo'])) {
// Prevent racing condition
// ob_start();phpinfo();
// return $response->end(ob_get_clean());
return $response->sendfile('phpinfo.txt');
}
if (isset($request->get['code'])) {
try {
$code = $request->get['code'];
if (!preg_match('/\x00/', $code)) {
$a = unserialize($code);
$a();
$a = null;
}
} catch (\Throwable $e) {
var_dump($code);
var_dump($e->getMessage());
// do nothing
}
return $response->end('Done');
}
$response->sendfile(__FILE__);
}
);
$http->start();
2. rBlog 2020
题目链接:
https://rblog.rctf2020.rois.io
The source deployed on the server has been slightly modified to ensure the isolation of every single payload.
hint:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
3. chowder_cross
题目链接:
try to bypass chowder filter to get flag
hint3: Try to visit the non-existent page and see what happens, pay attention to img-src to see what happens, please combine my previous hints.
4. Calc
题目链接:
nobody knows php better than me, So calc it
http://124.156.140.90:8081
5. EasyBlog
come and write something
http://124.156.134.92:8081