热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全
站外
广告
域名申请虚拟主机 信息安全 域名注册 云主机 网络安全技术 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 云安全

对asp防注入代码的分析

发布时间:2013-01-24 12:05文章来源:网络文章作者:沦沦 点击次数:
摘要:代码如下: % owen = request (id)% style type = text/css .content{font-size:11pt;} td{word-break:break-all} / style SCRIPT language = JavaScript varcurrentpos,timer; functioninitialize() { timer = setInterval (scrollwindow(),50); } function...

代码如下:

 

  1. <%owen=request("id")%> 
  2. <style type="text/css"> 
  3. .content { font-size: 11pt; } 
  4. td{word-break:break-all} 
  5. </style> 
  6. <SCRIPT language=JavaScript> 
  7. var currentpos,timer; 
  8. function initialize() 
  9. timer=setInterval("scrollwindow()",50); 
  10. function sc(){ 
  11. clearInterval(timer); 
  12. function scrollwindow() 
  13. currentpos=document.body.scrollTop; 
  14. window.scroll(0,++currentpos); 
  15. if (currentpos != document.body.scrollTop) 
  16. sc(); 
  17. document.onmousedown=sc 
  18. document.ondblclick=initialize 
  19. </SCRIPT> 
  20. <
  21. Set rsnews=Server.CreateObject("ADODB.RecordSet") 
  22. sql="update news set hits=hits+1 where id="&cstr(request("id")) 
  23. conn.execute sql 
  24. sql="select * from news where id="&owen 
  25. rsnews.Open sql,conn,1,1 
  26. title=rsnews("title") 
  27. if rsnews.eof and rsnews.bof then 
  28. response.Write("数据库出错") 
  29. else 
  30. %> 

上面的id直接传递给了owen,而owen又跳转到sql查询语句里,那这样就形成了注入

这样我就可以对它进行注入了。。

http://127.0.0.1/onews.asp?id=19 and 1=1

就在注入的时候它反回了防注入的提示,看来我是小看这小子啦!!提示如下:

非法操作!你的入侵记录我已经交给警方了你入侵吧↓

操作IP:127.0.0.1

操作时间:2013-1-22 12:11:05

操作页面:/onews.asp

提交方式:GET

提交参数:id

提交数据:19 and 1=1

如果是一般新手看到这里应该就放弃注入啦,但源程序已在我手里分析它的代码还是可以的,嘿嘿。。

在onews.asp源代码的头部我看到

<!--#include file="conn.asp"-->

这个conn.asp大家都应该知道是什么吧,我也不多说.

conn.asp源代码如下:

 

  1. <!-- #include file="sql.asp" --> 
  2. <
  3. dim conn,connstr 
  4. on error resume next 
  5. connstr="DBQ="+server.mappath("data/nxnews.mdb")+";DefaultDir=;DRIVER={Microsoft 
  6. Access Driver (*.mdb)};" 
  7. Set conn=Server.CreateObject("ADODB.CONNECTION") 
  8. conn.open connstr 
  9. %> 

在conn.asp文件的头部看到<!-- #include file="sql.asp" -->一看文件名就知道是防注入的东东。。

asp.asp源代码如下:

 

  1. <
  2. Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr 
  3. Fy_In = "’’’’防;防and防exec防insert防select防delete防update防count防*防%防chr 
  4. 防mid防master防truncate防char防declare防<>防=防|防-防_" 
  5. Fy_Inf = split(Fy_In,"防") 
  6. If Request.Form<>"" Then 
  7. For Each Fy_Post In Request.Form 
  8. For Fy_Xh=0 To Ubound(Fy_Inf) 
  9. If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then 
  10. Response.Write "<Script Language=JavaScript>alert(’’’’udb311友情提示↓请不要 
  11. 在参数中包含非法字符尝试注入攻击本站,你的入侵记录我已经交给警方了你入侵吧’’’’ 
  12. );</Script>
  13. Response.Write "非法操作!你的入侵记录我已经交给警方了你入侵吧↓<br>
  14. Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>
  15. Response.Write "操作时间:"&Now&"<br>
  16. Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>
  17. Response.Write "提交方式:POST<br>
  18. Response.Write "提交参数:"&Fy_Post&"<br>
  19. Response.Write "提交数据:"&Request.Form(Fy_Post) 
  20. Response.End 
  21. End If 
  22. Next 
  23. Next 
  24. End If 
  25. If Request.QueryString<>"" Then 
  26. For Each Fy_Get In Request.QueryString 
  27. For Fy_Xh=0 To Ubound(Fy_Inf) 
  28. If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then 
  29. Response.Write "<Script Language=JavaScript>alert(’’’’安全提醒↓请不要在参数 
  30. 中包含非法字符尝试注入攻击,谢谢!’’’’);</Script>
  31. Response.Write "非法操作!你的入侵记录我已经交给警方了你入侵吧↓<br>
  32. Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>
  33. Response.Write "操作时间:"&Now&"<br>
  34. Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>
  35. Response.Write "提交方式:GET<br>
  36. Response.Write "提交参数:"&Fy_Get&"<br>
  37. Response.Write "提交数据:"&Request.QueryString(Fy_Get) 
  38. Response.End 
  39. End If 
  40. Next 
  41. Next 
  42. End If 
  43. %> 

在这段代码中我们可以看到两个重要的信息

Instr(LCase(Request.Form(Fy_Post))

从这句中我们可以知道它是对post提交进行了过滤

Instr(LCase(Request.QueryString(Fy_Get))

而这一句是对 get提交进行了过滤。。

分析到这里大家都应该想到了一个问题,它只是对POST和GET提交进行了过滤,那cookies提交呢。。。

这说明过滤不全。COOKIES注入大家都应该知道怎么利用吧!后面就不多写了

网站只分析了一下半,后面等再分析出什么问题再写出来吧!!

本人小菜如果有什么不足之处还请大牛们指出。。

标签分类:

上一篇:深入escape_string for Mysql
下一篇:特殊的ActiveX再利用攻击的窍门及技术