当前位置:文档之家› 关于SQL注入过滤关键字的渗透

关于SQL注入过滤关键字的渗透

[原创]关于SQL注入过滤关键字的渗透
文章标题:[原创]关于SQL注入过滤关键字的渗透顶部 sobiny 发布于:2006-04-1011:12 [楼主][原创]关于SQL注入过滤关键字的渗透
文章作者:sobiny
信息来源:邪恶八进制信息安全团队(https://www.doczj.com/doc/cc766463.html,)

我所说的过滤关键字,并不是指检测到and,char字符后就报出错误,停止执行命令,返回上一页等等
而是指某些网站直接把and和char字符删除来防止SQL的注入
我不敢说网上是我第一次遇到这个情况,也不敢保证别人没写过这类似的文章
不过目前好象没看到这类型的文章,今天也刚好遇到了这个问题
就把我的体验给大家说说,斗胆标上“原创”

今天遇到一个网站
直接输入一个' ,正常
https://www.doczj.com/doc/cc766463.html,/shop/show.php?id=118%20and%201=1
这个字符输入进去以后,得到如下提示:
select*fromwebproductwhereProductID=1181=1andiStatus=1YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'1=1andiStatus=1'atline1
我看了看这段出错的代码~
https://www.doczj.com/doc/cc766463.html,/select*fromwebproductwhereProductID=1181=1
这一句,明显少了一个AND
我就在想能不能饶过它,试了好几种方法都不行
最后,我就在想,是不是它直接把我的and删除了呢?
然后试着加上了https://www.doczj.com/doc/cc766463.html,/shop/show.php?id=118%20aandnd%201=1
结果页面正常
https://www.doczj.com/doc/cc766463.html,/shop/show.php?id=118%20aandnd%201=2
无此产品
因为aandnd这个删除了一个and后,他留下了一个and来
如果这样的话,就留下了一个and
后来发现他们还过滤了',char,;等等
后来构造语句,就可以直接是a'nd或者ch;ar这种格式来直接手工注入~~
为保证被测试者的利益,他们的网站地址已经全部换为https://www.doczj.com/doc/cc766463.html,/了,大家不要用这个地址来测试邪恶八进制了,没用的,呵呵

本文没有什么技术含量,高手飘过~~


[此贴被EvilOctal在2006-04-1114:35重新编辑]顶部 光芒果 发布于:2006-04-1011:43 [1楼]
和ASP上存中单纯去掉ASP字符时用ASASPP代替是一个原理的。顶部 superhei 发布于:2006-04-1012:22 [2楼]
呵呵和
FunctionFixName(UpFileExt)
IfIsEmpty(UpFileExt)ThenExitFunction
FixName=Lcase(UpFileExt)
'FixName=Replace(FixName,Chr(0),"")
'FixName=Replace(FixName,".","")
'FixName=Replace(FixName,"asp","")
'FixName=Replace(FixName,"asa","")
'FixName=Replace(FixName,"aspx","")
'FixName=Replace(FixName,"cer","")
'FixName=Replace(FixName,"cdx","")
'FixName=Replace(FixName,"htr","")
EndFunction
这个一样dvbbs上传部分顶部 晨曦 发布于:2006-05-0921:46 [3楼]
这种方法都能想到,真是绝了!
楼上兄弟说的:

Quote:
这里是引用第[2楼]的superhei于2006-04-1012:22发表的:
呵呵


FunctionFixName(UpFileExt)
IfIsEmpty(UpFileExt)ThenExitFunction
FixName=Lcase(UpFileExt)
'FixName=Replace(FixName,Chr(0),"")
.......
按这个方法,是不是说,把文件名改马:
webshell.aaspsp这样的,DV用reaplce替换掉一个成了:webshell.asp文件了,这样就可以上传ASP了,但是“.”这样的单字符怎么办呀?顶部 sobiny 发布于:2006-05-0923:01 [4楼]

Quote:
这里是引用第[2楼]的superhei于2006-04-1012:22发表的:
呵呵和
FunctionFixName(UpFileExt)
IfIsEmpty(UpFileExt)ThenExitFunction
FixName=Lcase(UpFileExt)
'FixName=Replace(FixName,Chr(0),"")
.......

上次我找到一个网站,可以说有上传的漏洞,因为我传上去了
shtml的文件,不过不管怎么样都传不了ASP,等的文件,为什么呢?他里面的上传代码是这样的

FunctionFixName(UpFileExt)
IfIsEmpty(UpFileExt)ThenExitFunction
FixName=Lcase(UpFileExt)
'FixName=Replace(FixName,Chr(0),"")
FixName=Replace(FixName,asp,"")
FixName=Replace(FixName,cdx,"")
FixName=Replace(FixName,htr,"")
FixName=Replace(FixName,cer,"")
ifFixName<>UpFileExtthenExitFunction
…………

注意这一句FixName<>UpFileExt,我觉得他的想法真好
从此我写程序我都注意用这一句来判断了,呵呵
只要不一样,就K掉~~顶部 晨曦 发布于:2006-05-0923:14 [5楼]
我遇到一网站将SCRIPT替换成NOSCRIPT应该怎么突破一下呢?
让程序给转换成了而两个"<"">"却保留了顶部 风尘浪子 发布于:2006-05-1011:34 [6楼]
楼上可以尝试玩点大小写,不一定哦,

要看他replace怎么写的,有时候可以突破!顶部 softbug 发布于:2006-05-1516:06 [7楼]
https://www.doczj.com/doc/cc766463.html,/blog/article.asp?act=edit&id=193'顶部 linzi 发布于:2006-05-1520:17 [8楼]

Quote:

呵呵和
FunctionFixName(UpFileExt)
IfIsEmpty(UpFileExt)ThenExitFunction
FixName=Lcase(UpFileExt)
'FixName=Replace(FixName,Chr(0),"")
'FixName=Replace(FixName,".","")
'FixName=Replace(FixName,"asp","")
'FixName=Replace(FixName,"asa","")
'FixName=Replace(FixName,"aspx","")
'FixName=Replace(FixName,"cer","")
'FixName=Replace(FixName,"cdx","")
'FixName=Replace(FixName,"htr","")
EndFunction
这个一样dvbbs上传部分

这是编程思维问题,个人认为成熟点的应该是
ifUpFileExt<>jpgorUpFileExt<>bmp..... then
response.write("上传失败")
else
......上传成功

只让特定的格式上传,再对00,还有空进行过滤,基本上就可以杜绝上传漏洞,如果再对上传目录做权限设置,嘿嘿.顶部 nolx 发布于:2006-05-1916:54 [9楼]

Quote:
这里是引用第[8楼]的linzi于2006-05-1520:17发表的:

这是编程思维问题,个人认为成熟点的应该是
ifUpFileExt<>jpgorUpFileExt<>bmp..... then
response.write("上传失败")
else
.......


后面<>一大窜........哈哈不能不说你细心了(c)Copyleft2003-2007,EvilOctalSecurityTeam.
ThisfileisdecompiledbyanunregisteredversionofChmDecompiler.
Regsiteredversiondoesnotshowthismessage.
YoucandownloadChmDecompilerat:https://www.doczj.com/doc/cc766463.html,/


相关主题
文本预览
相关文档 最新文档