web安全性探讨

铂金小黄 发布于 2013/05/22 10:38
阅读 571
收藏 9

首先应该先说明几点:

  1. web安全的危害
  2. web系统被入侵的常规途径
  3. web系统被入侵的非常规途径

web安全的危害

     各个站点被入侵的危害是不一样,对于公司的站群系统,一台服务器被入侵以后,又可能导致同C段ip被嗅探入侵等严重危害时间。又因为管理员的习惯问题,可能这些同c段的服务器密码又刚好一致,或者按照某种规律来设定(例如114.218.123.X段的服务器,密码设定成“oschina+X”这样子),从而导致服务器群集体沦陷。然后黑客又根据相应应用系统的数据库连接串来得到了数据库权限,又导致了被脱裤之类的事情发生。

 web系统被入侵的常规途径

   根据常年的经验来看,web应用系统被入侵的方式一般为以下几种:

  1. sql注入(没什么好说的,初学者常犯的问题,字符串拼接导致的问题
  2. 跨目录浏览(对参数过滤不完全,导致了hacker可以访问其他路径,也就能访问WEB-INF下载jdbc.properties了
  3. 任意文件上传(一个上传接口,导致了hacker可以直接上传shell
  4. 弱口令(猜出后台目录,直接登录进去了)
  5. tomcat等应用服务器弱口令(然而tomcat在win下面默认是system权限,在linux下默认是root权限

 

web系统被入侵的非常规途径

    这里是各种奇葩的会导致系统被入侵的案例:

  1. 把应用服务器的账号密码写在系统部署说明里面,然后在项目的时候忘记删除,直接发布到互联网上。(别人一百度,就直接搜到了这个文件,你说能不能被入侵么。)
  2. 一个多人开发的项目,为了方便其他人,把开发/应用服务器的IP账号密码写在SVN/GIT托管的项目里面。(别人一百度,又直接搜到了这个文件,你说能不能被入侵么。)
  3. 服务器管理员很有经验,关闭了远程桌面,然后使用了teamViewer,PcAnywhere等工具来管理服务器,然后方便自己记忆/给同事查看,又把teamViewer账号密码写在txt上,又因为某些未知的因素,它们又被发布到互联网上。(别人一百度,就直接搜到了这个文件,你说能不能被入侵么。)
  4. 同机房其他服务器被入侵,导致被嗅探(所以在关键登录页面上要使用ssl加密。)

说多了,里面几种漏洞里面最奇葩,最没有防备,危害最大的就是3.1和3.2。其他人只能轻轻google一下,却可以直接跳过web shell来得到服务器的管理权。

另外零零碎碎说一些奇葩安全问题:

  1. MSSQL对外开放,sa账号未降权,密码被爆破,或者从应用系统的数据库连接串泄漏。(网上多了去了,每天都有无数人还在扫描1433弱口令抓鸡)
  2. struts的老版本有安全问题,可以直接执行cmd/shell命令。(很少见的问题,直接升级struts版本即可)
  3. 一些软件开发人员在本机搭建php+mysql平台,对外网开放,但是mysql的root密码为空,导致从phpmyadmin上传web shell。(曾经不小心因为这个事情,得到了一台参与过054A作战代码编写的工作人员的电脑权限。)

一些建议:

  1. 不要使用sa/root账号来连接数据库,一个数据库一个账号,并且相应的权限设置要做好。
  2. 应用层的上传一定要做好过滤和重命名。不能直接上传一个可执行文件上来。
  3. 服务器账号密码不要明文保存下来。(甚至是短信这样的都有可能出问题,看完了就赶紧删掉,曾经通过查看短信记录找到了一台服务器的密码)
  4. 不用使用system/root权限来运行应用服务器。
  5. 在数据库的密码字段加密时,不要使用md5,起码也用MD5+盐,或者SHA-1+MD5+盐(为什么不要使用md5?查看cmd5你就知道md5作为加密算法在现在是多么的烂了,只需要写一个程序,不断计算字符串的md5值,然后存到数据库中,总有一天能把地球上所有能用的可接受的长度的密码的md5值全部计算出来。这样md5都快和明文一样了。)
  6. 对客户端传来的参数一定要进行验证。

文笔不好,这只是一个抛砖引玉贴,欢迎参加讨论,我会把优秀回复搬到主楼。:)

 


加载中
0
苏生不惑
苏生不惑
学习了,建议发到代码分享模块, 猜出后台目录,怎么就能直接登录进去了?
0
Beyond-Bit
Beyond-Bit

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

0
相信你自己
相信你自己

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

盗取session异地登陆!--java里面防止异地登陆解决办法验证Ip是否相等
0
相信你自己
相信你自己

引用来自“成为过去就不再有未来”的答案

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

盗取session异地登陆!--java里面防止异地登陆解决办法验证Ip是否相等
如果ip和以前的ip不相等则session进行销毁。
0
相信你自己
相信你自己

引用来自“成为过去就不再有未来”的答案

引用来自“成为过去就不再有未来”的答案

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

盗取session异地登陆!--java里面防止异地登陆解决办法验证Ip是否相等
如果ip和以前的ip不相等则session进行销毁。
按照昨天我说的那么做又要出问题,黑客把IP改成一样的又怎样办呢。
0
相信你自己
相信你自己

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

DDOS洪水攻击!对一般的开发人员不用考虑。
0
Beyond-Bit
Beyond-Bit

引用来自“成为过去就不再有未来”的答案

引用来自“成为过去就不再有未来”的答案

引用来自“成为过去就不再有未来”的答案

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

盗取session异地登陆!--java里面防止异地登陆解决办法验证Ip是否相等
如果ip和以前的ip不相等则session进行销毁。
按照昨天我说的那么做又要出问题,黑客把IP改成一样的又怎样办呢。
你所说的ip验证,可以通过模拟ip绕过!其实可以通过httpOnly禁止修改cookies 可以解决!不同语言之间的方法可能有所不同!
0
Beyond-Bit
Beyond-Bit

引用来自“成为过去就不再有未来”的答案

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

DDOS洪水攻击!对一般的开发人员不用考虑。

DDOS不考虑?介个不实际!比如一个电商网站!在DDOS压力10min那么你的损失将会是多少计算过吗?最起码初级的DDOS要过关!

这个可以通过集群负载来解决!各节点亦可以采用节点代理!还可以通过一定时间内不允许频繁访问!

0
相信你自己
相信你自己

引用来自“Beyond-Bit”的答案

引用来自“成为过去就不再有未来”的答案

引用来自“成为过去就不再有未来”的答案

引用来自“成为过去就不再有未来”的答案

引用来自“Beyond-Bit”的答案

楼主忘了xss攻击!

DDOS洪水攻击!

session 安全!(盗取session异地登陆!)

盗取session异地登陆!--java里面防止异地登陆解决办法验证Ip是否相等
如果ip和以前的ip不相等则session进行销毁。
按照昨天我说的那么做又要出问题,黑客把IP改成一样的又怎样办呢。
你所说的ip验证,可以通过模拟ip绕过!其实可以通过httpOnly禁止修改cookies 可以解决!不同语言之间的方法可能有所不同!
谢谢了  
Beyond-Bit
Beyond-Bit
客气了,楼主分享出来就是讨论的嘛!
返回顶部
顶部