跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何对子域名下的网页注入脚本
未分類
22 2 月 2022

如何对子域名下的网页注入脚本

如何对子域名下的网页注入脚本

資深大佬 : SSang 29

我搞了一个登录页面,用来给一些没有鉴权的第三方的网页做鉴权网关,用 nginx 的 auth_request 做的。 实现的效果是,第三方网页接入 nginx 后,访问反向代理地址如果未登录就跳转到登录页面(有点像是 basicAuth )。

但是登录成功,重定向会第三方网页后,没有登出按钮,只能手动地址栏输入 …./logout 来登出。

我想知道对子域下的网页理论上是否能实现注入一个登出按钮?有什么限制?

主要是不想改第三方的代码,也改不动。

(我大概了解了 XSS 注入,但感觉这个得利用网页表单提交等漏洞,而且没有通用性。)

大佬有話說 (17)

  • 資深大佬 : IvanLi127

    以前运营商通过 iframe 给 HTTP 站点投广告,你可以如法炮制

  • 資深大佬 : metalbitch

    nginx 返回网页的时候,进行字符串替换。搜一下 nginx 的字符串替换模块。顺便看一下其他模块有没有更好的解决方案。

  • 資深大佬 : 2i2Re2PLMaDnghL

    见过把用户信息栏全部做成 iframe 的,登录登出按钮
    不过鉴于 JavaScript 完全可以在同一个页面上组装,你直接手动添加一段 JS 添加按钮就行,当自己在写用户脚本,脏就完事儿了

  • 資深大佬 : Saxton

    反向代理可以替换文本, 找个合适的地方替换下就行, 我之前为了方便插入统计代码,直接在反代上插入到 head 里

  • 資深大佬 : zjsxwc

    主的需求仅仅只是
    “我想知道对子域下的网页理论上是否能实现注入一个登出按钮?有什么限制?”
    加个登出按钮而已,登出按钮使用 get 请求,插入 js 很容易实现啊,最多处理下跨域问题。

  • 主 資深大佬 : SSang

    “`
    location / {
    index index.html index.htm index.php;
    sub_filter ‘</head>’ ‘</head> <body><a href=”http://xxxxxx/logout”>logout</a></body>’;
    sub_filter_once on;
    }
    “`
    感谢各位,简单验证了一下,替换文本可以。

  • 主 資深大佬 : SSang

    @2i2Re2PLMaDnghL
    @IvanLi127
    iframe 是不是得改第三方网页的代码呀?

  • 資深大佬 : metalbitch

    @SSang 应该谢谢我

  • 主 資深大佬 : SSang

    @zjsxwc 我不是很懂,不改第三方代码的情况下,比如我 302 跳转到 baidu ,能在百度的页面添加按钮吗?

  • 主 資深大佬 : SSang

    噢,iframe 的我大概理解了,应该是指 iframe 包装第三方页面再发送回去吧

  • 資深大佬 : metalbitch

    @SSang html 过了你的服务器,你就可以修改内容。不过你的服务器,你就没法修改内容。他说的插入 js ,插在哪里啊?你的 302 是返回给浏览器看的,客户浏览器直接请求了 baidu ,你怎么干涉啊?有点儿现实感。

  • 主 資深大佬 : SSang

    @metalbitch 我知道,过了服务器,我就可以替换,我要给百度添加按钮就得让百度成为我的子域反代到百度,这个用你说的文本替换就能实现。但是我没理解他说的插入 js 很容易实现是指什么?

  • 資深大佬 : metalbitch

    @SSang 他瞎说呗,跨域问题,也是指两个网站都在你掌握下。因为浏览器安全策略阻止,调试两个网站来完成跨域。你明显说了有第三方网站的问题,所以他瞎说,跟 get 请求更没毛线关系。

  • 主 資深大佬 : SSang

    感觉我的场景 sub_filter 会比 iframe 好一点,sub_filter 配置比较无脑,懂一点 html/js 基本就能配了,iframe 用户体验和原本稍微有点不一样了,而且实现起来相对复杂点。
    iframe 看起来能实现的功能会比 sub_filter 更强大,不过配置成本也更高。

  • 主 資深大佬 : SSang

    @metalbitch 噢,谢谢。我就觉得跨域应该没啥希望,除非每个网页都有表单之类的,还不防 xss 注入,所以我问的时候还特意说了子域下。感觉还是你说的文本替换靠谱点。

  • 資深大佬 : metalbitch

    顺便提一下,nginx 是个服务器软件。你可以自己用 php ,java 写登录页面(页面可以想怎么美化就怎么美化),登录成功后使用 php ,java 等代理第三方网站(估计就一行代码),返回给用户。这样就可以脱离自己不熟悉的技术,nginx 就只剩下了常用的配置。

  • 資深大佬 : Saxton

    @SSang 真没必要 iframe ,sub_filter 是最好的解决方案,按照这样如果没登录就退出,其实完全可以做到自动退出而无需让用户在点一下,插入一段 js 去判断即可,这段改成 sub_filter ‘</head>’ ‘这里写你的脚本内容或者引入脚本</head>’; 然后在这个 js 里可以做你想做的

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具