- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IdeaCMS系统总体防御文档
IdeaCMS系统总体防御文档
D0000D发往论坛板块-------------------------------------------------------
No2 号板块 技术文章
D8888D贴子标题-------------------------------------------------------
IdeaCMS系统总体防御文档
D8888D主贴内容-------------------------------------------------------
一、程序漏洞
1、跨站漏洞。Guestbook.asp,Resume.asp这两个文件中添加数据时,所取参数没有任何过滤,可以进行跨站攻击。
2、Cookie注入漏洞。还是上述两个文件在取参数时全用的Request(“参数名”),这样即使有通用防注入系统,也可以通过cookie注入将其绕过,提交危险字符。
3、Session欺骗漏洞。后台admin/chkuser.asp,验证登录程序存在session欺骗漏洞。
4、后台注入、跨站漏洞。后台程序注入、跨站的问题基本没有考虑,没有做任何处理(这是很多程序员的通病,这当中不乏从事编程工作很多年的老程序员,记住:千里之堤,溃于蚁穴!)
5、上传文件漏洞。后台“网站管理”“上传设置”栏目,可以任意修改上传文件扩展名的类型,致使用户可以任意上传各种类型的网页木马(说这是漏洞有点冤枉写这个程序的程序员,人家作了设置了,后面会详细讲解)。
6、后台admin/Check_UserName.asp。唉,这个文件实在不知道写程序的人想干什么,估计是调试程序时方便自己看的,最后发布时忘删除了,真不应该(被领导看了一定会被扣工资)。
7、验证码漏洞。后台登录没有验证码,可以被爆破。
二、修改方案
1、加入参数过滤函数。根据是上述1、4所出现的参数过滤不严而导致注入、跨站的问题,写1个字符过滤函数,取每个参数时都调用这个函数,可以防注入,代码如下: Function CheckPara(ParaName,ParaType)
ParaName:参数名称-字符型
ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write 参数 ParaName 必须为数字型!
Response.end
End if
Else
ParaValue=replace(ParaValue,’,’’)
End if
CheckPara=ParaValue
End function
复制代码这是好多年以前的一个防注入函数了,好像是NB的小竹写的(不去考证了),但不管理怎么样,到现在它针对注入依然有效。现在的防注入系统中,针对字符型参数的屏蔽项很多,个人觉得不太合理。完全是一棒子打死的策略,假设在某个技术论坛中,有人问某条SQL语句怎么写,那他估计这辈子都得在非法字符的对话框中徘徊了。说到底,字符型注入归根结底需要闭合SQL语句,也就是要使用单引号来闭合语句,那么把单引号屏蔽掉就行了。
最后是跨站的问题了,针对本站的漏洞,是可以写入Html或js代码,我们把“”和“”都屏蔽掉了,代码就无法被浏览器解释了。其实系统中有对Html字符进行过滤的函数,只是测试站点没用而已。
(1)代码文件:inc/Function.asp
(2)相关代码: *************************************************
函数名:RemoveHTML
作 用:过滤HTML代码
参 数:strHTML ----原字符串
返回值:过滤后的字符串
*************************************************
Function RemoveHTML(strHTML)
Dim objRegExp, Match, Matches
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
取闭合的
objRegExp.Pattern = .+?
进行匹配
Set Matches = objRegExp.Execute(strHTML)
遍历匹配集合,并替换掉匹配的项目
For Each Match in Matches
strHtml=Replace(strHT
您可能关注的文档
最近下载
- 上市公司数据资产入表案例分析与启示.pptx VIP
- 《工贸企业有限空间作业安全规定》(应急管理部13号令)培训.pptx VIP
- 应收账款账期到期提醒台账模板.xlsx VIP
- 《中华人民共和国民用航空法》培训解读课件.pptx VIP
- 02《红楼梦》整本书阅读回目自测(21-40回)(分层练习)-2024-2025学年高一语文同步精品讲练(统编版必修下册)解析版.docx VIP
- 防护棚安全通道搭设施工方案1.docx VIP
- 街区市集规划案.pptx VIP
- 污水零直排运维台账.docx VIP
- 2025年重庆市永川区社区工作者招聘考试笔试试题(含答案).pdf
- 安全生产治本攻坚三年行动PPT课件.pptx VIP
文档评论(0)