ctf实战相关1

本次主题为 [ACTF2020 新生赛]BackupFile[极客大挑战 2019]BuyFlag

使用平台

chrome
buuctf
firefox(搭载hackbar)

相关知识

备份文件的存在
cookie查看/修改
php数据类型

flag获取过程

1.[ACTF2020 新生赛]BackupFile
1
总之 一进去 啥都没有
f12注释也没藏
我们换个思路 既然题目内容点了题 那么解题方案注定和backup file有关
多半只能扫目录了 于是用dirsearch和dirb搜索相关的目录
最后发现是潜藏在主页的.bak(每个页面都会有的备份页面)之中
2
👆关于.bak文件的相关解释
目录后输入/index.php.bak 会为你自动下载一份文件 以记事本打开
3
要我通过输入非纯数字的方式提交$str的内容在PHP中:
= = 为弱相等 即当整数和字符串类型相比较时 会先将字符串转化为整数然后再进行比较。比如a=123和b=123a45进行= =比较时。b只会截取前面的整数部分 被转化成123 因此只需要提供参数?key=123即可
4
提交flag 结束!

2.[极客大挑战 2019]BuyFlag
5
首先观察主页面 发现右侧菜单栏通往另一个与flag有关的分页面
6
首先是线索
(如果想要购买flag 你必须得是CUIT的学生之一 还得回答正确的密码)
第一关是 通过CUIT的学生验证
我们通过观察网站的网络数据包与cookie 发现一个名为 user 的cookie 值为0
尝试将0更改为1 成功通过
7
第二关是 输入正确密码
8
这点网站的注释中有相关的代码透露
该代码内同样使用了 弱相等 需要通过post方式将 $password 改为会被整数化为404的字符 我们拟用 404a 进行尝试 成功通过
9
进入了第三关 付钱
注释中提到过 post money and password
因此投送的数据名应为money
10
输入了所需要的100000000元后 却显示数据过长 需要压缩
这里有两种方式
(1)输入简略的科学计数法 如1e9=1×10的9次方 来使字符压缩
(2)利用strcmp函数在判断对象不是字符串时会报错并return0 的特性
输入money[]=1 使money变为数组 获取flag
11
提交flag 结束!

总结

更感觉CTF是一种不同形式的靶机
总之我们下次见吧