这个是获取cookie的js代码
这个是自动跳转地址
ctf
先看看能不能进行跨站‘
发现可以产生弹窗
我们在自己的服务器上写这些
然后这个是payload
然后机器人就会自己访问
第二关(过滤了script)
发现 这个标签没有过滤img 为错误是就触发“xss"
然后发现 还是不行
所以尝试换成Body还有input(但发现只有input才可以,所有尽量使用onload)
第三关(过滤了空格和<)
可以用/代替空格
(这些都是反射性)
存储型
第四关
直接写,查看后台就可以得到cookie
第五关
密码改成js语句,然后后台访问数据库,就会获取管理员的 cookie
然后将管理员的cookie复制给自己的cookie,然后再访问
第六关
模仿上道题的流程,但是当我们改变cookie之后
因为它这个cookie变化的很快,刚获取就失效了
所有获取cookie比较难,所有我们决定通过获取页面的源代码来获取flag
查看页面的前端代码,发现密码都会发送给它这个class
发送就饿可以获得flag
第七关
发现多了一个修改密码,当我处于登录状态,去修改这个密码,然后抓个包,就会发现,它回去访问这个网站,它会随着url的改变而改变
当我们将这个跳转代码写到上面,就会让它自动跳转到这个修改密码的网站,就可以达到修改密码的目的
这样就可以登录管理员了
用这种比较好,因为他不会自动跳转到那个修改密码的地址,之前的那个,当管理员打开那个数据库,就会直接跳转,就可能被发现
第八关
同样也可也修改密码,但不一样的是它变成了post来修改数据包
(123是密码,以前是get直接访问就行,所有我们就需要js语句来实现post直接提交)
防御
第一种,代码过滤,用特定的函数
第二种httponly
是你无法盗取cookie
全局
单独文件限制
这就无法盗取cookie中的session
第三种
csp
假设我将跨站代码写道文件的上面
然后刷新这个页面,它会加载,但是不会发送,无法外放出去
这种情况必须得把csp删掉
它的格式大概就是这样
然后搜素源码
第四种,转义字体(转义<)