重定向漏洞
更多的是出现在Flask需要定位返回上一级功能中,在返回上一级功能则就需要去抓取用户的来源(HTTP referer),或者去独立写一个返回值,如下:
from flask import request
@app.route('/foo')
def foo():
return '<h1>Foo page</h1><a href="%s">Do something and redirect</a>' % url_for('do_something', next=request.full_path)
@app.route('/bar')
def bar():
return '<h1>Bar page</h1><a href="%s">Do something and redirect</a>' % url_for('do_something', next=request.full_path)
# 这里使用request.full_path获取当前页面的完整路径或者
def redirect_back(default='hello', **kwargs):
for target in request.args.get('next'), request.referrer:
if target:
return redirect(target)
return redirect(url_for(default, **kwargs))
@app.route('/do_something_and_redirect')
def do_something():
# do something
return redirect_back()这两段代码中都是用了重定向
如果有心人做了一个和真网站(A站)一模一样的假网站(B站),然后发送给用户一个真网站但带假网站重定向的连接,如:http://www.a.com/do-something?next=http://www.b.com,然后让用户登录,这时就可以轻易的获取到用户的账号密码
关于重定向漏洞更多可以参考:
https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html
作者:admin 创建时间:2025-02-10 16:31
最后编辑:admin 更新时间:2025-05-15 17:13
最后编辑:admin 更新时间:2025-05-15 17:13