2020.03.16
今日份是我差不多开始了新的开始 ,前面几天都是一些合天的学习,算法的训练
以下是今日题目 仅一题表示开始
攻防世界-upload1
首先这道题的上传仅仅过滤了前端 而且是不符合规则把submit按钮给display了
手动把display去掉就行了。
之后文件上传的过程中 我发现我出现了问题,我的菜刀连不上去 蚁剑也是。试了试文件上传之后可以访问成功。那么可以构建命令执行
我是先试着 ls cd ../;ls cd ../;cat flag.php
这样一步步来就好了
这道题目的感受是:在文件上传成功之后,先尝试可否访问,我觉得可以在php文件中加一些标记 这样可能会更好
这样之后尝试访问,可以发现
很明显 菜刀连不上可能是我出了问题。但是出现问题又怎么样呢?总不能放弃吧。换条路 ,RCE尝试一波。
今天就先这样吧 明天周二好苦,还有计组 笔记也还没写。哭泣了
2020.03.18
今日的题目很有意思
命令注入综合
下面是知识点:
1 | ls 目录名 可以直接输出此目录下的文件 |
题目过一遍吧
首先查看过滤了什么 一开始我没注意到过滤了空格
我建议payload测试顺序应该为:
127.0.0.1
127.0.0.1(空格)
知道空格被过滤了
好的 运算符怎么过滤呢? 常见的%0a %0d 我一开始在输入框中测试发现都不成功,但是绕过就这几种啊。。 那么可能是被编码了导致的 直接在URL上处理!
那么怎么过滤关键字呢? 上面提到``
来过滤呗
成功解决! 关键在于绕过测试手法的了解!
2020.03.19
今天的题目 反序列化
Web_php_unserialize
首先 这道题目的知识点我在合天都看过,我也知道怎么绕过。
但是就是也不出来!?为什么呢? 是因为
这个类的成员变量是private
类型 ,一般序列化后会变成
1 | Private属性 : 数据类型:属性名长度:"\00类名\00属性名";数据类型:属性值长度:"属性值"; |
而我用脚本写序列化后再去改动再去base64加密,破坏了\00这个字符!
所以最好用脚本来加解密 增删改! 而不是通过工具来修改!
下面是解题思路:
很明显 两处过滤
emm这两处过滤在合天那篇博客都写过怎么做
下面写下这个payload吧
1 |
|
就可以啦! 这道题很经典吧可以说。我觉得最重要的是要去用脚本去输出。不然会破坏\00.
大师傅的题解:https://www.cnblogs.com/Mrsm1th/p/6835592.html
web2
一进来看题;
很明显嘛,逆向加密算法
说一下几个函数:
1 | strrev(str); 把字符串倒置 |
那么我们理一遍加密思路
1、倒置flag
2、把每一个字符的ascaii码加1
3、base64加密 倒置 ROT13编码
那么我们解密也有了:
1 |
|
mfw
这道题目我做了百分之40吧。。。
首先 Git泄露我找出来了。但是之后代码审计的时候出现了错误!
先走走看吧。
明显的git先测试看看
然后查看源码呗,我几乎看了所有文件 最后发现 利用点是在index.php
1 | //index.php |
这里就是重点了
我直接输入/?page=flag
结果啥也没有 但是返回的是200 这说明可能注释掉了 我看不到而已
那么想想读取源码呗! 就想到文件包含 结果 这个字符串被限制了。。。
尤其是尾部! 尾部被限制了 搞不了搞不了
这是 注意到一个函数assert($str)
这里存在命令执行漏洞!!
好的我们学习下这个命令执行漏洞的基本:
1 | assert($str); |
很好! 那么答案就出来了!!!
payload: /?page=abs’) or system(“cat templates/flag.php”);//
此外,还可以有别的方法访问得到文件
show_source(‘flag.php’);
print_r(file_get_contents(‘flag.php’));
cat flag.php;
一点小tips
linux cat :是把文件内容打印到标准输出
php system:是把系统命令的执行结果输出出来
php 在打印字符串的时候 如果字符串是以<?开头的 那么会被注释掉 同时遇到>注释才结束
收获颇深!
2020.03.20
今日题目 写了两道题 但是有一道题目我实在不理解算了吧
写写今天的垃圾题目:
讲真,我看了题目 也猜想过
结果我以为sql注入。。。 很像有没有?!
回过头来 看题 首先所有数据都被删除了 那么sql注入是注入不出来的!
【有一说一 的确 我当时order by 100000都还有显示。。
那么看网上的wp 提示爆破。
【这题也太无聊了
周末打比赛 以赛代练! 加油叭。
2020.03.22
[ACTF2020 新生赛]BackupFile
这道题目 就了解很多了
首先源码泄露 用 dirsearch扫描
扫描指令: ./dirsearch.py -u "www.xxxx.com"
-e *
注意到 在URL后面不要填上/
这个
不然会出现扫不出来!。。。 这个很气。
之后我们扫到/index.php.bak
这个 下载源码
1 |
|
很明显 PHP黑魔法
我们再来解析解析!
函数介绍:
is_numeric — 检测变量是否为数字或数字字符串
如果 var
是数字和数字字符串则返回 **TRUE
**,否则返回 **FALSE
**。
intval — 获取变量的整数值
通过使用指定的进制 base
转换(默认是十进制),返回变量 var
的 integer 数值
strcmp — 二进制安全字符串比较
注意该比较区分大小写。如果 str1
小于 str2
返回 < 0; 如果 str1
大于 str2
返回 > 0;如果两者相等,返回 0。
这道题目呢,==
弱比较 字符串和数字比较的时候,字符串只取到数字。
- 本文标题:Every CTFproblem
- 创建时间:2020-03-16 23:13:21
- 本文链接:2020/03/16/CTFcomig/Every-CTFproblem/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!