2020.09.21
经验教训
- rot13,凯撒密码的一种变形,因为其加密和解密只用一种方法,所以比较流行,实质就是字母表偏移13位
- 正则表达式可以用数组绕过;
- 当一个字符被过滤了的时候,有可能是因为触发了正则表达式;
- 什么时候可以考虑用数组绕过过滤?我们的输入被放在一个参数中被源码处理,可能存在正则、hash处理;
- 在遇到一个不是单词的连串字母的时候,不符合base特征的可能是凯撒处理过……
- 学到大佬的思路
既然没有提示,也没有其他的链接,那么可能有以下几种可能:
1、敏感文件泄漏
2、跳转
3、cookie / session
第一个想法在经过扫描器扫描之后就放弃了,因为只看到index.php,还有/upload/,但是在访问的时候是403
第二个在抓包的时候也没有看到有跳转
只剩下第三个
who are you?
https://www.ichunqiu.com/battalion
- 直接访问,显示权限不够,估计就是改改
X-Forwarded-For: 127.0.0.1
- 在burp中重发,发现有个特别的地方,就是设置了cookie,base64解码后是
f:5:"thrfg";
,是序列化之后的结果,role是角色的意思,那么改成admin??
- 改了X-Forwarded-For,但是没有用,那还有啥,试试更改cookie
- 我把cookie变成admin序列化之后的结果还是不行
- 原来是这样,怪不得之前的thrfg怪怪的,这是Rot13后的结果,我的思路是没问题的(??hhhh强行没问题),thrfg解密后是guest
- 那么admin,Rot13结果是
nqzva
,序列化然后base64是Zjo1OiJucXp2YSI7
,再试试
- 很好,成功
<body>
<!-- $filename = $_POST[‘filename‘]; $data = $_POST[‘data‘]; -->Hello admin, now you can upload something you are easy to forget.</body>
- 那么他的意思就是我可上传东西了,burp试试,我不太清楚这个data应该怎么填,管他呢,随便试试??上传一句话被no了,那么是因为后缀名么
- 把data内容修改后成功上传,看来是对文件内容进行了过滤
- 接下来测试被过滤的字符
<
,报错……
>
,没事
php
,没事
?
,没事
- 那看来就是对这个<进行了过滤,那么我们有没有其他办法呢,这一个字母也不能复写啊
- 然后我就去看wp了,有大佬说是可能有正则表达式,可以用数组来绕过,然后就让data[],确实成功了
- 访问了直接给了flag
flag{e07cd440-8eed-11e7-997d-7efc09eb6c59}
- 但是思路是很重要的,怎么猜到的可以用数组绕过很重要
CTF-i春秋-Web-cookie欺骗、数组绕过正则过滤、rot13-who are you?-2017第二届广东省强网杯线上赛
原文:https://www.cnblogs.com/qiaowukong/p/13705860.html