在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户(服务端受信任用户)进行点击,用户一旦点击了这个请求,会造成用户不情愿请求被受理。
1.敏感信息的修改时需要对身份进行二次认证,比如修改账号时,需要判断旧密码
2.敏感信息的修改使用post,而不是get
3.通过http头部中的referer或自定义来限制原页面
4.一般用在登录,密码修改 ,也可以用在其他重要信息操作的表单中增加验证码校验
5.对关键操作增加token参数,token值必须随机,每次都不一样
代码分析
后端代码在修改信息仅校验是否为空,无token等校验检查
1.可尝试CSRF攻击
2.信息被更新到数据库,可尝试存储型XSS
漏洞利用
1.CSRF
创建信息修改信息,GET请求构造url即可
1.1登录vince,点击修改资料,抓取数据包
1.2构造url
#http://192.168.4.32/pikaqiu/vul/CSRF/CSRFget/CSRF_get_edit.php?sex=ceshi&phonenum=18626545453&add=chain&email=vince@pikachu.com&submit=submit
1.3登录kevin,点击构建的url,信息被修改
2.XSS
测试语句打一圈
触发
代码分析
后端代码在修改信息仅校验是否为空,无token等校验检查,同理
1.可尝试CSRF攻击
2.信息被更新到数据库,可尝试存储型XSS
漏洞利用
1.登录vince修改个人信息抓取数据包构造CSRF表单
2.allen登录,点击CSRF表单提交
3.修改成功,并含触发XSS
代码分析
后端代码增加了token防御
Token生成随机不可猜解