问题描述
用appscan时检测出了sql盲注,有没有什么好的办法解决,让appscan检测不出这个问题
解决方案
解决方案二:
它报告的问题实际上在你的系统中存在吗?
解决方案三:
就是SQL注入嘛最简单的,也是最推荐的方案就是执行SQL时通过参数化方式执行差点的方案就是拦截数据库关键字下面虽然是java的,但思路是一样的
解决方案四:
SQL参数化
解决方案五:
其实最“好”的办法,就是把你的老板用酒灌醉,或者让他无法上班,这样你就清闲了。如果让我们说什么是有“道德”的做法,那么就是要真正面对自己的问题,而不是去蒙谁。盲注的意思,是说假设在页面用账号123登陆没有错误,用账号12345登陆则报“此用户不存在”,而用账号123'45登陆则不报告“此账号不存在”(而是其它错误信息页面,或者干脆就不报错),那么这就是盲注成功了。这就意味着,你连带有单引号的用户都不能当作普通的用户名去处理。有人说“我把单引号过滤掉不就没有SQL注入了嘛”。其实是就是不了解什么叫“盲注”而说出来的。盲注可不是什么简单的防SQL注入,而是判断你能够正确地处理基本的sql语言语法。
解决方案六:
引用楼主qiuzhongliang123的回复:
用appscan时检测出了sql盲注,有没有什么好的办法解决,让appscan检测不出这个问题
你的软件存在sql注入的漏洞么?如果没这种漏洞,你管它sql盲注呢?!
解决方案七:
盲注检测许多都是误报,所以你需要问一问它到底使用的检测数据“是什么”。有些扯淡的厂商进行的盲注检测,假设在录入界面写123'andexists(select1)然后发现你的页面没有给出一个“服务器5xx错误”的页面,它就认为你有盲注问题了,这种检测就很扯淡,就应该跟进行这种检测的厂商交涉。所以你应该先把对方提供的具体的检测信息贴出来。
解决方案八:
如果注入了给出黄页,应该算是程序有漏洞才对。黄页也会暴露很多信息。只是有些低级程序员看不懂而已。
解决方案九:
解决方案十:
什么意思。。。。。。。。。。。。。
解决方案十一:
如果是误判再对那些漏洞扫一次就不会出现了
解决方案十二:
引用2楼starfd的回复:
就是SQL注入嘛最简单的,也是最推荐的方案就是执行SQL时通过参数化方式执行差点的方案就是拦截数据库关键字下面虽然是java的,但思路是一样的
采用了实体框架,微软内部应该用的是参数化吧,不知道为什么还会出现
解决方案十三:
引用10楼u011053846的回复:
如果是误判再对那些漏洞扫一次就不会出现了
每次扫都会出现
解决方案十四:
引用6楼sp1234的回复:
盲注检测许多都是误报,所以你需要问一问它到底使用的检测数据“是什么”。有些扯淡的厂商进行的盲注检测,假设在录入界面写123'andexists(select1)然后发现你的页面没有给出一个“服务器5xx错误”的页面,它就认为你有盲注问题了,这种检测就很扯淡,就应该跟进行这种检测的厂商交涉。所以你应该先把对方提供的具体的检测信息贴出来。
采用的是IBM自动检测的,天知道他输入了什么东西,按照什么规则来测的,头都大了
解决方案十五:
看来你也是比appscan逼的aspx防护代码-----------------使用方法------------------------------------------------------------------1.将App_Code目录拷贝到web根目录假如已经存在App_Code目录,那直接把App_Code目录里的360safe.cs文件拷贝到当前的App_Code目录即可。2.将Global.asax文件拷贝到web根目录假如已经存在Global.asax文件,那直接把下面这段代码voidApplication_BeginRequest(objectsender,EventArgse){if(Request.Cookies!=null){if(safe_360.CookieData()){Response.Write("您提交的Cookie数据有恶意字符!");Response.End();}}if(Request.UrlReferrer!=null){if(safe_360.referer()){Response.Write("您提交的Referrer数据有恶意字符!");Response.End();}}if(Request.RequestType.ToUpper()=="POST"){if(safe_360.PostData()){Response.Write("您提交的Post数据有恶意字符!");Response.End();}}if(Request.RequestType.ToUpper()=="GET"){if(safe_360.GetData()){Response.Write("您提交的Get数据有恶意字符!");Response.End();}}}拷贝到当前的Global.asax文件里保存。usingSystem;usingSystem.Web;usingSystem.Text;usingSystem.Text.RegularExpressions;publicclasssafe_360{privateconststringStrRegex=@"b(alert|confirm|prompt)b|^+/v(8|9)|b(and|or)b.{1,6}?(=|>|<|binb|blikeb)|/*.+?*/|<s*scriptb|<s*imgb|bEXECb|UNION.+?SELECT|UPDATE.+?SET|INSERTs+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)s+(TABLE|DATABASE)";publicstaticboolPostData(){boolresult=false;for(inti=0;i<HttpContext.Current.Request.Form.Count;i++){result=CheckData(HttpContext.Current.Request.Form[i].ToString());if(result){break;}}returnresult;}publicstaticboolGetData(){boolresult=false;for(inti=0;i<HttpContext.Current.Request.QueryString.Count;i++){result=CheckData(HttpContext.Current.Request.QueryString[i].ToString());if(result){break;}}returnresult;}publicstaticboolCookieData(){boolresult=false;for(inti=0;i<HttpContext.Current.Request.Cookies.Count;i++){result=CheckData(HttpContext.Current.Request.Cookies[i].Value.ToLower());if(result){break;}}returnresult;}publicstaticboolreferer(){boolresult=false;returnresult=CheckData(HttpContext.Current.Request.UrlReferrer.ToString());}publicstaticboolCheckData(stringinputData){if(Regex.IsMatch(inputData,StrRegex)){returntrue;}else{returnfalse;}}}