xss--ctf,绕过,修复

这个是获取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删掉

它的格式大概就是这样

然后搜素源码

第四种,转义字体(转义<)

相关推荐

  1. XSS方法总结

    2024-03-17 06:52:04       58 阅读
  2. xss相关知识点与思路总结

    2024-03-17 06:52:04       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 06:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 06:52:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 06:52:04       82 阅读
  4. Python语言-面向对象

    2024-03-17 06:52:04       91 阅读

热门阅读

  1. Dart学习相关

    2024-03-17 06:52:04       42 阅读
  2. 常用图像滤波器,图像增强

    2024-03-17 06:52:04       37 阅读
  3. MVCC(多版本并发控制)原理实现

    2024-03-17 06:52:04       44 阅读
  4. 计算最长的字符串长度

    2024-03-17 06:52:04       41 阅读