My Sky Blog
这里我们看到我们的源代码之后很容易就可以发现ssti的注入点
就是这里
但是找到ssti的注入点很简单,但是要获取admin却不容易
这里我注入了很久,发现都是在自己获取自己
但是如果我们审计代码可以发现第一个Post是admin的,那么我们先尝试看看能不能从ssti中获取第一篇文章的东西,那么我们使用这个payload
index.Posts
我们传上去后发现效果是这样
那么很显然我们这里已经是获取到了我们的第一个Posts
那么我们接下来要做什么呢
我们发现Posts的模板是这样的
title和body我们没有什么能利用的,但是Author是指向User对象的,那么我们去看User对象
这里我们可以找到User对象中有一个changepassword方法
而且既然我们刚才就可以变成admin,那么我们也就可以用这个方法去继续调用changepassword方法来更改admin的方法,于是我们就可以做到更改admin的密码,然后再用这个密码登录上去就可以获取flag了
最终payload
...
队伍情况
队伍名称
图书馆五楼风很大
队伍排名
rk
队伍成员
ksme
TenMape
amunt
fault
[Misc]简历
solved by ksme
🩸🩸 查壳,有UPX壳:
脱壳后IDA及沙箱分析无果,直接foremost得到一张简历图片:
zsteg得到一个default.a的下载链接:
分析default.a,可以看到大量重复的yyttddd:
用厨子xor一下,得到一个新的exe文件:
沙箱未能分析出网络行为,通过IDA分析,可以看到明显的python特征:
尝试使用pyinstxtractor解包失败,最后strings看到了关键信息:
那么思路就很明确了,需要用pupy相关的工具解包,在大量搜索尝试后找到以下可用项目:
安装好依赖库后尝试运行,会出现报错:
对项目中的main.py的.参数尝试多种方法调整未能解决,遂详细审了一下报错,发现问题来自python的uncompyle库中main.py的一条assert语句,于是选择直接将这行注释掉:
再次运行,虽然最后会出现报错,但是需要的C也已经成功输出了:
MD后 ...
[!NOTE] 一些小小的碎碎念
第一次看到sanic其实是不知所措的,感觉这个虽然是眼熟,但也仅限于眼熟,显而易见的,国赛没有做出来,也因为一些心态问题没有做复盘,时隔近两月,慢慢调整好心态后终于是借着gxn师傅的Sanic revenge进行了整体的复盘
这里放上gxn师傅的博客
https://www.cnblogs.com/gxngxngxn/p/https://www.cnblogs.com/gxngxngxn/p/
ciscn sanic
源码如下
from sanic import Sanicfrom sanic.response import text, htmlfrom sanic_session import Sessionimport pydash# pydash==..class Pollute: def _ ...