006-Web安全基础2 - 注入漏洞(CISP-PTE).pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CISP-PTE006 Web 安全基础(2) – 注入漏洞 注入漏洞 SQL注入 SQL注入通过本知识域,我们会:SQL注入的概念了解SQL注入漏洞原理了解SQL注入漏洞对于数据安全的影响掌握SQL注入漏洞的方法SQL注入的类型了解常见数据库的SQL查询方法掌握MSSQL,MySQL,ORACLE数据库的注入方法掌握SQL注入漏洞的类型SQL注入的安全防护掌握SQL注入漏洞修复和防范方法 ?掌握一些SQL注入漏洞检测工具的使用方法 ? 什么是SQL注入SQL注入是一种Web应用代码中的漏洞。黑客可以构造特殊请求,使Web应用执行带有附加条件的SQL语句用户请求中带有参数的值,没有进行任何过滤用户请求中带有参数的值,没有进行任何转码通过特殊的请求,Web应用向数据库访问时会附带其它命令:任意查询命令创建数据库/表更新数据库/表内容更改用户权限删除数据/表/数据库执行系统命令 SQL注入漏洞对于数据安全的影响SQL注入漏洞会:可读取/修改数据库中的库和表获取用户的账号,密码(可能被加密过),邮箱,联系方式信用卡信息修改产品价格删除数据可执行系统命令修改权限,获取系统管理员权限修改任意文件安装后门 SQL注入原理 SQL注入漏洞的方法右边是一个登陆页面点击“submit”之后,web应用会执行:接收发送的POST请求获取用户名和密码:(bart, simpson)构建SQL语句:select * from users where username = bart and password = simpson;发送给数据库服务器来验证这个时候,我们可以对username进行变化输入的用户名不是简单的bart,而是 bart and 1=1; --这样整个语句变成如下:select * from users where username = bart and 1=1; -- and password = simpson;这个时候,--后面的都会变成注释,不用密码就能进行登陆。 SQL注入类型简单注入(simple SQL injection)永真式:最后加入 or 1=1 来保证无论如何都能获取数据。错误语句:让Web应用构造错误的SQL语句来抛异常,来判断数据库类型结束注释:使用注释符注释剩余语句联合查询:使用union all,后面可以写我要查询的真正语句盲注(Blind SQL injection)一般我们可以根据返回数据获取我们想要的信息。但一些页面,我们是获取不到详细信息。信息只有正确或不正确。 各个数据库注入方式注释符: --(MSSQL, MySQL), #(MySQL), /*comment*/(MySQL)单行用分号隔开,运行多个SQL语句:MSSQL判断(IF,ELSE语句)MySQL:IF(condition,true-part,false-part)SELECT IF(1=1,true,false)MSSQL:IF?condition?true-part?ELSE?false-partIF (1=1) SELECT true ELSE SELECT falseOracle:BEGIN?IF?condition?THEN?true-part; ELSE?false-part; END IF; END;BEGIN IF (1=1) THEN dbms_lock.sleep(3); ELSE dbms_lock.sleep(0); END IF; END;字符串链接:MSSQL:+MySQL,Oracle: ||更多参考:/blog/web-security/sql-injection-cheat-sheet/ 注入例子在DVWA,我们可以进行测试:简单注入:1 and 1=1; # , 1 and 1=1; # 判断是否可以被注入1 or 1=1; # 来尝试获取全部账号信息1 union all select 1, 2; # 来判断可以获取的参数个数1 union all select 1,(@@version); #来获取数据库版本1 union all select 1,(database()); #获取数据库名称1 union all select 1, group_concat(column_name) from information_schema.columns where table_name=users ; #获取表所有列名 如何防护SQL注入为什么会出现SQL注入漏洞?数据库可以运行系统命令用最小化权限的账户启动数据库进制让数据库执行系统命令连接数据库的用户权限过大使用IDS,WAF等监控是否有异常操作连接数据库的用户权限最小化错误信息返回过多的信息统一管理错误信息禁止向用户提供错误信息在服

文档评论(0)

wszwtlg202 + 关注
实名认证
文档贡献者

一页纸且

1亿VIP精品文档

相关文档