网站大量收购独家精品文档,联系QQ:2885784924

渗透测试手册-WEB安全漏洞(1).pdf

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

WEB安全漏洞

1.SQL注入漏洞

漏洞描述

  Web程序代码中对于用户提交的参数未做过滤就直接放到SQL语句中执

行,导致参数中的特殊字符打破了SQL语句原有逻辑,黑客可以利用该漏洞执

行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以

及绕过登录限制等。

测试方法

  在发现有可控参数的地方使用sqlmap进行SQL注入的检查或者利用,

也可以使用其他的SQL注入工具,简单点的可以手工测试,利用单引号、and

1=1和and1=2以及字符型注入进行判断!推荐使用burpsuite的sqlmap插

件,这样可以很方便,鼠标右键就可以将数据包直接发送到sqlmap里面进行检

测了!

修复建议

  代码层最佳防御sql漏洞方案:采用sql语句预编译和绑定变量,是防御

sql注入的最佳方法。

(1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使

用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统

都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注

入攻击。

(2)对进入数据库的特殊字符(*等)进行转义处理,或编码转换。

3

()确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存

储字段必须对应为int型。

(4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句

无法正确执行。

(5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码

不一致有可能导致一些过滤模型被绕过。

(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其

工作的权限,从而最大限度的减少注入攻击

对数据库的危害。

(7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻

击者利用这些错误信息进行一些判断。

1.1.与mysql注入的相关知识

在mysql5版本以后,mysql默认在数据库中存放在一个叫infomation_schema里

面这个库里面有很多表重点是这三个表columns、tables、SCHEMATA表字

段CHEMA_NAME记录着库的信息

tablesTABLE_SCHEMATABLE_NAME

表字段、分别记录着库名和表名

columns存储该用户创建的所有数据库的库名、标名和字段名。

通过infomation_schema查询www_dvwa_com库里所有的表和字段

select*frominformation_schema.`COLUMNS`whereTABLE_SCHEMA=www_dvwa_com

.``

数据库表名这种查询方法是指定某个数据库某个表这个符号可以忽略不用

查询某个库某个表的字段可以这样查询

select*frominformation_schema.COLUMNSwhere

TABLE_SCHEMA=www_dvwa_comandTABLE_NAME=users

1.2.SQL注入原理

SQL注入漏洞的产生需要满足以下两个条件

参数用户可控:从前端传给后端的参数内容是用户可以控制的

参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询。

当用户传入参数为1的时候,在数据库执行如下所示。

select*fromuserswhereid=1

此SQL语句不符合语法规则就会报错。

YouhaveanerrorinyourSQLsyntaxcheckthemanualthatcorrespondstoyour

MySQLserverversionfortherightsyntaxtousenearatline1

当用户传入参数为1and1=1时

select*fromuserswhereid=1and1=1

1=1id=1andid=1

因为为真也是真两边均为真所以页面会返回的结果。

如果用户传入参数

文档评论(0)

轨道小白 + 关注
实名认证
内容提供者

轨道交通-信号系统从业小白

1亿VIP精品文档

相关文档