csrf攻击学习
原理
csrf又称跨站伪造请求攻击,现代网站利用Cookie、Session 或 Token 等机制识别用户身份,一旦用户访问某个网站,浏览器在之后请求会自动带上这些信息来识别用户身份。用户在网站进行请求或者操作时服务器会给出对应的内容,比如说用户查询自己的个人信息,或者用户在一个网站进行资金转移的操作等等,网站得到用户的请求时带着上面提到的识别身份的信息,例如用户访问了攻击者搭建的恶意网站,在网站中有一些伪造的恶意操作比如说转账,用户点击了这个请求,使用了这个恶意操作,导致用户的浏览器向刚刚确认完身份的网站再次发送转账请求,那么网站就会认定用户的身份不会进行过多验证的去进行转账操作。
通过上面的了解,我们进行csrf注入用户身份是至关重要的,所以一般要避免csrf漏洞也是在这方面下手,一些过滤也是在这里进行;在诱导用户进行恶意操作时,我们也需要做出一些看似善意的界面,比如说一个把转账功能的超链接名称设置成带有迷惑性的字句‘领取礼包’之类;在构造恶意请求时通过使用get或post类似这样的请求http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
这个请求的样子太容易读懂,我们需要对他进行一些改变,例如把他变成一个短链接
当然也有一些过滤手法,我们使用dvwa靶场来看看吧
dvwa靶场
low(get传参)
修改密码为1
修改成功,url栏有变化,里面有修改的信息
说明时get传参,我们可以自己修改url栏中的信息达到任意修改的效果,我们先测试一下现在的密码是不是1
现在我们通过url栏修改密码成2
测试是否成功
我们抓一下这个包
使用工具将它修改成csrf poc
复制html代码
生成一个html文件,如果我们不在打开dvwa靶场的浏览器打开这个html文件,请求不会成功因为没有身份验证
但如果我们在打开靶场的浏览器打开这个文件
点击发送请求就会直接修改成功
这是最基础的csrf注入,更进一步的可能对referer、cookie等等身份信息有验证这些就等到遇到再进行学习吧。