CSRF例会靶场练习
Lab1: CSRF vulnerability with no defenses
攻克靶场



进去登录,随便输一个email来update email,打开BurpSuite,打开HTTP历史记录
找到改email的记录,右键它,找到CSRF PoC

他可以根据我们的 post 表单中的信息自动生成一个CSRF的poc,直接复制下面的HTML就好了


复制到这里,改一下邮箱就解决了
修补建议
使用CSRF token
为每个用户会话生成一个唯一的、随机的CSRF Token,并将其嵌入表单或请求头中。服务器在处理请求时,验证该Token是否有效。
Lab2: CSRF where token validation depends on request method
攻克靶场
按上一个的步骤继续

到这一步时发现下面多了一个csrf,生成PoC试试
没有解决。放重放器试试看看
发现如果改了csrf就会提示”Invalid CSRF token”
这道题可以更改请求方式,这样就不会被检测令牌,再生成Poc就可以成功了
修补建议
GET请求也有检测令牌
Lab3: CSRF where token validation depends on token being present
前面的过程一样

生成PoC,这里的依然有csrf,尝试删除
1 | |
可以,通过
Lab4: CSRF where token is not tied to user session
这道题题目给了两个账号
这道题的原因是某些应用程序不会验证令牌是否与发出请求的用户属于同一会话,所以可以用没有用过的令牌去csrf

现在其中一个账号随便换一个邮箱,拦截下来

将 csrf 令牌复制下来,然后丢弃,这样的令牌就是全新未使用的。
&csrf=XlFjr4ghhAisRwfhBkRjkP2lmtqDQux8
开一个无痕窗口登另一个账户

随便换一个邮箱,和之前一样步骤生成PoC
把令牌换成刚刚复制下来的
这样就解决了
Lab5: CSRF where token is tied to non-session cookie
登两个账号

修改邮箱看看历史记录

看到有 email , csrf 还有两个cookie,session是用户的登录cookie,csrfkey就是和csrf绑定的,于是可以采用和Lab4一样的方法。
见鬼了,过不了,不知道为什么
Lab6: CSRF where token is duplicated in cookie
等待……
CSRF例会靶场练习
http://example.com/2025/03/20/CSRF例会靶场练习/