sql盲注怎么解决

问题描述

用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;}}}

时间: 2024-10-29 21:15:16

sql盲注怎么解决的相关文章

Access数据库基于时间sql盲注的实现记录

  Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统.本文我们来看看Access数据库基于时间sql盲注的实现记录. 概述 众所周知,access数据库是不支持基于时间的盲注方式,但是我们可以利用access的系统表MSysAccessObjects,通过多负荷查询(Heavy Queries)的方式实现. 初步探究 我们以SouthIdcv17数据库为例 执行 select * from Southidc_About ,返回结果如下图. 如何实现time

Web应用手工渗透测试—用SQLMap进行SQL盲注测试

简介 本文主要关注SQL注入,假设读者已经了解一般的SQL注入技术,在我之前的文章中有过介绍,即通过输入不同的参数,等待服务器的反应,之后通过不同的前缀和后缀(suffix and prefix )注入到数据库.本文将更进一步,讨论SQL盲注,如果读者没有任何相关知识储备,建议先去wikipedia学习一下.在继续之前需要提醒一下,如果读者也想要按本文的步骤进行,需要在NOWASP Mutillidae环境搭建好之后先注册一个NOWASP Mutillidae帐号. SQL注入前言 本文演示从w

SQL注入之基于布尔的盲注详解_数据库其它

基于布尔的盲注 Web的页面的仅仅会返回True和False.那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库中的相关信息. 由于本次是布尔注入,手注无法完整地进行脱裤.所以在本节需要编写大量的代码来帮助我们进行SQL注入,得到数据.所以在这章里面会有很多的Python代码. 本次的示例就是Less-8. 通过进行下面的语句的注入测试 http://localhost/sqlilabs/Less-8/?id=2' http://localhost/sqli

.net-sql列转行,求sql大神帮忙解决。

问题描述 sql列转行,求sql大神帮忙解决. 如题 姓名 部门 题目ID 题目答案 A 编辑部 1 tt A 编辑部 2 yy A 编辑部 3 hh B 测试部 1 tt B 测试部 3 cc 我想要这样的结果 姓名 部门 第一题 第二题 第三题 ...等 A 编辑部 tt yy hh B 测试部 tt NULL CC 解决方案 你的题目只有1,2,3还是不确定呢 解决方案二: SELECT distinct 姓名 ,部门 ,LEFT(UserList,LEN(UserList)-1) as

用户 &amp;#39;sa&amp;#39; 登录失败。原因: 未与信任 SQL Server 连接 的解决方法

用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接 的解决方法如下: 一.控制面板->服务->MS SQL SERVER->登陆-->本地系统帐户-->重新启动MS SQL SERVER用windows验证登陆查询分析器-->执行 sp_password null,sa新密码,'sa' 二."无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方

Sql Server2000孤立用户解决方法

server|解决 Sql Server2000孤立用户解决方法关键词: 孤立用户                                          把数据库备份还原到另一个服务器时,可能会遇到孤立用户的问题.下面列出了MS的方法(来自帮助)和自己的方法方法一: 孤立用户疑难解答把数据库备份还原到另一个服务器时,可能会遇到孤立用户的问题.下面的方案显示并解决了这个问题: 通过执行 sp_addlogin,把登录 janetl 改名为 dbo. sp_addlogin 'janet

mysql-急急急,求sql大神帮忙解决

问题描述 急急急,求sql大神帮忙解决 各位大神们,现在有两张表realtime(send_timerangeoil)和gps(send_timespeed),我要把这两张表的数据汇总到sum表中,sum表的字段有yearmonthdayhourmax(range)-min(range)avg(oil)max(speed)avg(speed),sum表记录的是每小时的数据,年月日小时就是send_time里面的,前两张表是每10秒的数据,他们每条数据都是一一对应的,sum表用的是是组合主键,有年

风投就像玩德州扑克:天使是盲注 VC是翻牌时下注

做投资就像玩德州扑克.德州扑克一般分为5个步骤,分别为:Perflop-盲注,然后每人发2张底牌;Flop-同时发三张公牌,玩家可以选择下注.加注.或者盖牌放弃;Turn-发第4张牌;River-发第五张牌;比牌-经过前面4轮发牌和下注,剩余的玩家开始亮牌比大小,成牌最大的玩家赢取池底.盲注就像天使投资.此时下注时只有手中两张底牌,只可见大小.是否对子和同花色.天使投资阶段很多只有想法,虽然产品啥的都还没影,但可以想想自己下注是想往哪个方向期待了.翻牌时下注就像早期投资.翻牌时可以看到2+3张牌

【转】无法登陆SQL server 服务器的解决办法

无法登陆SQL server 服务器的解决办法 ********************************************** 二."无法连接到服务器,用户xxx登陆失败" 该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式, 因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示: 1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQