文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>脚本编程量的漏洞检测与修补

脚本编程量的漏洞检测与修补

时间:2010-12-08  来源:秩名

1、Web漏洞检测


白盒检测
对检测者的要求:
——能读懂用此语言写的程序
——明白漏洞成因
——漏洞挖掘经验
常用的web脚本语言:Asp/Php/Jsp/asp.net


2、常见的web漏洞


sql注入
文件上传
cookie欺骗
XSS攻击
文件包含
其他


3、Sql注入及其危害
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过递交参数构造巧妙的SQL语句,从而成功获取想要的数据。


分为字符型注入和数字型的注入,由于编程语言不同,所存在的注入类型也不同。


危害:
--非法查询其他数据库资源,如管理员帐号。
--执行系统命令
--获取服务器root权限

4、由于使用编程语言和数据库的不同,漏洞的利用以及所造成的危害也不同。


Sql注入原理
Test.asp文件代码片段:
 

sqlStr = “select * from n_user where username=‘”&username&”’ and password=‘“&password&”’  rs = conn.execute(sqlStr)  

正常的查询:test.asp?username=test&password=123
 

sqlStr = “select * from n_user where username=‘test’ and password=‘123’“  

使password=123 ‘ or ‘1’=‘1:
Sql语句到数据库后:
 

sqlStr = “select * from n_user where username=‘test’ and password=‘123’ or ‘1’=‘1’“  

Or ‘1’=‘1’始终成立。


5、可以通过修改city来构造不同的语句来达到我们查询数据库的效果,现在对于sql注入已经全自动化了,最初出现的工具有原54NB论坛小竹写的NBSI,是最经典的工具了,后来出来了无数的全自动注入工具,在这里就不再赘述了。


Sql二次注入
Update,Insert插入注入语句,通过内部传参进行注入。
Insert users (username)values(’1 and 1=1’)
Select * from users where username =values


6、二次注射原理图


SQL注射
数据库
其他函数[如Include]
构造变量
UPDATA INSERT
提取变量
SELECT


7、Asp表现
存在数字型和字符型注入。


(A) 数字型 字段=51
Select * from 表名 where 字段=51
构造参数:ID=49 And [查询条件]
生成语句:Select * from 表名 where 字段=49 And [查询条件]


(B)字符型的另一种形式
搜索语句:Select * from 表名 where 字段like ’%关键字%’
构造参数:keyword=’ and [查询条件] and ‘%25’=’
生成语句:Select * from 表名 where字段like ’%’ and [查询条件] and ‘%’=’%’


8、Asp注入的预防


对于用户端输入的任意字符,包括GET提交,POST提交,Cookie提交,SERVER提交的都需要做严格过滤。
对于数字型参数判断是否为数字:可用函数isNumeric来判断,返回值为true和false。
对于字符型参数过滤单引号,将其替换为l两个单引号,使其无法闭合当前sql语句的单引号。


例外:base64编码
Sql通用防注入,全局过滤GET、POST


9、Asp防注入过滤demo
 

Function SafeCheck(strString)  If isNumeric(strString) then   strStringstrString=strString  Else   strString=replace(strString,"'","''")   End if   SafeCheck=strString   End function  


10、Php中的表现
Php的魔术引号(magic_quotes_gpc ) 。
php.ini-dist 默认是开启此功能。如果安装php时使用此文件,将不会产生字符型注入,主要是数字型注入。


数字型注入:
select * from guess where id=“.$id.”
select * from guess where id=$id

标签分类:

相关阅读 更多 +
排行榜 更多 +
全民飞机空战手机版

全民飞机空战手机版

飞行射击 下载
弗拉格职业射手手机版

弗拉格职业射手手机版

飞行射击 下载
反射单元2

反射单元2

飞行射击 下载