一.本地管理员
知识点:伪造ip地址,解码
1.伪造ip地址 :通过bp抓包,并且添加一条 X-Forwarded-For 数据
2.判断编码
(1条消息) 【Crypto】判断密文的加密方式_兔兔包点吃机的博客-CSDN博客_加密方式判断
30余种加密编码类型的密文特征分析(建议收藏) - 腾讯云开发者社区-腾讯云 (tencent.com)
如何判断一个编码是base64的
* 字符串只可能包含A-Z,a-z,0-9,+,/,=字符
* 字符串长度是4的倍数
* =只会出现在字符串最后,可能没有或者一个等号或者两个等号
在看题目的源码中,看到这一条,由于他的结尾有两个等号,并且长度为12位,只有 A-Z,a-z,=
所以猜测是 base64编码,拿到在线网站解密,发现
这个应该是密码,结合弱口令,猜测账号是 admin
结合上面两个知识点
成功拿到flag
二.eval远程代码执行
如图,知识点1: request方式传递参数
(1条消息) PHP $_REQUEST_小小的香辛料的博客-CSDN博客_$_request php
可以理解为 结合了post和get的请求方式,直接 /? 发送或者 构造一个post包发送
知识点2: eval函数
PHP eval() 函数 (w3school.com.cn)
知识点3: var_dump()函数
PHP var_dump() 函数 | 菜鸟教程 (runoob.com)
知识点4:include
PHP Include 文件 (w3school.com.cn)
知识点5 system函数
代码的意思是:头部引用了flag.php文件(也就是flag所在地), 参数a接受一个 由request方式传递的参数,参数名为 hello, 通过 var_dump 输出a的值(也就是参数具体的值),然后这个值会被当作php命令执行(eval的作用)
由于传递request的参数和get差不多因此我们直接 在url栏 /?hello= 传递即可
题目转化为远程代码执行,直接用system函数即可
system('find / -name flag')先找一下flag,然后再cat
system(' cat /flag')
三.变量1
题目提示了flag在变量里,
那一个正则说明了变量要以 字母数字下划线开头和结尾
$GLOBALS!!!这种全局变量用于在 PHP 脚本中的任意位置访问全局变量
因此我们直接访问GLOBALS即可
(1条消息) Bugku web 变量1_酥酥糖学习的博客-CSDN博客
(1条消息) 正则匹配详解_识醉沉香的博客-CSDN博客_正则匹配
四.什么也没有
1.考虑目录扫描
2.考虑bp抓包
五.source
(1条消息) bugku-source-wp详解_forever4024的博客-CSDN博客_bugku wp
直接f12看
拿去base64解码,发现flag是假的,
目录扫描一下
确定是git的信息泄露
git泄露知识点
(1条消息) CTFHUB中的git泄露_kllwlick的博客-CSDN博客_ctfhub git
(1条消息) ctfhub技能树—信息泄露—git泄露—Stash_山巅自相逢的博客-CSDN博客_ctfhub stash
1.下载.git文件
kali: wget -r http://114.67.175.224:18055/.git
GitHack python2 GitHack.py http://challenge-27567e8a0c3c2b2b.sandbox.ctfhub.com:10800/
2.log
通过日志发现flag
解法1 通过 git diff比较现版本和之前版本的区别
git diff 版本号
解法2 通过git reset切换到之前的版本
git reset --hard 版本号
3.stash
git-stash用法小结 - Tocy - 博客园 (cnblogs.com)
以ctfhub的git泄露中的stash为例,题目的背景是工作人员将flag提交到了stash中,我们需要从stash中提取出flag
解法1
git stash list 查看现有的储藏
git stash show 查看
git stash pop 来重新应用储藏,同时立刻将其从堆栈中移走。
先通过 git stash list 查看stash中的缓存,可以发现,缓存只有一个
所以直接用 git stash pop 移除缓存得到 包含flag的txt文件
解法2
先通过 .git/refs/stash 文件拿到stash中的hash值然后用 diff直接比较两个文件的区别,拿到flag
注意:如果使用过方法1,方法2就会失败,因为当前版本已经恢复到存有flag的版本了。使用diff就相当于和自己作比较,结果为空。
4.index