CSRF(get)
输入账号密码登录 kobe/123456
点击修改信息
修改信息后点击submit提交按钮并抓包
抓包后将GET这条改动一下
将
GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=123456&add=henan&email=111%40qq.com&submit=submit HTTP/1.1
改为
GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=555555&add=henan&email=111%40qq.com&submit=submit HTTP/1.1
之后添加补全URL地址,发送给被攻击者
http://127.0.0.1:8008/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=555555&add=henan&email=111%40qq.com&submit=submit HTTP/1.1
若此时的cookie/session没有过期,信息被修改
CSRF(POST)
同样先登陆进来
点击修改个人信息,点击提交按钮并抓包
右键->Engagement Tools->Generate CSRF Poc
可以自己,建一个表单,让被攻击者点恶意站点表单的URL
通过表单的URL去向存在CSRF漏洞的页面去提交POST请求
将内容修改一下
将内容复制进一个记事本,改为.html
当我们点击Submit request
信息被更改
CSRF Token
点击修改信息提交按钮后抓包
两次提交的token值不一样,每次刷新后token值都会发生变化
Token防CSRF的方法:每次请求,都增加一个随机码,后台每次对这个随机码进行验证
增加token验证(常用的做法):
1,对关键操作增加token参数,token值必须随机,每次都不一样;
关于安全的会话管理(避免会话被利用):
1,不要在客户端端保存敏感信息(比如身份认证信息);
2,测试直接关闭,退出时,的会话过期机制;
3,设置会话过期机制,比如15分钟内无操作,则自动登录超时;
访问控制安全管理:
1,敏感信息的修改时需要对身份进行二次认证,比如修改账号时,需要判断旧密码;
2,敏感信息的修改使用post,而不是get;
3,通过http头部中的referer来限制原页面
增加验证码:
一般用在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)