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

2017-02-27 11:01:16 +08:00
 ericgui
兄弟门,我刚才发现我无意中竟然尝试在攻击别人的网站。

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

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

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

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


好吧,如果不这样做,怎么才能改变这个 textarea 的 value 呢?
9205 次点击
所在节点    JavaScript
57 条回复
ericgui
2017-02-27 11:21:30 +08:00
@Phariel 那有什么, JavaScript 学的水的人多了去了,你现在就遇到了一个:)
Shieffan
2017-02-27 11:22:18 +08:00
标题上加个 「震惊!」 更有说服力些。
bianhua
2017-02-27 11:22:44 +08:00
记得很久以前的时候,我学着用 FontPage 做网页。做好了之后用 IE 打开了网站首页开始欣赏了起来。由于之前没上过网,那个网站就成为了唯一一个我能浏览的网站了。

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

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

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

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
2017-02-27 11:27:49 +08:00
#1 说话确实不好听,但是道理没有错,发帖子确实应该有些技巧,这个和初学者无关。

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

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

至于攻击要看你输入的值是什么了,输入 html 标签可能是 xss ,输入 sql 就是 sql 注入了。
ericgui
2017-02-27 12:00:18 +08:00
@kulove 谢谢指点!
stillkam
2017-02-27 12:12:18 +08:00
@ihciah 大神好厉害!
lovelynn
2017-02-27 12:18:59 +08:00
xss (跨站脚本执行)是服务端漏洞( dom xss 略微有些不同),你也可以理解成 js 注入,你的输入导致服务端返回的 js 注入了你的 js 代码 所以先谷歌一下还是比较好的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX