[教程]绕过程序限制继续SQL注入及小结
2012/2/5 12:02:00 人气 443 计算机网络论坛有很多人喜欢用’号测试注入漏洞,所以也有很多人用过滤’号的方法来“防止”注入漏洞,这也许能挡住一些入门者的 攻击 ,但对SQL注入比较熟悉的人,还是可以利用相关的函数,达到绕过程序限制的目的。
在“SQL注入的一般步骤”一节中,我所用的语句,都是经过我优化,让其不包含有单引号的;在“利用系统表注入SQLServer数据库 ”中,有些语句包含有’号,我们举个例子来看看怎么改造这些语句:
简单的如where xtype=’U’,字符U对应的AS CII码是85,所以可以用where xtype=ch ar(85)代替;如果字符是中文的,比如where name=’用户’,可以用where name=nch ar(29992) nch ar(25143)代替。
经验小结
1.有些人会过滤Sel ect、Up date、Del ete这些关键字,但偏偏忘记区分大小写,所以大家可以用sel ecT这样尝试一下。
2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。
3.特别注意:地址栏的 号传入程序后解释为空格,%2B解释为 号,%25解释为%号,具体可以参考URLEncode的相关介绍。
4.用Get方法注入时,IIS会记录你所有的提交字符串,对Post方法做则不记录,所以能用Post的网址尽量不用Get。
5. 猜解Access时只能用As cii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。
在“SQL注入的一般步骤”一节中,我所用的语句,都是经过我优化,让其不包含有单引号的;在“利用系统表注入SQLServer数据库 ”中,有些语句包含有’号,我们举个例子来看看怎么改造这些语句:
简单的如where xtype=’U’,字符U对应的AS CII码是85,所以可以用where xtype=ch ar(85)代替;如果字符是中文的,比如where name=’用户’,可以用where name=nch ar(29992) nch ar(25143)代替。
经验小结
1.有些人会过滤Sel ect、Up date、Del ete这些关键字,但偏偏忘记区分大小写,所以大家可以用sel ecT这样尝试一下。
2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。
3.特别注意:地址栏的 号传入程序后解释为空格,%2B解释为 号,%25解释为%号,具体可以参考URLEncode的相关介绍。
4.用Get方法注入时,IIS会记录你所有的提交字符串,对Post方法做则不记录,所以能用Post的网址尽量不用Get。
5. 猜解Access时只能用As cii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。
椅子 | 『韩雅』~乌_*龙-茶02-05 12:12 唉! |
发表回复