各位前端注意浏览器地址栏也是一个输入框

2023-05-27 16:46:56 +08:00
 liuqiongyu889

做前端的都知道不要相信每个输入框的内容,我真没想到浏览器地址栏也是一个输入框,然后就被搞了。 记录下整个过程:

没想到我也被黑产摆了一道

5304 次点击
所在节点    程序员
29 条回复
shansing
2023-05-27 16:57:07 +08:00
我还以为有啥浏览器 API 可以直接拿地址栏的参数。像这种 url param 难道不本来就要防范 XSS 注入吗?
binaryify
2023-05-27 17:01:36 +08:00
这跟输入框啥关系,不就是 url params 防范 XSS
xmumiffy
2023-05-27 17:01:52 +08:00
我还以为你要说直接在地址栏输入 JavaScript 命令呢
Exdui
2023-05-27 17:10:02 +08:00
@shansing #1 是需要防范 XSS ,但这些广告信息看起来不像 XSS
vevlins
2023-05-27 17:22:17 +08:00
url xss 注入,shopify 外贸站重灾区,黑产 seo 常见套路。
IvanLi127
2023-05-27 17:46:42 +08:00
这。。。你这好像和前端没关系呐?
oldshensheep
2023-05-27 18:03:20 +08:00
可能很多人没看懂楼主发的东西,这其实不是 XSS ,我一开始也没看懂,后来懂了。
他是把 URL 里面的查询参数先显示在页面上再去查询的,然后页面上就多了很多无关的东西。

后来他改造了一下,先去用参数查询,然后再显示结果,如果没有结果就显示 404 而不是先显示查询参数。

但是其实没改造好,我去网站看了一下,查询一个存在的 tag 会先显示 404 然后再显示正常的结果

而他这个显示查询参数是不存在 XSS 漏洞的,因为现代框架都会处理的,除非你用 Vue 中的 v-html 或者 React 中的 dangerouslySetInnerHTML ,但是楼主显然不会这么傻。
leonshaw
2023-05-27 19:01:59 +08:00
这难道不是搜索引擎的算法问题?
1521815837
2023-05-27 19:17:31 +08:00
外链自动 nf 不就可以了?
vivipure
2023-05-27 19:18:39 +08:00
就是反射 XSS, 不过攻击的不是普通用户,而是污染 SEO.
oldshensheep
2023-05-27 19:20:35 +08:00
@leonshaw
不是,楼主的网站在进入网址 https://hackertalk.net/tags/********是会显示一个 tag 为********的页面,然后发起查询,如果查询不到这个 tag 就不显示内容。但是页面上显示了********,而这个********会是任意的可能。所以页面上也就会显示任意的内容,然后就被别人用来做 SEO 。

黑产通过在其他网站上构造 [https://hackertalk.net/tags/读博网站地址等广告信息] ,然后搜索引擎就会索引到
https://hackertalk.net/上有这个 [读博网站地址等广告信息] 的内容
huijiewei
2023-05-27 19:26:13 +08:00
tag 不存在不应该是 404 页面么,搜索引擎会索引 404 页面么
tin3w5
2023-05-27 19:30:42 +08:00
这不就是最典型的 get 请求的 inject 吗?无论是通过 api 拼接 sql 还是 js ,亦或者是系统命令……
leonshaw
2023-05-27 19:33:29 +08:00
@oldshensheep
搜索引擎不应该识别这种页面内容与 URL 相关情况么?比如说由于 caidu.com 本身是一个没有审查的搜索引擎,[https://caidu.com/读博] 大概率有读博网站信息,那么用同样的攻击方法就能使得其它搜索引擎降低 caidu.com 的 rank ?
oldshensheep
2023-05-27 19:47:25 +08:00
@leonshaw 搜索引擎为什么会索引搜索引擎?
@huijiewei 他这个没处理,他用的是 SSR 返回的是 HTTP 200
leonshaw
2023-05-27 19:48:45 +08:00
@oldshensheep 搜索引擎怎么知道它是搜索引擎?
oldshensheep
2023-05-27 19:50:44 +08:00
@leonshaw 建议你了解一下 robots.txt
leonshaw
2023-05-27 19:58:55 +08:00
@oldshensheep 本来觉得 op 的情况等效于一个搜索引擎,想了一下确实不对,合法的 tag 是希望被索引的。
x86
2023-05-27 20:04:35 +08:00
想起了早期 asp 时代有的垃圾站可以这样插个小马的
huijiewei
2023-05-27 20:22:54 +08:00
@oldshensheep 所以这和输入框没什么关系。就是开发人员对 HTTP 协议不了解,以为一切都 200 就 OK

倒是让我想起一个比较容易被搞的页面,站内搜索页面,这里返回 404 不太合适。容易被搞

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

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

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

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

© 2021 V2EX