用户
搜索

[web安全] 存储xss挖掘经验

  • TA的每日心情
    慵懒
    2021-1-27 10:19
  • 签到天数: 14 天

    连续签到: 5 天

    [LV.3]经常看看I

    i春秋-脚本小子

    Rank: 2

    1

    主题

    17

    帖子

    235

    魔法币
    收听
    0
    粉丝
    0
    注册时间
    2018-1-29
    发表于 2021-1-24 12:58:17 710676

    结合这几天挖掘的src xss稍微总结一下存储xss的挖掘经验

    出现位置

    一般都是有框就X 例如站内信功能 评论功能等个人喜欢先填写一个<img src=1>看看解析不解析img标签 或者实体编码 进行判断xss的存在,有些厂商一般不会ban img a这种标签,只会ban alert,或者onclick,onload,onerror这种事件属性,

    有些地方会进行一个前台校验输入是否合法 但是后端没有进行判断,例如下图

    image.png

    image.png

    我们就可以在前台输入一个正常的数据例如aaa都可以

    然后抓包修改 就可以进行绕过

    或者还有一些地方有输入长度限制,可以f12修改一下maxlength看看输入payload之后提交后能不能正常的进行保存 如果能进行保存成功的话那就又是前端校验

    或者通过事件进行缩短payload

    payload的绕过

    https://www.cnblogs.com/H4ck3R-XiX/p/12732356.html

    我觉得这篇文章是一篇不错的总结

    如果输入一个很明显是有害的payload如:<script>alert('xss')</script之类的可能会将script alert这类危险字符进行一个分割或者加点之类的image.png

    这里script被分割 无法触发payload

    image.png

    这里用点进行了分割

    这时候我们可以进行一个编码绕过

    例如<a href=javascript:alert(/xss/)>aaaa

    至于编码绕过上面这篇文章已经总结的很详细了。

    image.png

    如何触发payload?

    耐心很重要,例如上面的一个例子 我将自己的姓名修改为xss payload发现并没有解析 差点让我痛失一个中危- -

    后面我发现这个站有评论功能 我奇怪的发现当我随便评论一个东西的时候 他解析了img标签 也就是说评论时是带姓名来评论的 而这里又没有任何的过滤 可以说是形成了一个二次xss吧

    image.png

    接下就只需要将payload替换成弹窗或者引入外部js什么的 就能直接起飞了 因为这个位置没有任何的过滤

    还有一种常见的就是厂商在前台进行了校验 而忽略了后台的校验

    例如 我一般喜欢用两个账号测试xss 一个账号发布 然后另一个账号测试 在评论处输入payloadimage.png

    是没什么反应的 但是当我进入发布者的后台时候发现弹窗了

    image.png

    这样一个存储xss也就到手了

    总之就是多去测试 尽量寻找可能触发payload的地方 遇到实体编码的地方就可以去寻找其他一些可能触发payload的位置
    文笔垃圾,不足之处欢迎师傅们指点和纠正。

    大一的菜狗罢了
    发表于 2021-1-25 10:38:35
    总之就是多去测试 尽量寻找可能触发payload的地方 遇到实体编码的地方就可以去寻找其他一些可能触发payload的位置,get!
    使用道具 举报 回复
    自信点 其实你写的很棒啦  不过需要写的在详细点  多写几个简单的小例子 可能会更好啦
    说起来 前几天我做了几个站点的XSS测试的时候,说来挺巧的    正好触发了两个payload  我拿出来分享一下
    第一个 绕过简单的waf(对?做了过滤)php 一句话
    aaaa"</b><script> document.write("?--><?php   echo 'hello world!'; ?><--?")</script><b>
    第二个 (这个挺鸡肋的)
    bbb"</b><input type="button" onclick="opencmd()" value="云里雾里!"/><script>function opencmd() { var  cmd = new ActiveXObject("WScript.Shell"); cmd.run("cmd.exe /k whoami") }</script><b>

    pass:要是有更好的用法 还请赐教咯
    使用道具 举报 回复
    使用道具 举报 回复
    发表于 2021-1-25 16:43:28
    厉害了师傅们
    使用道具 举报 回复
    发表于 2021-1-25 16:52:52

    厉害了师傅们
    使用道具 举报 回复


    厉害了师傅们
    使用道具 举报 回复
    发表于 2021-2-23 15:07:15
    文章写得不错,加村长QQ:780876774,有礼品!
    让我们一起干大事!
    有兴趣的表哥加村长QQ:780876774!
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册