三叶草招新赛部分wp
最近是三叶草招新,不愧是强队,招新赛都这么难,学习了QWQ
性感黄阿姨在线聊天
打开是一个对话框,输入表情包可以获得三叶草师傅们的表情包(没有什么实际意义)
题目分两层,一层PHP弱类型一层XXE(xml实体注入)
复现复现,是一道bytectf修改了的题,加了几个过滤
<?php
highlight_file(__FILE__);
$code = $_GET['code'];
if (!empty($code)) {
if (';' === preg_replace('/[a-z]+\((?R)?\)/', NULL, $code)) {
if (preg_match('/readfile|if|time|local|sqrt|et|na|nt|strlen|info|path|rand|dec|bin|hex|oct|pi|exp|log/i', $code)) {
echo 'bye~';
} else {
eval($code);
}
}
else {
echo "No way!!!";
}
}else {
echo "No way!!!";
}
贴一下源码
今天在做什么第五届上海大学生网络安全大赛的一道题,好像是安恒月赛的一道题,感觉题目问题也挺大,有机会自己搭环境搞一搞,对着wp复现了一遍
<?php
highlight_file(__FILE__);
$x = $_GET['x'];
$pos = strpos($x,"php");
if($pos){
exit("denied");
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"$x");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
echo $result;
首先得想办法对strpos进行绕过,按常理来说我们如果把php放在最前面就可以绕过个strpos函数,但是curl不支持PHP伪协议(可用curl –version查看支持的协议),于是出现了这个二次编码绕过
用%2570代替p即可绕过对于strpos的检验,详见https://bugs.php.net/bug.php?id=76671&edit=1
事实上个人感觉是数据发送到服务器端进行第一次解码,而curl发起第二次请求时进行了第二次的解码,也就意味着这并不是strpos的问题,而是一个来自二次编码绕过的问题
记录一个获得了马师傅肯定的题目
<?php
highlight_file(__FILE__);
$b = 'implode';
call_user_func($_GET['f'], $_POST);
session_start();
if (isset($_GET['name']))
{
$_SESSION['name'] = $_GET['name'];
}
var_dump($_SESSION);
$a = array(reset($_SESSION), 'welcome_to_the_lctf2018');
call_user_func($b, $a);
?>