CSRF(Cross-site request forgery)
程序开发
2023-09-23 12:17:55
CSRF
什么是CSRF
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
利用方法
index.jsp
CSRF Test
TransferServlet
@WebServlet("/Transfer")
public class TransferServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String target = request.getParameter("target");String money = request.getParameter("money");PrintWriter writer = response.getWriter();writer.println("target:"+target+",money:"+money);}
}
hack.html
csrf hack
正常流程如下:
输入转账账户和金额进行转账
转账成功
但是如果直接访问工作者伪造的网址则直接转账成功
通过以上例子,攻击者通过构造请求包,诱导用户点击导致直接转账成功。
这个例子中没有用到cookie判断用户身份,因为cookie对于csrf相当于不存在的,浏览器会自己提交cookie上去进行身份验证。我们登陆网站后,网站会给我们个cookie,当用户对网站进行操作的时候,浏览器会直接带上当前网站的cookie,但是如果该网站存在csrf,攻击者构造了请求,当你点击后,浏览器也会带上目标网站的cookie。
进阶
防御
想要防御csrf就要想办法让攻击者构造不了所有的参数。
标签:
上一篇:
javascript回到顶部
下一篇:
相关文章
-
无相关信息