SQL注入、XSS的危害、利用和修复
SQL注入的危害
(1)数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
(2)网页篡改:通过操作数据库对特定网页进行篡改。
(3) 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
(4)数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
(5) 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
(6)破坏硬盘数据,瘫痪全系统。
SQL注入的利用方式
(1)Union注入
(2)盲注 //分为延时盲注和布尔盲注
(3)报错注入
(4)堆叠查询
(5)宽字节注入
(6)HTTP参数污染注入
SQL注入的修复方式
(1)SQL语句预编译
(2)针对SQL输入内容进行限制、过滤 //目前使用WAF对这一块进行处理
(3)针对提交的关键数据进行转义 ,比如\select
(4)关闭错误信息输出 ,因为有些错误返回信息,会返回物理路径、数据库版本信息等
(5)数据库权限严格控制 ,不同级别的用户,只能进行相应级别权限的操作
(6)敏感信息严格加密处理
XSS的危害
(1)网络钓鱼,包括盗取各类用户账号;
(2)窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
(3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;
(4)强制弹出广告页面、刷流量等;
(5)网页挂马,进行恶意操作,例如任意篡改页面信息、删除文章等;
(6)进行大量的客户端攻击,如DDoS攻击;
(7)获取客户端信息,例如用户的浏览历史、真实IP、开放端口等;
(8)控制受害者机器向其他网站发起攻击;
(9)结合其他漏洞,如CSRF漏洞,实施进一步作恶;
(10)提升用户权限,包括进一步渗透网站;
(11)传播跨站脚本蠕虫等;
XSS的利用方式
- 反射型XSS攻击
反射型的XSS攻击最大的特点,就是对搜索框、登录框进行弹窗,是一种非持久性的攻击,也就是攻击了一次就结束了。模拟反射型XSS攻击的话,我们可以利用DVWA平台进行演示操作。下面为针对URL使用的插入语句
xxx.xxx.xxx.xxx/dvwa/vulnerabilities/xss_d/?default=English<script>alert(/xss/)</script>
这里所使用到的HTML标签是< script >,一般常用于XSS的HTML标签为
标签名称 主要用途
< script > 定义客户端脚本
< img > 定义HTML页面中的图像
< iframe > iframe 元素会创建包含另外一个文档的内联框架(即行内框架)
在这里插入图片描述能够造成页面弹窗的原因,是因为在浏览器渲染整个页面的时候,会执行这条
- 存储型XSS攻击
存储型XSS攻击所实现的功能是:获取用户所输入的留言信息、标题及内容,然后将输入的信息插入到数据库当中,并将数据库的留言信息输出到页面上,就此利用DVWA页面来复现XSS stored漏洞。
漏洞利用的关键插入语句:
<img src=1 one rror=alert(/想要返回的内容/)>
(1)抓取数据包进行修改
在这里插入图片描述
(2)将POST数据包中data部分的txtName参数内容test修改为<img src=1 oneerror=alert(/test_xss_stored/)>
,其目的在于利用图片报错信息来嵌入一段XSS代码,达到持久化的作用。
(3)再次访问页面,发现存储型XSS生效了
在这里插入图片描述
XSS的修复方式
(1)针对输入、URL的敏感参数进行过滤
(2) 针对输出内容进行编码
(3) 白名单
(4) 黑名单