[李景山php] web 安全资料篇

来源:互联网 发布:手机电子游戏赌博网络 编辑:程序博客网 时间:2024/05/03 07:55

Web安全与业务
1939年9月1日凌晨,第二次世界大战爆发。德军14个师兵分三路,从北,南,西同时入侵波兰,波军6个集团军80万人组成的防线瞬间瓦解。由于兵力分散和移动迟缓,波军很快被各个击破,到9月21日“布楚拉战役”,主流已全军覆没。这次战争的时间之短,出乎所有人意料,它将一种新的战争模式呈现在人们眼前“闪电战”。
随着新技术、新思维的出现,看不见硝烟的随时出现。
2012年7月,一部由美国制作的电影预告片被传到互联网上,由于包含对伊斯兰教的侮辱,引起了穆斯林的强烈抗议。9月,一个自称“伊兹丁.哈桑网络战士”的黑客组织,在网上声称对美国金融业展开报复性战争。短短几周之中,美国银行,花旗集团,富国银行,美国合众银行、PNC金融服务集团等金融巨头的网上服务因遭受攻击而中断。分布式拒绝服务攻击。
安全与自身发展
有人说互联网是由人组成的,也有人说互联网是由代码组成的。如果说互联网是由代码组成的,那么Web代码占据着互联网至少半壁江山;如果说互联网是由人组成的,那么有人的地方就有江湖,江湖中总是有剑客高手,互联网中也总是有技术黑客高手。
腾讯Q+和 web QQ上拥有近10万个web应用。
google的chrome 网上应用商店提供了7万多个应用,拥有数亿人次的应用用户。
4399.com拥有数万个在线网页游戏。
安卓和苹果上当前17%的应用都是h5开发的,而且比例持续上升。

Web安全-大事记
天涯被黑事件 SQL 入侵
2012年,泄漏数据的网站包括CSDN,天涯,多玩,其中天涯的因为2009年使用的是明文密码,因此泄漏的用户密码是明文的,多玩网(YY语音)的数据是内部员工窃取的,网站未被入侵。

百度被劫持事件 DNS劫持
2010年1月12日上午7点钟开始,中国最大中文搜索引擎“百度”遭到黑客攻击,长时间无法正常访问。主要表现为跳转到一雅虎出错页面、伊朗网军图片,出现“天外符号”等,范围涉及四川、福建、江苏、吉林、浙江、北京、广东等国内绝大部分省市。

淘宝撞库
该团伙于2015年10月14日至16日通过租用的阿里云平台向淘宝发起攻击,获取淘宝账户信息约9900万,其中2059万账户为确实存在并且密码吻合。该团伙通过黑客手段获取的账号主要用于淘宝刷单、抢单、并出售给诈骗团伙,严重扰乱了网络秩序,危害了公民的隐私、财产等安全。专案组根据该线索,顺藤摸瓜抓获姚某、黄某等犯罪嫌疑人4名,经进一步审查发现,该团伙通过自编58个黑客盗号软件,获取用户名+密码32亿组,涉及浙江、江苏、上海、山东、四川、福建、安徽等全国20余个省份用户,涉案金额高达200余万元。

灰色产业链
传奇私服,帐号买卖,商品秒杀,抢月饼等等。
攻击与防御
XSS攻击
XSS[CSS] Cross Site Scripting, 跨站脚本。
跨:主要是因为远程或者是第三方域上的脚本资源。
例子:
eval(location.hash.substr(1));
http://www.crm.net/test_xss.html#alert(‘no’)
类型:
反射型,存储型,DOM XSS
反射型: echo $_GET[‘x’];
存储型:存入到对应的数据库,文件等位置。
DOM XSS: 刚刚演示的那个
经典的漏洞:
2009年出现一次大调整,大量融入HTML元素。
昵称修改为: <iframe x=’发送一条这样的消息给被攻击者:’src=’http:\\%62aidu.com’y=

危害:
挂马,
盗取用户cookies
Dos(拒绝服务)客户端浏览器
钓鱼攻击,高级钓鱼技巧
编写针对性的XSS病毒,删除目标文章,恶意篡改数据,嫁祸,“借刀杀人”
实际案例:
百度登录DIV弹出层窗口存在XSS持久性漏洞。
2005年11月4号 MySpace XSS 蠕虫的模式,凌晨0:34开始,短短5小时后,感染了一百多万用户,并在每个用户的个人签名当中添加了一段文件“but most of all,samy is my hero”,XSS蠕虫鼻祖。

SQL注入
普通注入:
普通注入是指最容易利用的SQL注入漏洞,比如直接通过注入union查询就可以查询数据库。
防御:过滤相应的关键词,强制数据类型,就可以过滤了。

