V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
ericgui
V2EX  ›  JavaScript

我竟然无意中在尝试攻击别人家的网站,真尼玛醉了

  •  
  •   ericgui · 2017-02-27 11:01:16 +08:00 · 9170 次点击
    这是一个创建于 2824 天前的主题,其中的信息可能已经有所发展或是发生改变。
    兄弟门,我刚才发现我无意中竟然尝试在攻击别人的网站。

    刚才我特别想把一个网站的 textarea 的 value ,不用手动输入, 而是传一个字符串。

    document.getElementById("").value = "AAA"

    我搞了半天想直接让对方网站执行这一行代码,这在浏览器这边,用 F12 里的 console 是可以设置那个 textarea 的 value 。
    但如果直接通过程序执行这个代码,那不就是让别人网站执行你的 JS 代码吗?那不就能获取到包括 cookie 在内的一些敏感信息了么?
    搞了半天才意识到这是有问题的
    幸好没成功。

    这是叫做 XSS 注入攻击吧?有搞网络安全的高人指点一下么?


    好吧,如果不这样做,怎么才能改变这个 textarea 的 value 呢?
    第 1 条附言  ·  2017-02-27 11:47:19 +08:00
    @kulove 我其实就是想说,我希望能够把一个网页提供的服务,做成 API ,这个网页有一个 input textarea ,需要手动输入,然后点击按钮 submit 。

    我就特别希望把需要手动输入的 input textarea ,不要手动了,而是使用 post 等方法,传一个值进去,再点击这个 button 。

    搞了半天没成功。我意识到这样搞可能是在攻击别人。

    至于 console 里写那一行代码,是调试。看这行代码能不能行确定改变这个 textarea 的 value 。
    57 条回复    2017-03-01 22:40:40 +08:00
    lianz
        1
    lianz  
       2017-02-27 11:06:26 +08:00   ❤️ 8
    小学生放学了? 先补补语文再去学习 JS 吧, 毕竟语文数学英语都是必修基础课.....
    j4fun
        2
    j4fun  
       2017-02-27 11:08:05 +08:00   ❤️ 2
    上帝将智慧洒满人间 你却撑起了伞╮(╯▽╰)╭
    ericgui
        3
    ericgui  
    OP
       2017-02-27 11:08:53 +08:00
    @lianz 我不懂就来问,你这样何苦呢。你出生就是 CS 本科毕业?
    hiboshi
        4
    hiboshi  
       2017-02-27 11:08:57 +08:00
    是 XSS ,但是一般都是 进行过滤的。 获取 cookie 算小的,如果能执行 sql 直接 drop 掉数据库。
    yzmm
        5
    yzmm  
       2017-02-27 11:09:03 +08:00
    /><script>alert('楼主领盒饭');</script><
    wenymedia
        6
    wenymedia  
       2017-02-27 11:09:18 +08:00 via Android
    楼主 要在电脑旁边插上三支香 才可以这个值
    ericgui
        7
    ericgui  
    OP
       2017-02-27 11:09:22 +08:00
    @j4fun 借点你的智慧呗。我的不够用。
    hiboshi
        8
    hiboshi  
       2017-02-27 11:09:37 +08:00   ❤️ 2
    @lianz 何苦呢?你难道不是这样过来的?
    imlonghao673
        9
    imlonghao673  
       2017-02-27 11:11:37 +08:00 via Android
    Greasemonkey
    imlonghao673
        10
    imlonghao673  
       2017-02-27 11:12:04 +08:00 via Android
    删掉空格
    polun
        11
    polun  
       2017-02-27 11:14:13 +08:00   ❤️ 6
    支持楼主探索,
    说风凉话的有意思吗?
    fy
        12
    fy  
       2017-02-27 11:14:35 +08:00
    楼主,别人的网站从未自己执行过网页上的 JS ,都是你的浏览器在执行。包括你自己在 console 写上去的代码。
    yesicoo
        13
    yesicoo  
       2017-02-27 11:17:09 +08:00
    五十笑百
    huijian222
        14
    huijian222  
       2017-02-27 11:17:26 +08:00
    如果对方网站没过滤确实是能这样的 不过楼主你在 console 里面。。。 怎么改都是在单机啊
    ericgui
        15
    ericgui  
    OP
       2017-02-27 11:17:50 +08:00
    @fy 我靠你说的对啊。我把自己绕进去了。
    jarlyyn
        16
    jarlyyn  
       2017-02-27 11:18:50 +08:00
    这个一般都是搞搜索页。

    因为搜索页会生成有一个带参数的链接,可以转发给其他人。
    Deardrops
        17
    Deardrops  
       2017-02-27 11:19:46 +08:00
    /><script>alert('楼主领盒饭');</script><
    ericgui
        18
    ericgui  
    OP
       2017-02-27 11:20:23 +08:00
    @huijian222 我想通过写几行代码,让对方服务器执行这行代码。结果发现不成功。在自己 console 里试了试,可以。现在才发现我把自己绕进去了。
    Phariel
        19
    Phariel  
       2017-02-27 11:20:37 +08:00 via Android
    我以为我穿越了 上回看到这种问题是在七八年前的建站论坛里。。。
    ericgui
        20
    ericgui  
    OP
       2017-02-27 11:20:53 +08:00
    @hiboshi 谢谢解答和支持
    ericgui
        21
    ericgui  
    OP
       2017-02-27 11:21:30 +08:00
    @Phariel 那有什么, JavaScript 学的水的人多了去了,你现在就遇到了一个:)
    Shieffan
        22
    Shieffan  
       2017-02-27 11:22:18 +08:00   ❤️ 1
    标题上加个 「震惊!」 更有说服力些。
    bianhua
        23
    bianhua  
       2017-02-27 11:22:44 +08:00   ❤️ 2
    记得很久以前的时候,我学着用 FontPage 做网页。做好了之后用 IE 打开了网站首页开始欣赏了起来。由于之前没上过网,那个网站就成为了唯一一个我能浏览的网站了。

    一个意外的右击让我发现了“查看页面源代码”这个菜单项,点击之后弹出了一个记事本,里面是一些代码,中间夹杂着我网页中的文字。

    由于好奇,我更改了其中一些文字,然后保存了那个文件,关掉了记事本,刷新了一下我的网页,神奇的一刻出现了:我更改的内容竟然出现在了网页上!!

    “看来 IE 的安全性很差真的是名副其实啊,竟然能让浏览者随意更改网页的内容”,我当时心想。
    ericgui
        24
    ericgui  
    OP
       2017-02-27 11:23:53 +08:00
    @Shieffan 那我应该去 UC 应聘了
    ihciah
        25
    ihciah  
       2017-02-27 11:25:31 +08:00 via iPhone   ❤️ 1
    @bianhua 震惊!用 F12 竟能修改 google 首页!😂
    zhaoace
        26
    zhaoace  
       2017-02-27 11:27:40 +08:00   ❤️ 5
    有些基本概念可能需要厘清一下。

    1. 浏览器的 console 的 document 改的是什么?
    2. 浏览器和对方服务器是怎么交互的?
    3. XSS 攻击的几个条件。


    我也是二把刀,只能讲下自己的理解。
    1. console 这里改动的都是你客户端本地机器渲染出来的内容。你可以用脚本去 setValue ,但是这都是你本地浏览器里的内容,和对方服务器无关。
    2. 浏览器和服务器交互一般来说是页面的 http get/post 这个样子,再多一层就是 ajax 的 http get/post 。虽然有 socket 之类的应该不是你想问的内容。在你的例子里,你的改动不经过 http 请求是发不到服务器端的,所以也不存在攻击了别人网站这回事情。
    3. XSS 攻击要求 a.把你的脚本上传到服务器上, b. 别人读取服务器内容是顺便读取了你上传的脚本, c.别人的浏览器执行了你的脚本。 这样造成的结果就是别人不知情的情况下用他的浏览器运行了你的脚本,是为跨站+脚本+攻击。同样,在你的例子里,你的 Scripts 没有传到服务器上别人是读不到你的 Scripts 的,同时你的脚本没有攻击性,所以既不是跨站,也不是脚本攻击,和 XSS 没有关系。。。


    我觉得大家吐槽大概是觉得这些东西解释起来太麻烦了吧。。。应该不是恶意的。。。

    我为啥这么闲的蛋疼解释呢?因为我年假快过期了今天在家里蹲着休假呀!
    coderluan
        27
    coderluan  
       2017-02-27 11:27:49 +08:00   ❤️ 1
    #1 说话确实不好听,但是道理没有错,发帖子确实应该有些技巧,这个和初学者无关。

    你那么多话其实就用一句就能概括:

    [console 执行 document.getElementById("").value = "AAA" 是否算 XSS 注入]
    bombless
        28
    bombless  
       2017-02-27 11:29:31 +08:00
    小学计算机课上我曾经兴冲冲地跟旁边的同学说这个“发现”
    当时不记得是 IE4 还是什么,没有什么 F12 ,就是一个查看源代码还是叫什么的按钮
    然后我把代码用记事本打开,另存为……
    同学都善意地指出我只是保存到自己电脑了, 233
    ericgui
        29
    ericgui  
    OP
       2017-02-27 11:29:37 +08:00
    @coderluan 谢谢。
    laukwanchan
        30
    laukwanchan  
       2017-02-27 11:35:14 +08:00 via iPhone   ❤️ 2
    请多点宽容。至少我觉得楼主还没到要我们冷嘲热讽或者恶言的地步。
    kulove
        31
    kulove  
       2017-02-27 11:35:44 +08:00
    写的太乱,表述不清楚。
    quicknight
        32
    quicknight  
       2017-02-27 11:36:49 +08:00
    这种表述能力你可以告别这一行了。。。
    hlg002
        33
    hlg002  
       2017-02-27 11:38:57 +08:00
    XSS 。我用这方法偷 cookie ,进入了很多钓鱼网站的后台
    ericgui
        34
    ericgui  
    OP
       2017-02-27 11:42:09 +08:00
    @quicknight 那但愿你在这一行干的久一点,写代码到 70 岁吧。
    ericgui
        35
    ericgui  
    OP
       2017-02-27 11:47:22 +08:00
    @kulove 我其实就是想说,我希望能够把一个网页提供的服务,做成 API ,这个网页有一个 input textarea ,需要手动输入,然后点击按钮 submit 。我就特别希望把需要手动输入的 input textarea ,不要手动了,而是使用 post 等方法,传一个值进去,再点击这个 button 。搞了半天没成功。我意识到这样搞可能是在攻击别人。至于 console 里写那一行代码,是调试。看这行代码能不能行确定改变这个 textarea 的 value 。
    stabc
        36
    stabc  
       2017-02-27 11:54:33 +08:00   ❤️ 3
    1L 说的并不是技术问题,而是语文能力。
    说话之前要先想一下,把语言组织好,方便别人理解,这也是对别人的尊重。
    kulove
        37
    kulove  
       2017-02-27 11:56:33 +08:00
    @ericgui #35 做成 API post 的话不属于攻击的。

    至于攻击要看你输入的值是什么了,输入 html 标签可能是 xss ,输入 sql 就是 sql 注入了。
    ericgui
        38
    ericgui  
    OP
       2017-02-27 12:00:18 +08:00
    @kulove 谢谢指点!
    stillkam
        39
    stillkam  
       2017-02-27 12:12:18 +08:00
    @ihciah 大神好厉害!
    lovelynn
        40
    lovelynn  
       2017-02-27 12:18:59 +08:00
    xss (跨站脚本执行)是服务端漏洞( dom xss 略微有些不同),你也可以理解成 js 注入,你的输入导致服务端返回的 js 注入了你的 js 代码 所以先谷歌一下还是比较好的
    40huo
        41
    40huo  
       2017-02-27 12:19:04 +08:00
    F12 的不算 XSS 的。
    26 楼说的更多的是存储型的 XSS ,多见于留言板等功能处,将形如
    </textarea><script>alert(document.cookie)</script><textarea>
    的 payload 写入服务器的数据库,如果成功的话,任意人查看该页面时都会弹框。
    还有反射型的 XSS ,是服务器将 get 的参数未经过滤直接嵌入了页面代码,因此可以构造形如
    http://www.bug.com/index.php?search="'><script>alert(document.cookie)</script>
    的 payload ,将 URL 发送给受害者,受害者点击后其浏览器会弹窗。
    neilwong
        42
    neilwong  
       2017-02-27 12:30:22 +08:00
    为什么感觉这个帖子萌萌哒
    xxfan
        43
    xxfan  
       2017-02-27 12:32:21 +08:00
    弱弱说句..我们现在的项目里就没有防 xss..隔三差五有点小 bug(非恶意).. 幸亏不是 toB 的工程..
    jiangzhuo
        44
    jiangzhuo  
       2017-02-27 12:40:47 +08:00
    CS 本科毕业并不知道什么是 XSS 什么是
    我们网络安全是选修然而我并没选,但是数学语文英语是必修
    jason19659
        45
    jason19659  
       2017-02-27 12:49:46 +08:00
    @ihciah #25 66666666666
    lwbjing
        46
    lwbjing  
       2017-02-27 13:35:32 +08:00
    @bianhua 我特么也是这么走上不归路的。。。至今已经十二三年了。。
    skylancer
        47
    skylancer  
       2017-02-27 15:44:41 +08:00
    今天 v2 怎么这么多人开嘲讽的
    说的好像自己没彩笔过似的
    henneko
        48
    henneko  
       2017-02-27 17:20:42 +08:00 via Android
    建议理解区分一下客户端,服务端
    whimsySun
        49
    whimsySun  
       2017-02-27 18:38:39 +08:00
    看了楼主以往的帖子,楼主真心很幽默
    ETO
        50
    ETO  
       2017-02-27 20:21:40 +08:00
    lz 真的好萌唉。
    Aixtuz
        51
    Aixtuz  
       2017-02-27 21:10:55 +08:00
    1# 虽然话不好听,但人家并没吐槽什么 CS 知识,人家吐槽的是 “语言表达”。
    连最基本的语句通顺都做不到,你要别人怎么拿出认真的态度回应你。
    j8sec
        52
    j8sec  
       2017-02-28 00:28:57 +08:00
    self-xss, sb
    SourceMan
        53
    SourceMan  
       2017-02-28 09:51:31 +08:00
    1# 说话虽然带着嘲讽,但是点出了楼主真正的问题所在
    楼主应该从里面知道自己的不足,而不是埋怨别人为什么要嘲讽自己。

    真正讨厌的是那种无脑喷、目中无人、带家人骂人的那群人。
    allenyang89
        54
    allenyang89  
       2017-02-28 10:32:37 +08:00
    想到个笑话,小时候上网,有个朋友和我说‘你看网页的时候不要老用鼠标框那些文字,这样影响别人(网上同样浏览这个网页的人)看的’
    stabc
        55
    stabc  
       2017-02-28 10:51:49 +08:00
    我才发现那个“红轴 THINKPAD ”也是出自 LZ 之手。如果 LZ 不是故意卖萌,那就真的是天然激萌啊哈哈
    lianz
        56
    lianz  
       2017-02-28 11:29:14 +08:00
    @ericgui 那个楼主...我错了, 向你道歉.

    顺便给你介绍个 Chrome 插件, 应该可以完美满足你的需求.
    插件名字: Autofill

    @hiboshi 也向你道歉.
    chiv2
        57
    chiv2  
       2017-03-01 22:40:40 +08:00
    楼主,建议你先去学点网络基础,不会浪费时间的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5649 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 02:39 · PVG 10:39 · LAX 18:39 · JFK 21:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.