一、常见的安全事件
1. 钓鱼 Phishing
- 往往使用诱惑性的标题,比如:账号出问题了,中奖了
- 仿冒真实知名站点
- 为了骗取用户账号和资料,如:银行卡,身份证,住址…
2. 网页篡改 Tampering
这种技术,主要是黑客入侵后,对网页进行更改,主要是为了炫耀技术,有时是为了政治行为。
- 关键字
* Hacked by
搜索引擎语法
* Intitle:keyword 标题中含有关键词的网页
- Intext:keyword 正文中含有关键词的网页
- Site:domain 在某个域名和子域名下的网页
3. 暗链 Hidden hyperlinks
一种看不见的链接,黑客入侵后,把链接信息植入代码。
据不完全统计,中文互联网网站安全隐患严重,73%的网站被黑的类型为植入暗链,12%植入网马,15%是网页篡改。 因为这个暗链,产业法律风险小,黑客收入比较高,已经成为非常成熟的产业。
小结:
- 隐藏在网站当中链接,不能为正常用户点击,也就是为了爬虫引擎准备的,提高网站排名
- 主要是 网游/医疗/博彩/色情
4. Webshell
- 网页 一种web后门,一个可执行环境
- 功能强大,一旦植入,可以执行大部分的命令操作,获取服务器的各种权限
- 存在的形式有很多, 像 asP/php/jsp
- 通常他会以文件和正常网页混在一起的形式存在,通过浏览器来访问这个后门,已达到控制目标服务器的目的,控制流量又是像正常访问网站的流量混在一起,所以一般的入侵检测系统很难发现
二、 WEB安全
主要分成2类:
客户端:XSS CSRF 点击劫持 URL跳转
服务端:SQL注入 命令注入
1. XSS
(Cross Site Script) 跨站脚本
危害: 盗取用户信息,钓鱼,制造蠕虫。。等
概念: 黑客通过HTML注入篡改网页,插入了恶意脚本,当用户在浏览网页时,实现控制用户浏览器行为的一种攻击方式。
分类:存储型,反射型,DOM型
- 存储型
访问网站,触发XSS
关键点: 是XSS脚本内容是存储在数据库中
- 反射型
访问携带XSS脚本的链接触发XSS
关键点: 直接从url中提取xss脚本内容
- DOM型
访问携带XSS脚本的链接触发XSS
关键点: 通过js从url获取脚本内容,并使用例如innerHTML方法,将xss写入DOM中,触发XSS
区别:DOM型XSS是通过前端js,将xss脚本写入DOM中触发,而反射型XSS是通过后端WEB应用程序将XSS脚本执行到响应页面中,浏览器渲染响应页面时,才触发XSS
2. CSRF
(Cross-site request forgery) 跨站请求伪造
危害: 执行恶意操作(被转账,被发垃圾评论),制造蠕虫。。。等
概念: 利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作
原理principle: 通常Cookie当中会存放用户凭证信息,浏览器在发送请求时,会自动带上已有的cookie,通过cookie识别用户身份,执行转账操作。
例如,黑客构造转账服务的攻击代码,假如用户已经登陆,只要访问这个页面,就会自动将钱转到另一个用户。
3. 点击劫持
通过覆盖不可见的框架误导受害者点击而造成的攻击行为。
特点: 隐蔽性比较高,骗取用户操作,UI-覆盖攻击, 利用iframe或者其他标签的属性(如:display:none)
iframe: 是可以创建另一个包含另一个文档的内联框架
4. URL跳转
定义: 借助为验证的url跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。例如:在互联网中,恶意的网站通常会设计成目标网站会经常访问的样子,这样才更具诱惑性。
实现方式: Header头跳转,js跳转,META标签跳转
5. SQL注入
首先举个万能密码的例子:我们登陆网站要输入账号密码,错误将登陆失败,然后,我们在账号输入admin’ –,密码不输入,结果登陆成功。
定义: SQL Injection,是一种常见的WEB安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
解释: 登陆发送一个POST请求,提交参数是账号和密码,然后后台执行SQL时,利用代码 ‘ –, 闭合注释,达到登陆成功。
- 获取用户请求参数
- 拼接到代码当中
- SQL语句按照我们构造参数的语义执行成功
本质就是 数据与代码未分离,即数据当做了代码来执行
危害: 获取数据库信息,获取服务器权限,植入webshell,获取服务器后门,读取服务器敏感文件,万能密码。。。
6. 命令注入 Command Injection
windows: DOS命令, linux: Bash命令
命令拼接&,依次执行拼接的命令,echo hello & echo world
管道符|,前面命令的输出作为后面命令的输入, ipconfig | find “IPv4”
例如: PHP可执行命令的函数:system,exec, eval,shell_exec,。。。。。
过程: 黑客构造命令提交给web应用程序,程序提取被构造的命令,拼接到被执行的命令中,导致web应用程序执行了额外的命令,将执行结果显示到响应页面中。
7. 文件操作漏洞 file operation
文件上传: 上传webshell, 上传木马
文件上传不当:例如可以上传可执行脚本,脚本拥有执行权限
文件下载: 下载系统任意文件,下载程序代码
会导致代码泄露,数据库配置文件泄露,系统文件泄露。。。
文件处理不当导致:未验证下载文件格式,为限制请求的路径
文件包含
解决代码量,重复代码写入一个文件
本地文件包含,远程文件包含
下面是一些php中常见的文件包含函数:include()、require()、include_once()、require_once()….