前言
这个标题的来源是@evilcos(余弦大大)在Github上分享的一个PPT,感兴趣的可以去他的repo下载。写这篇博客主要是想给自己最近业余时间学到的安全相关的知识做个总结,主要是关于网站常见漏洞的攻击和利用,不过由于我也是刚入门,写得肯定不怎么到位,不感兴趣就不要浪费时间了哈。
很久之前在乌云上注册过一个账号,最近也刷了一波漏洞,终于升级变成了实习白帽子的级别。
未知攻焉知防
这句话可谓安全圈里的金句(据说出自TK教主,我还没混入圈子,不敢确定)。如果给一个黑客一个网站,他们会怎么下手呢?这里的黑客当然是好人!业界称他们为白帽子。而攻击的过程也叫做渗透测试。
收集信息阶段
- 域名会给出什么信息呢?通过查询whois,就可以得到站长的信息(如邮箱,注册人,地址,电话等)
- 域名对应IP地址,对该IP使用nmap扫描,可以知道该服务器的基本信息,如开启了什么端口,21是FTP,22是SSH,80/443是HTTP服务的端口,3306就是MYSQL的默认端口,服务器上使用的是什么系统。
- 查看网站的robots.txt文件,开发者不希望被爬虫抓取的信息都在这里哦,所以可能有后台地址,有可能指向网站的配置文件(你也会好奇你怎么配置了这么奇怪的robots.txt吧)
- 旁站攻击,通常会有意想不到的收获。旁站指的是跟你站点部署在相同一台服务器上的其他站点。虽然你本身站点做好了安全工作,但也难以保证其他站点不存在漏洞导致服务器被控制的。更新:今天刚好看到个例子,http://www.wooyun.org/bugs/wooyun-2015-0149244
- C端,顺便扫一下该服务器IP所在的C段
- 上Github上搜索该域名对应的邮箱账号。很多公司都会有自己的邮箱系统,而开发人员有时候会很可爱地分享出他们的密码。搜索的关键词如:
smtp 某域名
,耐心翻的话可能有收获;有些开发还可能上传项目的代码呢! - 子域名,查询子域名还可以知道该站点存在哪些其他的系统,多了不少入口!
- Google收集信息,搜索语法如使用
site:域名
,inurl:域名
等。 - 常见网站的路径扫描,可能扫出后台地址,phpinfo等
还有很多其他收集信息的方法,暂时能想到的就这些了。这里找到的信息有些足以令他们进行一次内网漫游了。
漏洞挖掘阶段
- 存在未授权的服务?比如mongodb,mysql,redis,memcached等服务配置错误,暴露在外网。这个足以利用来拿下服务器了。就拿前段时间比较火的redis未授权访问来举例吧,被挖到的话,他们就可以在运行redis的用户下插入
authorized_keys
,继而SSH到你的服务器上进行任何他想做的操作了。这个漏洞还可以利用来实现远程命令执行。乌云漏洞例子:http://wooyun.org/bugs/wooyun-2010-0154887 - 后台登录没有验证码?或者验证码可以绕过,比如把验证码写在cookie里,比如一个验证码可以无限次使用?好吧,爆破不用商量。你是想象不到他们手上的字典是有多厉害!他们可以利用前面信息收集阶段的内容,有针对性地fuzz出一份成功率相当高的字典。如果你不幸使用了弱密码,比如:
admin, 123456
等等,那就更不用担心你的服务器不会被入侵了。例子太多,不举例。 - 服务器上所使用的软件存在漏洞?著名的心脏出血漏洞就是这类漏洞的典型代表。而最近比较热门的是Java的反序列化的问题,乌云漏洞例子:http://wooyun.org/bugs/wooyun-2010-0156418
- 站点相关的邮箱密码泄露了!他会在你的邮箱里找vpn连接,找各种密码,找任何有用的信息!放个例子:http://www.wooyun.org/bugs/wooyun-2010-0145407
- 还有一个神器叫做metaspolit,目前我还不是很熟悉,暂时先留空。
接下来要说的是关于应用层上的一些漏洞了。
- 首先是XSS漏洞,分反射型和存储型等。XSS盗用户Cookie是挺常见的,利用XSS甚至可以打到后台:比如通过网站的私信功能呢发送给网站的管理员,管理员点开就完蛋了。例子:http://www.wooyun.org/bugs/wooyun-2010-0145738 分享一个XSS实例教程:link 全部都是腾讯的案例!
- CSRF跨站伪造请求漏洞,危害的是网站的用户。如果管理员的某些操作,比如修改用户的密码存在这个漏洞,那么他就会写一个页面,然后社工管理员去点开。如果此时浏览器里管理员登陆,那么用户的密码就会被重置。这种漏洞在微博这种社交应用里危害更大,可直接导致蠕虫攻击。最近看到的例子:http://linux.im/2015/11/23/SinaWeibo-Worm.html
- SQL注入,在乌云上挺常见的。他可以使用神奇SQLMap测试是否存在注入点。如果你的接口存在该漏洞,哪怕是只有一处,那也是致命的。如果运行数据库的用户权限够,利用来拿下你的服务器应该可以说是分分钟的事情,利用某些注入点sqlmap可以连接到服务器的shell上。另外,SQL注入漏洞也会泄露用户信息,造成脱裤。泄露管理员的账号和密码,直接导致后台沦陷。在乌云上也是能找到一大堆,不举例了。
- 任意文件下载,如果你的站点存在这种漏洞,也就是说你的服务上的所有东西都可以被下载,包括你的服务器配置信息!看例子吧:http://www.wooyun.org/bugs/wooyun-2010-0145972 标题:某省铁路建设投资公司网站系统漏洞导致任意文件下载并登录后台、任意文件修改并shell
- 任意文件上传,你的站点没有检查用户上传上来的文件内容就直接保存了?还按照用户指定的后缀保存?还放到了可执行的目录下?那就等着被上传web shell吧。Github上有很多人分享的各种各样的webshell,上传到你的服务器之后,他就可以列出你的服务器上所有文件并下载,通过webshell在你的服务器上执行命令。乌云例子:http://www.wooyun.org/bugs/wooyun-2010-0151657
- 逻辑漏洞,比如某个用户可以看到他本不应该看到的信息,常见的情景如用户信息页,只要使用其他用户ID就可以查看到相应的信息,常用的叫法是叫做越权,漏洞例子:http://wooyun.org/bugs/wooyun-2010-0156326 。再比如找回密码的逻辑漏洞,找回密码使用手机找回,验证码只有4位,且可以被无限次猜。那就不要怪他用神奇burpsuite的intruder模式,直接猜到验证码重置任意用户信息了。关于常见的找回密码漏洞可以看:http://drops.wooyun.org/web/5048 。再比如,把cookie当session使用,后台权限bypass等。
- 可被暴力破解或撞库!比如没有限制用户密码尝试次数还没有带验证码,例子:http://wooyun.org/bugs/wooyun-2015-0124461
还有很多其他问题,因为学艺未精,暂时写到这里吧。
漏洞利用
当然是上报到安全平台刷rank,报告给厂商后,说不定厂商好心还可以拿个礼物!!!
吐槽
- 好久没写博客了。(意思是写得不好都是我的错)
- 这篇文章提到的东西我都不懂,我只是做个名词解释,目前还处于入门阶段!希望自己以后能深入研究各种思路。
- 请不要利用文章中提到的知识干坏事!!!