2018Web攻防训练营CSRF漏洞Token防御介绍www.itjc8.com1.漏洞修补逻辑分析2.简单代码模型分析3.生成Token代码分析4.使用Token进行CSRF漏洞防御课程内容01漏洞修补逻辑分析漏洞修补逻辑分析CSRF漏洞实质:服务器无法准确判断当前请求是否是合法用户的自定义操作。如果服务器在用户登录之后给予用户一个唯一合法令牌,每一次操作过程中,服务器都会验证令牌是否正确,如果正确那么执行操作。不正确不执行操作。一般情况下,给予的令牌会写入表单中隐藏域的value值中,随着表单内容进行提交。02简单代码模型分析简单代码模型分析登录验证login.php登录后执行操作(增删改查)没有登录成功执行操作自动跳回登录登录成功执行操作,操作故工程中有cookie提交的身份凭证远程构造CSRF利用POC,那么直接中招。如果利用在增删改中设置唯一令牌,执行操作时只有提交令牌才能操作的话,就可以有效防止CSRF。如果令牌不正确,那么不执行操作。并给出提示内容。登录成功后,给与唯一令牌增删改部分给与令牌,并在提交操作时,提交令牌并进行验证。一般情况下,使用表单hidden进行提交,或者Cookie。03生成Token代码分析生成Token代码分析Token作为识别操作是否是当前用户自己操作的唯一凭证,需要设置为复杂难以被破解的内容。例如:functiongenerateToken(){$salt=“test”.date("Y/m/d");出现问题$token=md5($salt);return$token;}调用函数查看生成的token04使用Token进行CSRF漏洞防御使用Token进行CSRF漏洞防御1、登录验证成功之后,在会话SESSION[“user_token”]中保存Token。2、在后台操作中,增删改表单中添加隐藏域hidden,设置value为Token。3、提交之后进行验证Token是否正确。简化代码演示:Token验证过程,从实践中理解Token防御CSRF的过程。1.漏洞修补逻辑分析2.简单代码模型分析3.生成Token代码分析4.使用Token进行CSRF漏洞防御总结再见欢迎关注Web安全训练营课程