




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web渗透的基础知识培训,目录,3. Web渗透带来的危害,2. Web渗透的常用手法,1. 为什么要重视Web安全?,为什么要重视Web安全?,现在很多企业,政府,学校都在互联网上建立自己的平台,比如企业的进销存,OA系统还有邮件系统;政府的电子政务,学校有教务系统等。 包括现在很多的运营商也是对web安全越来越重视,他们会把扫出的漏洞纳入到考核扣分。而在现实世界中,针对网站的攻击愈演愈烈,频频得手。,为什么要重视Web安全?,国家互联网应急中心截图,为什么要重视Web安全?,Web攻击趋于简单化工具化,Web渗透的常用手法,弱口令、社会工程学,第三方系统的漏洞,Webshell介绍,常见W
2、eb攻击方法,Web漏洞扫描 构造恶意输入(SQL注入攻击、命令注入攻击、跨站脚本攻击) 网页爬行 暴力猜解、弱口令 社会工程学 错误信息利用 根据系统现有版本寻找现有的攻击代码 利用服务器配置漏洞 文件上传下载 逻辑缺陷 .,Sql注入原理介绍,定义: 由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 原因分析 其本质是对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。,SQL 注入演示(一),管理员,程序员考虑的场景: age: 20 SELECT
3、name, age, location FROM Users WHERE age20,程序员未预料到的结果 age: 1000000 union select name, age, password from users SELECT name, age, location FROM Users WHERE age999 union select name, age, password from users,Fact: 大多数程序员都注意到了的问题,他们用来代替用户输入的,从而防止字符串SQL注入; 但很多人缺忽略了同样严重的数字注入问题。其防范方法是检查用户输入的数字是否合法。,Union暴
4、库是常见的注入方法,Union语法要求前后两句SQL中Select的数据项类型和数量一致;,999是不可能符合的条件,这样union的结果就只剩第二句sql查询的内容,SQL 注入演示(一),/login.asp,管理员,管理员,程序员考虑的场景: Username: admin Password: p$w0rd SELECT COUNT(*) FROM Users WHERE username=admin and password=p$w0rd,登录成功!,程序员未预料到的结果 Username: admin OR 1=1 - Password: 1 SELECT COUNT(*) FROM
5、 Users WHERE username=admin OR 1=1 - and password=1,SQL 注入演示(二),/login.jsp,攻击者,登录成功!,是SQL字符串变量的定界符,攻击关键 通过定界符成功地将攻击者的意图注入到SQL语句中! 通过注释保证SQL语句正确!,-是MS SQL的注释符,ORACLE: 用户名字段中输入: or 1=1 or 1=1或是在密码字段中输入:1 or 1=1,SQL注入防护,无论什么脚本语言:asp、.net、php还是jsp 都必须对参数进行过滤: 数字型必须int转换; 字符型必须过滤或者转义单引号;,SQL注入的检测简单流程,Sql
6、语句一样,查询方法也一样,Asp中SQL注入的预防,对于用户端输入的任意字符,包括GET提交,POST提交,Cookie提交,SERVER提交的都需要做严格过滤。 对于数字型参数判断是否为数字:可用函数isNumeric来判断,返回值为true和false。 对于字符型参数过滤单引号,使其无法闭合当前sql语句的单引号。,Php中SQL注入的预防(一),确认GPC开启,若没开启则用addslashes 函数过滤之,如下代码。 if (!get_magic_quotes_gpc() $lastname = addslashes($_POSTlastname); else $lastname =
7、$_POSTlastname; 对于数字型参数可使用intval 或floatval 强制转换为数字型。 注意mysql的版本以及默认字符集,Mysql4.1 字符集连接字符串: mysql_query(SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary;);,Jsp中SQL注入预防,采用jdbc的prepareStatement查询数据库,并且sql语句中不出现参数,如: sqlStr = “select id from info wher
8、e city=? and open=? order by id desc”; stmt = conn.prepareStatement(sqlStr); stmt.setString(1,city); stmt.setString(2,var1);,A中SQL注入预防,使用A的参数化查询。 strSQL = SELECT * FROM Orders WHERE CustomerID = CustomerID; SqlCommand cmd = new SqlCommand(strSQL, cn);/创建一个sqlcommand对象。 /创建新参数,参数绑定 cmd.Parameters.Add
9、WithValue(CustomerID, ALFKI);,跨站脚本漏洞(XSS),定义 它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。 分类 持久型XSS(Persistent),与非持久型XSS相反,它是指通过提交恶意数据到服务器,通过Web应用程序输出恶意数据输出到页面,持久型XSS多出现在Web邮箱、BBS、社区等从数据库读出数据的正常页面(比如BBS的某篇帖子中可能就含有恶意代码) 非持久型XSS(Non-persi
10、stent),即反射型,它是指那些浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞。,XSS本质是在于执行脚本javascript/html等,攻击者的js能力越强攻击效果越惊人!,持久XSS-攻击简介(Persistent XSS),1. 正常服务器信息,2. 服务器存储恶意代码,3. 用户浏览网页,4. 服务器将恶意代码返回给用户,5. 客户端浏览器执行恶意代码,攻击者,普通用户客户端,Web服务器,在论坛发帖子: 免费获取Q币! 恶意代码,重要通知,Re:沙发!,Re:地板?,Re:地下室沙发,Re:地下室地板-_-!,Re:免费获取Q币! 内容: 恶意代码,Re:谁又发垃圾广告
11、啦?,恶意代码 执行!,持久XSS攻击实验(一),Step 1.以test用户登录培训论坛发表新帖子,内容如下: alert(hello),持久XSS攻击实验,Step 2.以admin用户登录培训论坛浏览刚才那个新帖子。,学员练习 3Min,恶意代码 执行!,浏览器,浏览器,Outlook,正常访问,恶意代码隐藏在链接中,“reflected” 代码,1,反射XSS-攻击简介(Reflected XSS),From: 攻击者 To: 用户 免费赠送Q币! CLICK HERE,恶意代码 安全上下文: 目标站点,普通合法会话 安全上下文: 目标站点,攻击者,Web服务器,普通用户客户端,恶意代
12、码 执行!,反射XSS攻击实验(一),Step 1.以test用户登录培训论坛发表新帖子,在浏览器网址处修改Forum_Title参数,观察结果:,学员练习 3Min,URL中的字符通过服务器 “反射”到浏览器中,反射XSS攻击实验(二),Step 1. 把Forum_Title修改为:alert(hello),学员练习 3Min,URL中的字符通过服务器 “反射”到浏览器中,恶意代码 执行!,XSS包括两种类型: 持久式XSS:恶意代码持久保存在服务器上。即Persistent。 反射式XSS:恶意代码不保留在服务器上,而是通过其他形式实时通过服务器反射给普通用户。 XSS漏洞可利用的标志就
13、是“Hello!”,一旦示意代码可以在用户的浏览器中执行,其后可实现的攻击行为与来源是持久还是反射无关。可以利用XSS发起CSRF攻击或盗取用户身份。,XSS:两种类型总结,验证不充分之上传漏洞介绍,导致该漏洞的原因在于代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。,允许上传可执行文件 使用客户端JS验证上传文件类型 使用黑名单限制上传文件类型 文件名/存储目录名可自定义 文件名中特殊字符处理不当,验证不充分之上传漏洞实例,Public Function GetFileExt(FullPath)提取文件后缀 If FullPath Then res
14、ponse.write FullPath GetFileExt = LCase(Mid(FullPath,InStrRev(FullPath, .)+1) Else GetFileExt = End If End function 上面这段代码是获取上传文件后缀 upfile.NoAllowExt = “asp;exe;htm;asa;cer;php;jsp;html;aspx;cs;vb;js;”设置上传类型的黑名单 这是设置了不能上传的文件类型 注:InStrRev:返回某字符串在另一个字符串中最后出现的位置,验证不充分之文件包含漏洞定义,文件包含漏洞,如果允许客户端用户输入控制动态包含在
15、服务器端的文件,会导致恶意代码的执行及敏感信息泄露,主要包括本地文件包含和远程文件包含两种形式,验证不充分之文件包含漏洞演示(一),if ($_GETpage) include $_GETpage; else include home.php;,上面这段代码的使用格式可能是这样的: / ,结合上面代码,简单说下怎么运作的:1.提交上面这个URL,在index.php中就取得这个page的值($_GETpage)。2.判断$_GETpage是不是空,若不空(这里是main.php)就用include来包含这个文件。3.若$_GETpage空的话就执行else,来includehome.php这个文件。,验证不充分之文件包含漏洞演示(二),if ($_GETpage) include $_GETpage; else include home.php;,如果目标主机的“allow_url_fopen”是激活的(默认是激活的,没几个人会修改),我们就可以有更大的利用空间,我们可以指定其它URL上的一个包含PHP代码的webshell来直接运行 。 利用方式:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国铣钻床行业市场发展趋势与前景展望战略研究报告
- 2025年锤纹助剂项目合作计划书
- 2025-2030中国醋酸十六烷基酯行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国逆渗透纯水机行业市场深度分析及发展趋势与投资研究报告
- 2025-2030中国辣椒酱行业发展分析及投资前景预测研究报告
- 2025-2030中国轻钢行业市场深度调研及发展策略研究报告
- 2025-2030中国超高频PDA行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030中国货运行业市场发展前瞻及投资战略研究报告
- 2025-2030中国触控板行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国袖珍投影仪行业市场发展趋势与前景展望战略研究报告
- 综合录井仪工作原理演示教学课件
- 小学三年级诗词大会初赛比赛题目课件
- 房建监理大纲(共114)
- 国际工程招投标流程图
- 城市环境卫生工作物资消耗定额
- 液化气站三级安全教育培训试题
- 经济法实用教程(理论部分)(第八版)(何辛)案例分析及参考答案
- 532近代前夜的危机
- 病原微生物实验室生物安全备案专家意见表
- (精心整理)朱德熙_说 “的”
- 《雷锋叔叔,你在哪里》说课稿(附优质教案)
评论
0/150
提交评论