找回密码
 立即注册
首页 业界区 安全 2025hgame_web_wp

2025hgame_web_wp

郁兰娜 7 天前
Pacman -- WP

这是一个js前端做的游戏,该游戏的数据和代码都放在了前端。
F12工具打开
1.png

尝试去寻找游戏的结束处的代码,发现可疑字符串aGFldTRlcGNhXzR0cmdte19yX2Ftbm1zZX0=(在这之前可能会先找到一个假的flag,需注意)
进行base64解码后是:haeu4epca_4trgm{_r_amnmse}
发现有hgame的散装字样了,猜测是栅栏加密,丢到随波逐流中得出正确flag
2.png

MysteryMessageBoard --WP

首先发现一个登录界面,使用bp工具爆破即可得到账号密码
shallot888888发现一个留言版,根据提示+dirsearch扫描发现
/admin  路径 (不是很清楚什么作用,后续发现是触发服务器的机器人自动去查看留言板)
该处有一个留言板,可能有SQL,SSTI,XSS漏洞。尝试后发现是XSS,所以可以往留言板中插入xss,来窃取管理员的cookie信息。
首先使用阿里云搭建一个网站用来接收xss
  1. !
复制代码
外带cookie
再访问/admin路径,得到admin的cookie
3.png

将cookie丢到dirsearch中后,又扫到/flag。访问flag。
4.png

BandBomb --WP

5.png

审计源码的时候,发现有个/rename的路由,还有文件存放的位置是在uploads下。
  1. /rename相应的函数
  2. 发现有目录穿越漏洞/../,进一步检查发现可以进行恶意移动文件操作
复制代码
6.png

进一步探索发现不能直接修改app.js,但可以通过修改ejs文件来更改界面(就是这个网站的前端代码)
7.png

后续只需要在ejs中插入webshell
  1. [/code]找到flag
  2. [size=5]角落 --WP[/size]
  3. 访问robots.txt找到/app.conf
  4. [align=center] 8.png [/align]
  5. 根据上面提示,访问/admin/usr/local/apache2/app/app.py%3f
  6. 并在User-Agent前面加上 "L1nk/"
  7. 得到网站源码。
  8. [code]from flask import Flask, request, render_template, render_template_string, redirect
  9. import os
  10. import templates
  11. app = Flask(__name__)
  12. pwd = os.path.dirname(__file__)
  13. show_msg = templates.show_msg
  14. def readmsg():
  15.         filename = pwd + "/tmp/message.txt"
  16.         if os.path.exists(filename):
  17.                 f = open(filename, 'r')
  18.                 message = f.read()
  19.                 f.close()
  20.                 return message
  21.         else:
  22.                 return 'No message now.'
  23. @app.route('/index', methods=['GET'])
  24. def index():
  25.         status = request.args.get('status')
  26.         if status is None:
  27.                 status = ''
  28.         return render_template("index.html", status=status)
  29. @app.route('/send', methods=['POST'])
  30. def write_message():
  31.         filename = pwd + "/tmp/message.txt"
  32.         message = request.form['message']
  33.         f = open(filename, 'w')
  34.         f.write(message)
  35.         f.close()
  36.         return redirect('index?status=Send successfully!!')
  37.        
  38. @app.route('/read', methods=['GET'])
  39. def read_message():
  40.         if "{" not in readmsg():
  41.                 show = show_msg.replace("{{message}}", readmsg())
  42.                 return render_template_string(show)
  43.         return 'waf!!'
  44.        
  45. if __name__ == '__main__':
  46.         app.run(host = '0.0.0.0', port = 5000)
复制代码
发现有文件读写并且在read_message()函数中发现两次调用readmsg()函数。可能存在条件竞争。
编写python脚本通过条件竞争写入ssti
得到flag
9.png

最终脚本
10.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册