编码注入:
最常见的编码注入是MySQL宽字节以及 urldecode 及 rawurldecode 函数导致的。

编码注入–宽字节注入:
当使用PHP连接mysql 的时候,当设置 “set character_set_client = gbk”时会导致一个编码转换注入的问题,注入参数里带入 %df%27 即可把程序中过滤的 \ (%5c) 吃掉。

%27 代表是 ’ 单引号。

假设/1.php?id=1 存在宽字节注入漏洞,
当提交 /1.php?id=-1’ and 1=1 %23 时,Mysql 运行的sql语句为: select * from user where id = 1 \’ and 1=1#’ 很显然,没有注入成功,因为我提交的单引号被转义导致没有闭合前面的单引号。
但是当我们提交 /1.php?id=-1%df’ and 1=1%23时,这时候Mysql运行的语句为:select * from user where id = ‘1運’ and 1=1#’
这是由于单引号被自动转义成 \’ ,前面的 %df 和转义字符 \反斜杠(%5c)组成了 %df%5c,也就是 “運”字,这时单引号依然存在,于是成功闭合了前面的单引号。
漏洞挖掘:
搜索 SET NAMES 及 gbk 关键字
#号,新的开始
编码注入–二次urldecode注入:
只要字符串被进行转换就有可能产生漏洞,现在的web程序大多都会进行参数过滤,通常使用addslashes(),mysql_real_escape_string(),mysql_escape_string()函数或者开启 GPC 的方式来防止注入,也就是给单引号,双引号,反斜杠和NULL加上反斜杠转义。如果某处使用了 urldecode 或者rawurldecode 函数,则会导致二次解码生成单引号而引发注入。

原理是我们提交参数到 web服务器时,web服务器会自动解码一次,假设目标程序开启了 GPC ,我们提交 /1.php=1%2527,因为我们提交的参数里面没有单引号,所以第一次解码后的结果是 id=1%27,%25解码的结果是%,如果程序里面使用了 urldecode 或者 rawurldecode 函数来界面id 参数,则解码后的结果是 id=1’ 单引号成功出现,引发注入。

挖掘:搜索 urldecode
DDOS攻击
简介:基本上无解的攻击方式。
来源:僵尸网络
就是僵尸程序控制的计算机。
知名的僵尸网络:
1 ZeroAccess 一天 10万美元。
2 Zeus 数百万美元。
僵尸网络组成的节点:
1 普通的PC
2 服务器
3 移动设备
方法:精髓
利用分布式的客户端,向服务提供者发起大量看似合法的请求,消耗或长期占用大量的资源,从而达到拒绝服务的目的。

攻击位置:
攻击网络带宽资源
直接攻击
发射和放大攻击
攻击链路
攻击系统资源
攻击TCP连接
攻击SSL连接
攻击应用资源
攻击DNS服务
攻击Web服务
混合攻击

工具:
综合性工具
Hping 编码和解析TCP/IP 协议的命令行开源工具。 当前版本应该 Hping3
PenTBox 免费的开源安全工具套装。
压力测试工具
LOIC 开源的网络压力测试工具,最初由Praetox公司开发。
HULK 基于python的 Web 压力测试工具。
专业攻击工具
Slowloris 是一个Perl程序,有Perl运行环境即可。

成本和收益:
首先抛弃只有“黑客”才能攻击的概念,因为分工现在已经很明确了。
大部分“黑客”都专注于特定领域,有的擅长发现漏洞,有的善于开发工具,有的负责入侵过程,有的专门处理帐号信息。
就DDOS攻击来说,一些“黑客”会建立和维护所谓的“攻击网络”。他们有的利用僵尸网络,有的控制高性能服务器,形成攻击能力后对外提供租用服务器。而最终的租用者很可能只是不具备任何专业知识的普通人。
30000元/月,开始。
收益:
单纯破坏发现没什么意义。
敲诈/报复
10%利润:
20%利润:
100%利润:

治理及缓解:
治理僵尸网络,
反射点等
SQL注入演示
演示网站:
工具演示:
加强web安全
编码规范
参数的安全过滤
第三方过滤函数与类 PHP安全里面的 80sec SQL注入过滤的类。
内置过滤函数
安全的加密算法
对称加密
非对称加密
业务功能安全设计
验证码
不刷新直接绕过
暴力破解
机器识别
打码平台 云速 Q赚
验证码资源滥用
配置规范
web服务器
Linux服务器
sql服务器
php本身
白名单
对于固定用户的,可以使用白名单机制。

原创粉丝点击