技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
Midnight-Sun-CTF-2025-WEB
寒影和寒风萧
发表于 广东
CTF
158浏览 · 2025-05-21 16:41
返回文档
Hackchan
Condition of getting flag
在views.py中看见了得到flag的条件
即当当前用户的balance大于999_999_999的时候就可以得到flag,所以要看一下逻辑。
bot处理流程
在bot.js中处理problem中的url的过程,这个地方就可以构造路由让admin去访问。
然后和balance有关的函数只有
然后我们现在要找到一个地方去得到balance,于是翻看源码
这里用了TF-IDF,将question转换为了数值向量
然后我们主要看到处理fac这里。
所以我们只需要找一个label匹配到我们的.swp文件(题目故意留的,可以嵌入xss,but我利用vim -r 看不出来是什么问题,所以等wp吧,再补上)
因为是
.
开头的文件,所以在文件系统里面会放在最前面,再回顾我们的fac内容,这里只贴出部分
我们只需要匹配其中的media即可,他就会将.swap文件渲染出来。
所以我们只需要让
action=fac&question={text}
的text内容与对应的question对应上即可
playload:
https://hackchan-mjk2mpay.ctf.pro/?action=faq&question=How can I get in touch with your PR department for collaboration?<script>alert('hacked by dt')</script>
即可触发xss,那么接下来就很简单了,记得我们前面的bot吗,只需要控制这个xss让bot给我们转钱即可。
所以让bot访问:
http://web:8000/?action=create-transaction9
然后post过去
recipient=deletee&amount=9999999999
但是一次最多只能转10块钱,所以还得看一下逻辑,然后注意到处理的时候是分两块的
看到这里
confirmed_transactions = Transaction.query.filter(Transaction.status == 'confirmed').all()
所以我们可以在
confirm_transaction
之后的间隙将订单的status更改一次为confirmed即可完成转账,也就是race condition
最后的playload:
用的
<img src=x onerror="eval(atob('playload'))"/>
注意下编码问题即可,最后再次感谢HighDex
用英文说一遍:
Uselesscorp
扫了一下目录
看到
class.phpmailer.php
的日期找到对应版本为v5.2.17
https://github.com/PHPMailer/PHPMailer/blob/v5.2.17/class.phpmailer.php
打CVE 2016-10033,exp:
https://github.com/opsxcq/exploit-CVE-2016-10033
但是发现打不通,说明环境可能和原本的不大一样。
原来是在这里:
debian系统一般会用到exim4的MTA,所以我们就去看doc:
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-string_expansions.html
发现了如下几个好玩的东西:
●
${readfile{
}{
}}可以读取文件然后将其中的换行符替换掉
●
${readsocket{...}{...}{...}{...}{...}}向本地或远程 socket 发送请求字符串,读取响应数据,并将其插入到当前字符串中。适用于与其他服务通信,如 Redis、Python 微服务、SMTP、HTTP 接口等。
●
{run,preexpand{option}}运行一个外部命令,将其标准输出作为变量
$value
,并依据返回码决定使用哪个返回值。
所以我们可以构造一下sendmail的请求:
注意一下这里的email的格式,遵循RFC 3696,我们用
来闭合前面的引号然后用-Ov来让后面的语句无效,这个是HighDex师傅告诉我的,基本上都适用,我们也可以用一个极短的例如
@d
于是最后的exp:
其他playload(官方给的):
不过思路也是差不多的,只是一个直接read了我是弹shell
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
发布投稿
热门文章
1
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
2
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
3
从白帽角度浅谈SRC业务威胁情报挖掘与实战
4
基于规则的流量加解密工具-CloudX
5
从0到1大模型MCP自动化漏洞挖掘实践
近期热点
一周
月份
季度
1
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
2
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
3
从白帽角度浅谈SRC业务威胁情报挖掘与实战
4
基于规则的流量加解密工具-CloudX
5
从0到1大模型MCP自动化漏洞挖掘实践
暂无相关信息
暂无相关信息
优秀作者
1
T0daySeeker
贡献值:38700
2
一天
贡献值:24800
3
Yale
贡献值:21000
4
1674701160110592
贡献值:18000
5
1174735059082055
贡献值:16000
6
Loora1N
贡献值:13000
7
bkbqwq
贡献值:12800
8
手术刀
贡献值:11000
9
lufei
贡献值:11000
10
xsran
贡献值:10600
目录
Hackchan
Condition of getting flag
bot处理流程
Uselesscorp
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板