实验目的
掌握POST型CSRF基础知识
实验原理
管理员点击恶意链接,密码被修改
实验内容
POST型CSRF漏洞
实验环境描述
带有CSRF漏洞的注册登录系统
实验步骤
登录密码
用户名为 root 密码 toor
打开apache2
首先,双击,kali左侧快捷栏,从上往下数第二个图标,从而打开终端,之后,输入 service apache2 restart 并回车,如出现下图所示情况,即apache启动成功。
打开mysql
继续输入service mysql start并回车,如出现下图所示情况,即mysql启动成功
注册账户
双击kali左侧快捷栏从上往下数第一个图标,打开kali自带浏览器,在上面的地址栏中输入如下的地址
http://127.0.0.1/index.html
选择快速注册,填写相关信息后即可注册成功
登录账户
注册后点击登录跳转至登录页面,输入用户名密码即可登录
低级别POST型CSRF
查看源代码
双击,kali左侧快捷栏,从上往下数第三个图标,打开文件管理,进入目录 /var/www/html/chpasswd,打开low_post.php
可以看到这里使用了$_REQUEST
来获取参数,这样get和post的数据都能够处理
点击恶意链接
在浏览器新开一个页面,在地址栏中输入http://127.0.0.1/exploit/low_post_exp.html
,模拟管理员点击恶意链接的操作
进入页面后右键点击View Page Source可以查看网页源代码,可以看到底部有一个
<img src=http://127.0.0.1/csrf/low_post.php?new_pass=123456&conf_pass=123456>
相当于管理员访问了这个链接,密码会被修改为123456
再一次登录
这时回到原来的页面,点击注销,登陆时可以发现原先的密码不对了,密码变为了123456
为方便后面的学习,可以点击修改密码将密码修改回去
高级别POST型CSRF
查看源代码
双击,kali左侧快捷栏,从上往下数第三个图标,打开文件管理,进入目录 /var/www/html/chpasswd,打开plus_post.php
点击恶意链接
在浏览器新开一个页面,在地址栏中输入http://127.0.0.1/exploit/plus_post.html
,模拟管理员点击恶意链接的操作
进入页面后右键点击View Page Source可以查看网页源代码,可以看到构造了一个post类型的表单
相当于管理员发送了这个post数据,密码会被修改为123456
再一次登录
这时回到原来的页面,点击注销,登陆时可以发现原先的密码不对了,密码变为了123456
完美防御
双击,kali左侧快捷栏,从上往下数第三个图标,打开文件管理,进入目录 /var/www/html/chpasswd,打开impossible_ch.php
可以看到使用了post方式传递数据,并使用了checkpass
函数检测原有密码是否正确
此时就比较安全了