网络安全(network security)包含网络设备安全、网络信息安全、网络软件安全。
黑客通过基于网络的入侵来达到窃取敏感信息的目的,也有人以基于网络的攻击见长,被人收买通过网络来攻击商业竞争对手企业,造成网络企业无法正常营运,网络安全就是为了防范这种信息盗窃和商业竞争攻击所采取的措施。
攻击网站的方法可以分为客户端和服务器两个方向
客户端
一、XSS
什么是XSS
XSS全称跨站脚本(Cross Site Script)是一种前端语言的注入。黑客通过“HTML注入”篡改网页”,插入了恶意脚本,当用户浏览网页时,实现控制用户浏览器行为的一种攻击方式。
具有盗取用户信息、钓鱼、制造蠕虫等的危害。
XSS的分类
1)存储型
触发XSS脚本的过程:
之所以叫存储型XSS,就是需要将XSS脚本上传至服务器数据库。
2)反射型
访问携带XSS脚本的链接,触发XSS(可以在链接中明显看到XSS特征)
.../.../great.php?name=<img src=@ onerror=alert(/XSS/)>
由web应用程序,解析请求参数输出到响应中
存储型XSS是从数据库中提出XSS内容
反射型XSS是从URL中提出XSS内容
3)DOM型
访问携带XSS脚本的链接,触发XSS(可以在链接中明显看到XSS特征)
通过前端JS(hash),将XSS写入 DOM
而反射型通过后端web应用程序,将XSS写入相应页面中
总结:
二、CSRF漏洞
全称:跨站请求伪造(Cross-site request forgery)
概念:利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。
浏览器在发出任何请求时,会自动带上已有的cookie
构造攻击代码后,用户点开不知名链接,自动执行恶意代码,服务器通过cookie识别用户身份后,执行转账操作。
(查看源码:view-source:URL)
三、点击挟持
通过覆盖不可见的框架误导受害者点击而造成的攻击行为。(网站是嵌套的,内部不可见)
标签:iframe
功能:可以创建包含另一文档的内联框架
display属性(元素的显示方式):none隐藏元素,block以区块的方式进行显示
四、URL跳转
定义:借助未验证的URL跳转,将引用程序引导到不安全的第三方区域,从而导致的安全问题。
实现方式:
1、Header头跳转
2、Javascript跳转
3、META标签 跳转
服务器
一、SQL注入漏洞
SQL注入漏洞是一种常见的web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
SQL注入的成因是因为服务器要执行的数据库代码拼接了用户输入的数据
SQL注入的本质:
数据和代码未分离,即数据当作了代码来执行
过程:
1、获取用户请求参数
2、拼接到代码中
3、SQL语句按照我们构造参数的语义执行成功
SQL注入的必备条件:
1、可以控制输入的数据
2、服务器要执行的代码拼接了控制的数据
二、命令注入
DOS复合命令:
1、命令拼接&,依次执行拼接的命令
e.g. echo HELLO & ipconfig
2、管道符|,前面命令的输出作为后面命令的输入
e.g. ipconfig | find “IPv5”
web应用如何命令注入?
1、调用可执行系统命令的函数
2、函数或函数的参数可控
3、拼接注入命令
php可执行系统命令的函数:
1、system 2、exec 3、shell_exec 4、eval 5、…
三、文件操作类漏洞
常见文件操作:文件上传、文件下载
常见文件操作漏洞:
1、文件上传漏洞;成功上传webshell和木马
2、任意文件下载;
3、文件包含漏洞(本地文件包含、远程文件包含)
allow_url_fopen = On(是否允许打开远程文件)
allow_url_include = On(是否允许包含远程文件)