关于WEB站点的安全

1、SQL注入
2、XSS
3、弱口令
4、业务逻辑漏洞
当然 还有其他奇奇怪怪的各种各样漏洞就不一一介绍了,但是以上四种是目前最流行的攻击方式
下面我就讲一下各种漏洞的危害:
1、sql注入
由于现在WEB站点的功能越来越复杂,数据量越来越大,一些功能上的参数越来越多,难免会有疏漏,不管是get注入post注入cookie注入还是session注入,反正骇客们就是有他们自己的办法;
SQL注入的危害有很多:
1) 数据泄露
2) 数据被非法篡改
3) 系统信息泄露
4) 系统文件泄露(如果有权限)
5) 系统shell泄露(如果有权限)
拿SQLSERVER来说,一个小小的SQL注入点如果是拥有相应权限就可以篡改任意数据,跨库查看数据,修改系统注册表,任意文件上传下载等等等等的危害;
具体的攻击方式不方便透露,但是可以透露原理;
mssql中任意文件上传下载是利用日志的转储功能
篡改数据这个大家都应该能理解,直接执行sql语句即可;
包括拖库(直接下载数据库中所有数据到本地)等;
由于本机没有mssql,就用Mysql进行一个简单的演示;


假设某web页面有这样一条查询语句
select id,name from user where id=1;
并且id没有进行过滤
那么进行如下拼接sql语句:




即可爆出mysql的版本信息


读取系统文件包括linux的/etc/passwd文件、/etc/shadow等
sql注入的危害远远不止这些后续我会讲解防范的方法
XSS的危害非常大,并且较为复杂,具体原理是骇客们通过HTML标签注入到正常的网页中去;
本人亲历过一次较大的XSS攻击是去年的百度贴吧XSS蠕虫攻击
当时所有点击受感染的帖子的用户都会中招并且自动发病毒帖
有管理权限的还会自动把病毒帖子置顶加精 当时波及范围非常大
下面我演示一个简单的XSS注入:


这个页面的功能是这样:
用户输入一个地址,然后在置顶div中生成超级链接
如果我在输入框中输入生成的超级链接即可点击跳转到百度
可如果我输入恶意代码比如:
' οnclick='alert("无名指7年")'

这时生成的html代码就会包含恶意脚本点击超级链接后会弹出


这样一个对话框

可能大家觉得弹出一个对话框的危害没什么
但是我如果把onclick事件中触发引用一个我自己服务器的恶意js代码
就可以获取用户的cookie、浏览器信息、系统信息等等
由于本人前端渣渣 详细的就不演示了 总之XSS是web安全的头号大敌
3、弱口令
这个没太多好说的 就是一些程序员和管理员为了省事
用一些简单的账户密码作为系统或者某些重要管理平台的账户密码
比如说 账户 admin 密码 admin 
ceshi ceshi 
admin 123456
等等
这些密码设置与不设置形同虚设
骇客们随随便便就找一个弱口令字典扫几分钟就进去了
个人推荐密码要设置为12位以上,并且包含大小写以及特殊符号

我前几天试验过穷举我本机的mysql密码
A-Z a-z以及特殊符号@@¥%……&* 
7位的密码用了17个小时才穷举成功
本人电脑配置I7-3740QM 内存16G
当然 到那种专门想穷举爆破的 密码长一定时间后总能爆破成功
如果想相对安全一些就采用动态密码等方式

4、业务逻辑漏洞
现在各种各样的系统各种各样的门户网站都有个账户密码登录
又是密码提示问题 又是验证码等等弄了一大堆
结果业务逻辑部分没有做登录校验一切都暴漏出来了
不光是登录验证 还有其他奇奇怪怪的东西
比如乌云上爆出的某某网站密码找回时直接把发送到手机的验证码发给浏览器了
某龙的订单没有做强数据校验0.1元可以订任意酒店等等
具体的大家可以上乌云看

下面来演示一下webshell的威力
借用吧里某位同学的服务器st2 s2-16漏洞(现在还没补上)
上传我自己的webshell


上传好了自己的shell 在权限内想做什么就做什么了 比如说看看etc/passwd文件内容


用户信息暴漏无疑


查看下web站点的web.xml配置文件





数据库的账户密码


简单的来说 我可以在他的用户权限内做任何事情

这是我以前写代码中忽略的一个非常严重的漏洞
业务场景是:
通过servlet调用该方法,根据客户端url传来的文件名在某个文件夹下下载某个文件
具体代码:


这个漏洞的危害是任意文件下载,因为我没有对用户输入的文件名进行合法性校验
漏洞演示:


当我请求某个奇葩路径 就能达到任意文件下载的目的
如/etc/passwd /etc/shadow文件等

关于防范:
个人的建议有以下几点:
1、不要相信用户的任何输入,所有输入的数据都要做校验(sql xss等),千万不要怕麻烦,否则以后被黑了找漏洞更烦
2、程序出的异常要设置404 500 等各种错误页面 web容器要配置好不显示文件列表,防止黑客在尝试攻击时显示响应的错误回显帮助黑客进行攻击
3、防火墙是个好东西,另外防火墙设置为白名单比黑名单效果好得多
白名单即允许的才能访问,其他全部拒绝;
黑名单即指定的不能访问,其他依然可以访问;
4、很多人喜欢在写程序的时候对数据库连接使用配置文件方式存储账户密码,包括ssh框架,但是密码是明文存储在文件中的,假设服务器沦陷看到配置信息,直接就可以入侵数据库
比如12层,个人建议这些文件采用加密存储,对于ssh可以修改框架的相应位置
5、网址URL转义为HTML,让攻击者无法第一时间判断该站点是采用某种语言写的,增大攻击难度
6、网站后台尽量不要让外网访问,如果非访问不可可以做强密码校验,IP校验等等
7、多关注乌云 csdn iteye等网站 爆出新漏洞及时修复


暂时总结的就是这些 如果各位j8er在写代码如果能注意这些 网络安全环境就会好很多
作者by 一个相当白帽子的无名指7年 
转载请注明出处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值